Compare commits

...

59 commits

Author SHA1 Message Date
JodliDev
f154953979
Fix for #39 (color not sent in props) 2023-04-27 12:41:56 +02:00
JodliDev
43c30995b0
Merge pull request #34 from duburcqa/patch-1
Only skip update if the set of available calendars did not changed
Closes #13
2023-02-21 15:27:59 +01:00
Alexis DUBURCQ
61eb3a4a16
Only skip update if the set of available calendars did not changed.
This is necessary to automatically update sources for which the calendars have been added or deleted by another client than roundcube. It is typically the case when managing sharing access in nextcloud while still being able to view them in roundcube.
2022-12-28 01:14:59 +01:00
JodliDev
f0a90df1d3
Merge pull request #5 from club-1/feat-preinstalled-sources
feat: add preinstalled sources
2022-05-17 16:00:44 +02:00
JodliDev
3fa3b47e06 Fix #6: Correct inclusive end date of caldav for allday events 2022-05-16 09:30:57 +02:00
JodliDev
ad31194e03 Fix #12: Do not urlencode calendar.href 2022-05-13 19:23:13 +02:00
JodliDev
9c6b8b4171
Merge pull request #4 from club-1/fix-edit-event
fix: event edition for caldav driver
2022-05-12 01:24:21 +02:00
n-peugnet
f679c616e8 add caldav to preinstalled_sources key & example config 2022-05-02 21:33:56 +02:00
n-peugnet
847aae1321 refactor: preinstalled sources feature
move logic from calendar.php to caldav_driver.php
2022-05-01 21:42:54 +02:00
JodliDev
89cdebc5ca
Merge pull request #7 from club-1/fix-create-calendar-trailing-slash
fix: create calendars with source ending with '/'
2022-04-30 11:07:45 +02:00
JodliDev
b9ff57cf21
Merge pull request #3 from club-1/fix-postgres-timestamp
fix: unixtimestamp calculation from PostgreSQL
2022-04-30 11:03:59 +02:00
JodliDev
a6ec0c3b68
Merge pull request #2 from club-1/fix-postgres-sql
fix: postgres SQL script errors on initdb
2022-04-30 10:59:18 +02:00
n-peugnet
0e84caaa4e fix: create calendars with source ending with '/'
by trimming the trailing slash if it exists
2022-04-28 20:15:22 +02:00
n-peugnet
4e72a2b60f fix: event edition for caldav driver
Set to NULL for real in db values that equals NULL in PHP.

Only tested on PostgreSQL
2022-04-28 14:36:26 +02:00
n-peugnet
8347d65795 feat: add preinstalled sources 2022-04-28 14:34:13 +02:00
n-peugnet
ee19875c97 fix: unixtimestamp calculation from PostgreSQL
see https://stackoverflow.com/questions/29536542/different-results-for-extract-epoch-on-different-postgresql-servers
2022-04-28 14:21:43 +02:00
n-peugnet
2d72a2edcb fix: postgres SQL script errors on initdb 2022-04-28 14:18:06 +02:00
JodliDev
64599f4cfe
Update README.md 2022-04-25 14:35:02 +02:00
JodliDev
927bf88862
Update README.md 2022-04-25 13:59:44 +02:00
JodliDev
2a0c9f8c07 Copy and paste error when including
https://git.kolab.org/rRPK3613a3d39999d67e46716658718c468bc23480e7
2022-04-25 13:56:18 +02:00
JodliDev
91a976b444 See https://git.kolab.org/rRPKdc99ade020f90dc37d84e3ee7d0a791bac0ca849 2022-04-25 11:14:19 +02:00
JodliDev
9caeea244a See https://git.kolab.org/rRPKde3a536daa605d07d47cb1b24af1d8042d049135 2022-04-25 10:08:24 +02:00
JodliDev
ca2409e081 See https://git.kolab.org/rRPK3613a3d39999d67e46716658718c468bc23480e7 2022-04-25 10:03:39 +02:00
JodliDev
c1f5524cec See https://git.kolab.org/rRPKea78b1c2df4f655c571f872e66e489e6ae531d11 2022-04-25 09:52:39 +02:00
JodliDev
94a287afc6 See https://git.kolab.org/rRPK38b103430bf838061ef78c804e225c36a74ee217 2022-04-25 09:43:10 +02:00
JodliDev
72e7983d75 (botchy) fix for emoticons in event description 2021-09-30 07:01:11 +02:00
JodliDev
72dd4dffcd Several bugfixes and README-update 2021-09-28 21:23:22 +02:00
JodliDev
0fe9be1221 wrong version for libcalendaring v2 (forgot prefix) 2021-09-28 11:00:01 +02:00
JodliDev
f9e2c2667f wrong version for libcalendaring 2021-09-28 10:52:56 +02:00
JodliDev
a782469f11 Merge branch 'mail_import_select_calendar' 2021-08-27 11:33:31 +02:00
JodliDev
b68b5662a1 Merge branch 'caldav_driver' 2021-08-27 11:33:13 +02:00
JodliDev
4100dadd69 Add dropdown options for each calendar 2021-08-27 11:32:38 +02:00
JodliDev
71c5fc85a0 Adapt configs 2021-08-27 09:46:02 +02:00
JodliDev
71c4d7aba9 Allow to add ics calendars when no CalDAV sources exist 2021-08-26 16:26:17 +02:00
JodliDev
3df123b0b8 implement the attributes "deletable" and "editable_name" for calendars 2021-08-26 15:58:25 +02:00
JodliDev
766088b19a Save HEX colors without alpha 2021-08-26 11:58:24 +02:00
JodliDev
263e1cc1f3 use markdown 2021-08-25 12:20:30 +02:00
JodliDev
cf57748f4c Added rationale for this fork 2021-08-25 12:18:36 +02:00
JodliDev
0cc7f1ebdd - make ical calendars readonly
- small attachement-bugfix
2021-08-25 10:43:52 +02:00
JodliDev
277e3094f7 - Added iCal Support
- Bugfixes
- automatically generated sqlite & postgres support (not tested!)
2021-08-24 12:55:41 +02:00
JodliDev
5ee16ce9ef Lots of bugfixes regarding CalDAV 2021-08-23 08:58:32 +02:00
JodliDev
822b359185 first commit of new changes to CalDAV support 2021-08-20 19:36:47 +02:00
JodliDev
21e3fff576 Copy CadDav driver from https://github.com/fasterit/roundcube_calendar 2021-08-17 19:19:48 +02:00
Aleksander Machniak
e11e26ed24 Sync v3.5.7 2021-05-09 09:09:57 +02:00
Aleksander Machniak
3d195270da Sync v3.5.2 2019-10-23 19:09:32 +02:00
Aleksander Machniak
437e09435e Calendar 3.5.1 2019-10-16 19:58:33 +02:00
Thomas Bruederli
d3b7484d91 Synchronized with upstream from git.kolab.org (3.3.4) 2017-12-30 18:52:45 +01:00
Thomas Bruederli
143128a1a4 Synchronized with upstream from git.kolab.org (3.3.3) 2017-09-01 12:00:02 +02:00
Thomas Bruederli
71db023cf1 Synchronized with upstream from git.kolab.org (3.2.x) 2017-09-01 11:50:35 +02:00
Thomas Bruederli
9fa243f2c8 Synchronized with upstream from git.kolab.org (3.2.19) 2017-05-01 22:40:32 +02:00
Thomas Bruederli
7911226dc9 Describe dependency installation with Composer 2017-04-30 20:53:23 +02:00
Thomas Bruederli
a0aacd4a73 Synchronized with upstream from git.kolab.org (v3.2.16) 2016-11-20 17:39:39 +01:00
Thomas Bruederli
84fde2ba4a Replace deprecated Roundcube core functions and constants 2015-10-21 23:08:28 +02:00
Thomas Bruederli
9e1fcdd148 Synchronized with git master from git.kolab.org (v3.2.9) 2015-10-19 23:33:47 +02:00
Thomas Bruederli
125420074d Fix syntax error in SQL schema 2015-03-17 09:56:39 +01:00
Thomas Bruederli
13b36ba29b Synchronized with git master from git.kolab.org (v3.2.7) 2015-03-12 22:37:40 +01:00
Thomas Bruederli
4ffb17858c Limit Roundcube version to < 1.1 2015-03-12 22:18:20 +01:00
Thomas Bruederli
845da36786 Synchronized recent changes from git.kolab.org repository (v3.1.16) 2015-03-12 22:17:51 +01:00
Thomas Bruederli
c5f3fb18d5 Add keywords for listing 2014-11-09 17:16:30 +01:00
162 changed files with 48953 additions and 22798 deletions

24
README
View file

@ -1,24 +0,0 @@
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.

68
README.md Normal file
View file

@ -0,0 +1,68 @@
## 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
```

View file

@ -8,10 +8,10 @@ updatedb.sh --package=calendar-<driver> --version=<version> \
--dir=../plugins/calendar/drivers/<driver>/SQL
[*] Replace <driver> with "database" or "kolab" (without quotes)
[*] Replace <version> with Roundcube version e.g. 0.7.3
[*] Replace <version> with Roundcube version e.g. 0.9.0
[*] Roundcube should be upgraded before plugin upgrades
Example:
updatedb.sh --package=calendar-kolab --version=0.8.0 \
updatedb.sh --package=calendar-kolab --version=0.9.0 \
--dir=../plugins/calendar/drivers/kolab/SQL

File diff suppressed because it is too large Load diff

View file

@ -1,12 +1,14 @@
/**
* Base Javascript class for the Calendar plugin
*
* @version @package_version@
* @author Lazlo Westerhof <hello@lazlo.me>
* @author Thomas Bruederli <bruederli@kolabsys.com>
*
* @licstart The following is the entire license notice for the
* JavaScript code in this page.
*
* Copyright (C) 2010, Lazlo Westerhof <hello@lazlo.me>
* Copyright (C) 2013, Kolab Systems AG <contact@kolabsys.com>
* Copyright (C) 2013-2015, Kolab Systems AG <contact@kolabsys.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@ -20,6 +22,9 @@
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @licend The above is the entire license notice
* for the JavaScript code in this page.
*/
// Basic setup for Roundcube calendar client class
@ -28,158 +33,87 @@ function rcube_calendar(settings)
// extend base class
rcube_libcalendaring.call(this, settings);
// member vars
this.ui;
this.ui_loaded = false;
// 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())) {
// load calendar UI (scripts and edit dialog template)
if (!this.ui_loaded) {
$.when(
$.getScript('./plugins/calendar/calendar_ui.js'),
$.getScript('./plugins/calendar/lib/js/fullcalendar.js'),
$.get(rcmail.url('calendar/inlineui'), function(html){ $(document.body).append(html); }, 'html')
).then(function() {
// disable attendees feature (autocompletion and stuff is not initialized)
for (var c in rcmail.env.calendars)
rcmail.env.calendars[c].attendees = false;
me.ui_loaded = true;
me.ui = new rcube_calendar_ui(me.settings);
me.create_from_mail(uid); // start over
});
return;
}
else {
// get message contents for event dialog
var lock = rcmail.set_busy(true, 'loading');
rcmail.http_post('calendar/mailtoevent', {
'_mbox': rcmail.env.mailbox,
'_uid': uid
}, lock);
}
if (!uid && !(uid = rcmail.get_single_uid())) {
return;
}
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)
});
// dialog buttons
buttons[rcmail.gettext('save')] = function() {
var frame = rcmail.get_frame_window('kolabcalendarinlinegui');
frame.rcmail.command('event-save');
};
buttons[rcmail.gettext('cancel')] = function() {
dialog.dialog('destroy');
};
// 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)
// handler for attachment-save-calendar commands
this.save_to_calendar = function(p)
{
if (event.title) {
this.ui.add_event(event);
rcmail.message_list.blur();
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
}, rcmail.set_busy(true, 'itip.savingdata'));
}
};
}
// static methods
rcube_calendar.add_event_from_mail = function(mime_id, status)
{
// ask user to delete the declined event from the local calendar (#1670)
var del = false;
if (rcmail.env.rsvp_saved && status == 'declined') {
del = confirm(rcmail.gettext('calendar.declinedeleteconfirm'));
}
var lock = rcmail.set_busy(true, 'calendar.savingdata');
rcmail.http_post('calendar/mailimportevent', {
'_uid': rcmail.env.uid,
'_mbox': rcmail.env.mailbox,
'_part': mime_id,
'_calendar': $('#calendar-saveto').val(),
'_status': status,
'_del': del?1:0
}, lock);
return false;
};
rcube_calendar.remove_event_from_mail = function(uid, title)
{
if (confirm(rcmail.gettext('calendar.deleteventconfirm'))) {
var lock = rcmail.set_busy(true, 'calendar.savingdata');
rcmail.http_post('calendar/event', {
e:{ uid:uid },
action: 'remove'
}, lock);
}
};
rcube_calendar.fetch_event_rsvp_status = function(event)
{
/*
var id = event.uid.replace(rcmail.identifier_expr, '');
$('#import-'+id+', #rsvp-'+id+', div.rsvp-status').hide();
$('#loading-'+id).show();
*/
rcmail.http_post('calendar/event', {
e:event,
action:'rsvp-status'
});
};
/* calendar plugin initialization (for non-calendar tasks) */
window.rcmail && rcmail.addEventListener('init', function(evt) {
if (rcmail.task != 'calendar') {
var cal = new rcube_calendar($.extend(rcmail.env.calendar_settings, rcmail.env.libcal_settings));
rcmail.addEventListener('plugin.update_event_rsvp_status', function(p){
rcmail.env.rsvp_saved = p.saved;
if (p.html) {
// append/replace rsvp status display
$('#loading-'+p.id).next('.rsvp-status').remove();
$('#loading-'+p.id).hide().after(p.html);
}
else {
$('#loading-'+p.id).hide();
}
// enable/disable rsvp buttons
$('.rsvp-buttons input.button').prop('disabled', false)
.filter('.'+String(p.status).toLowerCase()).prop('disabled', p.latest);
// show rsvp/import buttons with or without calendar selector
if (!p.select)
$('#rsvp-'+p.id+' .calendar-select').remove();
$('#'+p.action+'-'+p.id).show().append(p.select);
});
rcmail.addEventListener('plugin.fetch_event_rsvp_status', rcube_calendar.fetch_event_rsvp_status);
// register create-from-mail command to message_commands array
if (rcmail.env.task == 'mail') {
rcmail.register_command('calendar-create-from-mail', function() { cal.create_from_mail() });
rcmail.addEventListener('plugin.mail2event_dialog', function(p){ cal.mail2event_dialog(p) });
rcmail.addEventListener('plugin.unlock_saving', function(p){ cal.ui && cal.ui.unlock_saving(); });
rcmail.register_command('calendar-create-from-mail', function() { cal.create_from_mail(); });
rcmail.register_command('attachment-save-calendar', function(p) { cal.save_to_calendar(p); });
if (rcmail.env.action != 'show') {
rcmail.env.message_commands.push('calendar-create-from-mail');
rcmail.add_element($('<a>'));
}
else
else {
rcmail.enable_command('calendar-create-from-mail', true);
// add contextmenu item
if (window.rcm_contextmenu_register_command) {
rcm_contextmenu_register_command(
'calendar-create-from-mail',
function(cmd,el){ cal.create_from_mail() },
'calendar.createfrommail',
'moveto');
}
rcmail.addEventListener('beforemenu-open', function(p) {
if (p.menu == 'attachmentmenu') {
cal.selected_attachment = p.id;
var mimetype = rcmail.env.attachments[p.id];
rcmail.enable_command('attachment-save-calendar', mimetype == 'text/calendar' || mimetype == 'text/x-vcalendar' || mimetype == 'application/ics');
}
});
}
}
rcmail.register_command('plugin.calendar', function() { rcmail.switch_task('calendar'); }, true);
rcmail.addEventListener('plugin.ping_url', function(p){
rcmail.addEventListener('plugin.ping_url', function(p) {
var action = p.action;
p.action = p.event = null;
new Image().src = rcmail.url(action, p);

File diff suppressed because it is too large Load diff

View file

@ -2,8 +2,9 @@
"name": "kolab/calendar",
"type": "roundcube-plugin",
"description": "Calendar plugin",
"homepage": "http://git.kolab.org/roundcubemail-plugins-kolab/",
"homepage": "https://git.kolab.org/diffusion/RPK/",
"license": "AGPLv3",
"version": "3.5.11",
"authors": [
{
"name": "Thomas Bruederli",
@ -11,7 +12,7 @@
"role": "Lead"
},
{
"name": "Alensader Machniak",
"name": "Aleksander Machniak",
"email": "machniak@kolabsys.com",
"role": "Developer"
}
@ -19,17 +20,23 @@
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
"url": "https://plugins.roundcube.net"
},
{
"type": "vcs",
"url": "https://github.com/JodliDev/libcalendaring"
}
],
"require": {
"php": ">=5.3.0",
"php": ">=5.5",
"roundcube/plugin-installer": ">=0.1.3",
"kolab/libcalendaring": ">=1.0.0"
"jodlidev/libcalendaring": "dev-master",
"kolab/libkolab": ">=3.4.0",
"sabre/dav": ">=4.1.5"
},
"extra": {
"extra": {
"roundcube": {
"min-version": "1.0.0",
"min-version": "1.4.0",
"sql-dir": "drivers/database/SQL"
}
}

View file

@ -2,10 +2,9 @@
/*
+-------------------------------------------------------------------------+
| Configuration for the Calendar plugin |
| Version 0.7-beta |
| |
| Copyright (C) 2010, Lazlo Westerhof - Netherlands |
| Copyright (C) 2011, Kolab Systems AG |
| Copyright (C) 2011-2014, Kolab Systems AG |
| |
| This program is free software: you can redistribute it and/or modify |
| it under the terms of the GNU Affero General Public License as |
@ -26,78 +25,64 @@
+-------------------------------------------------------------------------+
*/
// backend type (database, google, kolab)
$rcmail_config['calendar_driver'] = "database";
// backend type (database, kolab, caldav)
$config['calendar_driver'] = "caldav";
// Enable debugging output for iCAL/CalDAV drivers
$config['calendar_caldav_debug'] = false;
// default calendar view (agendaDay, agendaWeek, month)
$rcmail_config['calendar_default_view'] = "agendaWeek";
$config['calendar_default_view'] = "agendaWeek";
// mapping of Roundcube date formats to calendar formats (long/short/agenda)
// should be in sync with 'date_formats' in main config
$rcmail_config['calendar_date_format_sets'] = array(
'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)
// $rcmail_config['calendar_date_format'] = "yyyy-MM-dd";
// time format (only set if different from default date format)
// $rcmail_config['calendar_time_format'] = "HH:mm";
// short date format (used for column titles)
// $rcmail_config['calendar_date_short'] = 'M-d';
// long date format (used for calendar title)
// $rcmail_config['calendar_date_long'] = 'MMM d yyyy';
// date format used for agenda view
// $rcmail_config['calendar_date_agenda'] = 'ddd MM-dd';
// show a birthdays calendar from the user's address book(s)
$config['calendar_contact_birthdays'] = false;
$config['birthday_calendar'] = array('color' => 'fffb00');
// timeslots per hour (1, 2, 3, 4, 6)
$rcmail_config['calendar_timeslots'] = 2;
$config['calendar_timeslots'] = 2;
// show this number of days in agenda view
$rcmail_config['calendar_agenda_range'] = 60;
$config['calendar_agenda_range'] = 60;
// first day of the week (0-6)
$rcmail_config['calendar_first_day'] = 1;
$config['calendar_first_day'] = 1;
// first hour of the calendar (0-23)
$rcmail_config['calendar_first_hour'] = 6;
$config['calendar_first_hour'] = 6;
// working hours begin
$rcmail_config['calendar_work_start'] = 6;
$config['calendar_work_start'] = 6;
// working hours end
$rcmail_config['calendar_work_end'] = 18;
$config['calendar_work_end'] = 18;
// show line at current time of the day
$rcmail_config['calendar_time_indicator'] = true;
$config['calendar_time_indicator'] = true;
// 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
$rcmail_config['calendar_default_alarm_type'] = '';
$config['calendar_default_alarm_type'] = '';
// default alarm offset for new events.
// use ical-style offset values like "-1H" (one hour before) or "+30M" (30 minutes after)
$rcmail_config['calendar_default_alarm_offset'] = '-15M';
$config['calendar_default_alarm_offset'] = '-15M';
// how to colorize events:
// 0: according to calendar color
// 1: according to category color
// 2: calendar for outer, category for inner color
// 3: category for outer, calendar for inner color
$rcmail_config['calendar_event_coloring'] = 0;
$config['calendar_event_coloring'] = 0;
// event categories
$rcmail_config['calendar_categories'] = array(
$config['calendar_categories'] = array(
'Personal' => 'c0c0c0',
'Work' => 'ff0000',
'Family' => '00ff00',
@ -105,19 +90,50 @@ $rcmail_config['calendar_categories'] = array(
);
// enable users to invite/edit attendees for shared events organized by others
$rcmail_config['calendar_allow_invite_shared'] = false;
$config['calendar_allow_invite_shared'] = false;
// allow users to accecpt iTip invitations who are no explicitly listed as attendee.
// this can be the case if invitations are sent to mailing lists or alias email addresses.
$config['calendar_allow_itip_uninvited'] = true;
// controls the visibility/default of the checkbox controlling the sending of iTip invitations
// 0 = hidden + disabled
// 1 = hidden + active
// 2 = visible + unchecked
// 3 = visible + active
$config['calendar_itip_send_option'] = 3;
// Action taken after iTip request is handled. Possible values:
// 0 - no action
// 1 - move to Trash
// 2 - delete the message
// 3 - flag as deleted
// folder_name - move the message to the specified folder
$config['calendar_itip_after_action'] = 0;
// enable asynchronous free-busy triggering after data changed
$rcmail_config['calendar_freebusy_trigger'] = false;
$config['calendar_freebusy_trigger'] = false;
// SMTP server host used to send (anonymous) itip messages
$rcmail_config['calendar_itip_smtp_server'] = null;
// free-busy information will be displayed for user calendars if available
// 0 - no free-busy information
// 1 - enabled in all views
// 2 - only in quickview
$config['calendar_include_freebusy_data'] = 1;
// SMTP server host used to send (anonymous) itip messages.
// 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
$rcmail_config['calendar_itip_smtp_user'] = 'smtpauth';
$config['calendar_itip_smtp_user'] = 'smtpauth';
// SMTP password used to send (anonymous) itip messages
$rcmail_config['calendar_itip_smtp_pass'] = '123456';
$config['calendar_itip_smtp_pass'] = '123456';
// show virtual invitation calendars (Kolab driver only)
$config['kolab_invitation_calendars'] = false;
// Base URL to build fully qualified URIs to access calendars via CALDAV
// The following replacement variables are supported:
@ -125,6 +141,32 @@ $rcmail_config['calendar_itip_smtp_pass'] = '123456';
// %u - Current webmail user name
// %n - Calendar name
// %i - Calendar UUID
// $rcmail_config['calendar_caldav_url'] = 'http://%h/iRony/calendars/%u/%i';
// $config['calendar_caldav_url'] = 'http://%h/iRony/calendars/%u/%i';
// 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';
// 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;
?>

75
drivers/caldav/Isync.php Normal file
View file

@ -0,0 +1,75 @@
<?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);
}

View file

@ -0,0 +1,110 @@
/**
* 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');

View file

View file

@ -0,0 +1,125 @@
/**
* 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;

View file

@ -0,0 +1,101 @@
/**
* 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);

View file

@ -0,0 +1,404 @@
<?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)
}
};
?>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,254 @@
<?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"]);
}
};
?>

View file

@ -0,0 +1,73 @@
<?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 "";
}
}
}
?>

View file

@ -0,0 +1,163 @@
<?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;
}
}
?>

File diff suppressed because it is too large Load diff

View file

@ -3,12 +3,11 @@
*
* Plugin to add a calendar to Roundcube.
*
* @version @package_version@
* @author Lazlo Westerhof
* @author Thomas Bruederli
* @url http://rc-calendar.lazlo.me
* @licence GNU AGPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
* @copyright (c) 2014 Kolab Systems AG
*
**/
@ -29,6 +28,8 @@ CREATE TABLE IF NOT EXISTS `events` (
`calendar_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
`recurrence_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
`uid` varchar(255) NOT NULL DEFAULT '',
`instance` varchar(16) NOT NULL DEFAULT '',
`isexception` tinyint(1) NOT NULL DEFAULT '0',
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`sequence` int(1) UNSIGNED NOT NULL DEFAULT '0',
@ -44,7 +45,8 @@ CREATE TABLE IF NOT EXISTS `events` (
`free_busy` tinyint(1) NOT NULL DEFAULT '0',
`priority` tinyint(1) NOT NULL DEFAULT '0',
`sensitivity` tinyint(1) NOT NULL DEFAULT '0',
`alarms` varchar(255) DEFAULT NULL,
`status` varchar(32) NOT NULL DEFAULT '',
`alarms` text DEFAULT NULL,
`attendees` text DEFAULT NULL,
`notifyat` datetime DEFAULT NULL,
PRIMARY KEY(`event_id`),
@ -80,4 +82,4 @@ CREATE TABLE IF NOT EXISTS `itipinvitations` (
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
REPLACE INTO system (name, value) VALUES ('calendar-database-version', '2013051600');
REPLACE INTO system (name, value) VALUES ('calendar-database-version', '2015022700');

View file

@ -1,3 +0,0 @@
-- MySQL database updates since version 0.9.1
ALTER TABLE `events` ADD `custom` TEXT NULL AFTER `attendees`;

View file

@ -0,0 +1,3 @@
-- MySQL database updates since version 1.0
ALTER TABLE `events` ADD `status` VARCHAR(32) NOT NULL AFTER `sensitivity`;

View file

@ -0,0 +1,15 @@
-- add identifier for recurring instances and exceptions
ALTER TABLE `events` ADD `instance` varchar(16) NOT NULL DEFAULT '' AFTER `uid`;
ALTER TABLE `events` ADD `isexception` tinyint(1) NOT NULL DEFAULT '0' AFTER `instance`;
UPDATE `events` SET `instance` = DATE_FORMAT(`start`, '%Y%m%d')
WHERE `recurrence_id` != 0 AND `instance` = '' AND `all_day` = 1;
UPDATE `events` SET `instance` = DATE_FORMAT(`start`, '%Y%m%dT%k%i%s')
WHERE `recurrence_id` != 0 AND `instance` = '' AND `all_day` = 0;
-- extend alarms columns for multiple values
ALTER TABLE `events` CHANGE `alarms` `alarms` TEXT NULL DEFAULT NULL;

View file

@ -3,13 +3,12 @@
*
* Plugin to add a calendar to RoundCube.
*
* @version @package_version@
* @author Lazlo Westerhof
* @author Albert Lee
* @author Aleksander Machniak <machniak@kolabsys.com>
* @url http://rc-calendar.lazlo.me
* @licence GNU AGPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
* @copyright (c) 2014 Kolab Systems AG
*
**/
@ -45,22 +44,25 @@ CREATE TABLE events (
REFERENCES calendars (calendar_id) ON UPDATE CASCADE ON DELETE CASCADE,
recurrence_id integer NOT NULL DEFAULT 0,
uid varchar(255) NOT NULL DEFAULT '',
instance varchar(16) NOT NULL DEFAULT '',
isexception smallint NOT NULL DEFAULT '0',
created timestamp without time zone DEFAULT now() NOT NULL,
changed timestamp without time zone DEFAULT now(),
sequence integer NOT NULL DEFAULT 0,
"start" timestamp without time zone DEFAULT now() NOT NULL,
"end" timestamp without time zone DEFAULT now() NOT NULL,
recurrence varchar(255) DEFAULT NULL,
title character varying(255) NOT NULL,
description text NOT NULL,
location character varying(255) NOT NULL,
categories character varying(255) NOT NULL,
url character varying(255) NOT NULL,
title character varying(255) NOT NULL DEFAULT '',
description text NOT NULL DEFAULT '',
location character varying(255) NOT NULL DEFAULT '',
categories character varying(255) NOT NULL DEFAULT '',
url character varying(255) NOT NULL DEFAULT '',
all_day smallint NOT NULL DEFAULT 0,
free_busy smallint NOT NULL DEFAULT 0,
priority smallint NOT NULL DEFAULT 0,
sensitivity smallint NOT NULL DEFAULT 0,
alarms varchar(255) DEFAULT NULL,
status character varying(32) NOT NULL DEFAULT '',
alarms text DEFAULT NULL,
attendees text DEFAULT NULL,
notifyat timestamp without time zone DEFAULT NULL,
PRIMARY KEY (event_id)
@ -104,4 +106,4 @@ CREATE TABLE itipinvitations (
CREATE INDEX itipinvitations_user_id_event_uid_idx ON itipinvitations (user_id, event_uid);
INSERT INTO system (name, value) VALUES ('calendar-database-version', '2013051600');
INSERT INTO system (name, value) VALUES ('calendar-database-version', '2015022700');

View file

@ -1,3 +0,0 @@
-- Postgres database updates since version 0.9.1
ALTER TABLE events ADD custom text DEFAULT NULL;

View file

@ -0,0 +1,3 @@
-- Postgres database updates since version 1.0
ALTER TABLE events ADD status character varying(32) NOT NULL;

View file

@ -0,0 +1,9 @@
-- add identifier for recurring instances and exceptions
ALTER TABLE events ADD instance character varying(16) NOT NULL;
ALTER TABLE events ADD isexception smallint NOT NULL DEFAULT '0';
-- extend alarms columns for multiple values
ALTER TABLE events ALTER COLUMN alarms TYPE text;

View file

@ -3,13 +3,12 @@
*
* Plugin to add a calendar to Roundcube.
*
* @version @package_version@
* @author Lazlo Westerhof
* @author Thomas Bruederli
* @author Albert Lee
* @url http://rc-calendar.lazlo.me
* @licence GNU AGPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
* @copyright (c) 2014 Kolab Systems AG
*
**/
@ -28,6 +27,8 @@ CREATE TABLE events (
calendar_id integer NOT NULL default '0',
recurrence_id integer NOT NULL default '0',
uid varchar(255) NOT NULL default '',
instance varchar(16) NOT NULL default '',
isexception tinyint(1) NOT NULL default '0',
created datetime NOT NULL default '1000-01-01 00:00:00',
changed datetime NOT NULL default '1000-01-01 00:00:00',
sequence integer NOT NULL default '0',
@ -43,7 +44,8 @@ CREATE TABLE events (
free_busy tinyint(1) NOT NULL default '0',
priority tinyint(1) NOT NULL default '0',
sensitivity tinyint(1) NOT NULL default '0',
alarms varchar(255) default NULL,
status varchar(32) NOT NULL default '',
alarms text default NULL,
attendees text default NULL,
notifyat datetime default NULL,
CONSTRAINT fk_events_calendar_id FOREIGN KEY (calendar_id)
@ -74,4 +76,4 @@ CREATE TABLE itipinvitations (
CREATE INDEX ix_itipinvitations_uid ON itipinvitations(user_id, event_uid);
INSERT INTO system (name, value) VALUES ('calendar-database-version', '2013051600');
INSERT INTO system (name, value) VALUES ('calendar-database-version', '2015022700');

View file

@ -61,3 +61,4 @@ 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;

View file

@ -1,6 +1,6 @@
-- SQLite database updates since version 0.9.1
-- SQLite database updates since version 0.9-beta
-- ALTER TABLE events ADD custom text DEFAULT NULL AFTER attendees;
-- ALTER TABLE events ADD url varchar(255) NOT NULL AFTER categories;
CREATE TABLE temp_events (
event_id integer NOT NULL PRIMARY KEY,
@ -17,6 +17,7 @@ CREATE TABLE temp_events (
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',
@ -26,8 +27,9 @@ CREATE TABLE temp_events (
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;
INSERT INTO temp_events (event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat)
SELECT event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat
FROM events;
DROP TABLE events;
@ -51,14 +53,16 @@ CREATE TABLE events (
free_busy tinyint(1) NOT NULL default '0',
priority tinyint(1) NOT NULL default '0',
sensitivity tinyint(1) NOT NULL default '0',
status varchar(32) NOT NULL default '',
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;
INSERT INTO events (event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat)
SELECT event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat
FROM temp_events;
DROP TABLE temp_events;

View file

@ -0,0 +1,79 @@
-- ALTER TABLE `events` ADD `instance` varchar(16) NOT NULL DEFAULT '' AFTER `uid`;
-- ALTER TABLE `events` ADD `isexception` tinyint(3) NOT NULL DEFAULT '0' AFTER `instance`;
-- ALTER TABLE `events` CHANGE `alarms` `alarms` TEXT NULL DEFAULT NULL;
CREATE TABLE temp_events (
event_id integer NOT NULL PRIMARY KEY,
calendar_id integer NOT NULL default '0',
recurrence_id integer NOT NULL default '0',
uid varchar(255) NOT NULL default '',
created datetime NOT NULL default '1000-01-01 00:00:00',
changed datetime NOT NULL default '1000-01-01 00:00:00',
sequence integer NOT NULL default '0',
start datetime NOT NULL default '1000-01-01 00:00:00',
end datetime NOT NULL default '1000-01-01 00:00:00',
recurrence varchar(255) default NULL,
title varchar(255) NOT NULL,
description text NOT NULL,
location varchar(255) NOT NULL default '',
categories varchar(255) NOT NULL default '',
url varchar(255) NOT NULL default '',
all_day tinyint(1) NOT NULL default '0',
free_busy tinyint(1) NOT NULL default '0',
priority tinyint(1) NOT NULL default '0',
sensitivity tinyint(1) NOT NULL default '0',
status varchar(32) NOT NULL default '',
alarms varchar(255) default NULL,
attendees text default NULL,
notifyat datetime default NULL
);
INSERT INTO temp_events (event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat)
SELECT event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat
FROM events;
DROP TABLE events;
CREATE TABLE events (
event_id integer NOT NULL PRIMARY KEY,
calendar_id integer NOT NULL default '0',
recurrence_id integer NOT NULL default '0',
uid varchar(255) NOT NULL default '',
instance varchar(16) NOT NULL default '',
isexception tinyint(1) NOT NULL default '0',
created datetime NOT NULL default '1000-01-01 00:00:00',
changed datetime NOT NULL default '1000-01-01 00:00:00',
sequence integer NOT NULL default '0',
start datetime NOT NULL default '1000-01-01 00:00:00',
end datetime NOT NULL default '1000-01-01 00:00:00',
recurrence varchar(255) default NULL,
title varchar(255) NOT NULL,
description text NOT NULL,
location varchar(255) NOT NULL default '',
categories varchar(255) NOT NULL default '',
url varchar(255) NOT NULL default '',
all_day tinyint(1) NOT NULL default '0',
free_busy tinyint(1) NOT NULL default '0',
priority tinyint(1) NOT NULL default '0',
sensitivity tinyint(1) NOT NULL default '0',
status varchar(32) NOT NULL default '',
alarms text default NULL,
attendees text default NULL,
notifyat datetime default NULL,
CONSTRAINT fk_events_calendar_id FOREIGN KEY (calendar_id)
REFERENCES calendars(calendar_id)
);
INSERT INTO events (event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat)
SELECT event_id, calendar_id, recurrence_id, uid, created, changed, sequence, start, end, recurrence, title, description, location, categories, url, all_day, free_busy, priority, sensitivity, alarms, attendees, notifyat
FROM temp_events;
DROP TABLE temp_events;
-- Derrive instance columns from start date/time
UPDATE events SET instance = strftime('%Y%m%d', start)
WHERE recurrence_id != 0 AND instance = '' AND all_day = 1;
UPDATE events SET instance = strftime('%Y%m%dT%H%M%S', start)
WHERE recurrence_id != 0 AND instance = '' AND all_day = 0;

File diff suppressed because it is too large Load diff

View file

@ -7,14 +7,14 @@
**/
CREATE TABLE IF NOT EXISTS `kolab_alarms` (
`event_id` VARCHAR(255) NOT NULL,
`alarm_id` VARCHAR(255) NOT NULL,
`user_id` int(10) UNSIGNED NOT NULL,
`notifyat` DATETIME DEFAULT NULL,
`dismissed` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY(`event_id`,`user_id`),
PRIMARY KEY(`alarm_id`,`user_id`),
CONSTRAINT `fk_kolab_alarms_user_id` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) /*!40000 ENGINE=INNODB */;
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
CREATE TABLE IF NOT EXISTS `itipinvitations` (
`token` VARCHAR(64) NOT NULL,
@ -29,4 +29,4 @@ CREATE TABLE IF NOT EXISTS `itipinvitations` (
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
REPLACE INTO system (name, value) VALUES ('calendar-kolab-version', '2013011000');
REPLACE INTO system (name, value) VALUES ('calendar-kolab-version', '2014041700');

View file

@ -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 */;
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;

View file

@ -0,0 +1 @@
ALTER TABLE `kolab_alarms` CHANGE `event_id` `alarm_id` VARCHAR(255) NOT NULL;

View file

@ -0,0 +1,31 @@
/**
* Roundcube Calendar Kolab backend
*
* @author Aleksander Machniak
* @licence GNU AGPL
**/
CREATE TABLE "kolab_alarms" (
"alarm_id" varchar(255) NOT NULL PRIMARY KEY,
"user_id" integer NOT NULL
REFERENCES "users" ("user_id") ON DELETE CASCADE,
"notifyat" timestamp DEFAULT NULL,
"dismissed" smallint DEFAULT 0 NOT NULL
);
CREATE INDEX "kolab_alarms_user_id_idx" ON "kolab_alarms" ("user_id");
CREATE TABLE "itipinvitations" (
"token" varchar(64) NOT NULL PRIMARY KEY,
"event_uid" varchar(255) NOT NULL,
"user_id" integer NOT NULL
REFERENCES "users" ("user_id") ON DELETE CASCADE,
"event" long NOT NULL,
"expires" timestamp DEFAULT NULL,
"cancelled" smallint DEFAULT 0 NOT NULL
);
CREATE INDEX "itipinvitations_user_id_idx" ON "itipinvitations" ("user_id", "event_uid");
INSERT INTO "system" ("name", "value") VALUES ('calendar-kolab-version', '2014041700');

View file

@ -6,14 +6,16 @@
**/
CREATE TABLE IF NOT EXISTS kolab_alarms (
event_id character varying(255) NOT NULL,
alarm_id character varying(255) NOT NULL,
user_id integer NOT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
notifyat timestamp without time zone DEFAULT NULL,
dismissed smallint NOT NULL DEFAULT 0,
PRIMARY KEY(event_id)
PRIMARY KEY(alarm_id)
);
CREATE INDEX kolab_alarms_user_id_idx ON kolab_alarms (user_id);
CREATE TABLE IF NOT EXISTS itipinvitations (
token character varying(64) NOT NULL,
event_uid character varying(255) NOT NULL,
@ -25,6 +27,6 @@ CREATE TABLE IF NOT EXISTS itipinvitations (
PRIMARY KEY(token)
);
CREATE INDEX itipinvitations_event_uid_user_id_idx ON itipinvitations (event_uid, user_id);
CREATE INDEX itipinvitations_user_id_event_uid_idx ON itipinvitations (user_id, event_uid);
INSERT INTO system (name, value) VALUES ('calendar-kolab-version', '2013011000');
INSERT INTO system (name, value) VALUES ('calendar-kolab-version', '2014041700');

View file

@ -0,0 +1,30 @@
/**
* 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');

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,424 @@
<?php
/**
* Kolab calendar storage class simulating a virtual calendar listing pedning/declined invitations
*
* @author Thomas Bruederli <bruederli@kolabsys.com>
*
* Copyright (C) 2014-2015, Kolab Systems AG <contact@kolabsys.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class kolab_invitation_calendar
{
public $id = '__invitation__';
public $ready = true;
public $alarms = false;
public $rights = 'lrsv';
public $editable = false;
public $attachments = false;
public $subscriptions = false;
public $partstats = ['unknown'];
public $categories = [];
public $name = 'Invitations';
/**
* Default constructor
*/
public function __construct($id, $calendar)
{
$this->cal = $calendar;
$this->id = $id;
switch ($this->id) {
case kolab_driver::INVITATIONS_CALENDAR_PENDING:
$this->partstats = ['NEEDS-ACTION'];
$this->name = $this->cal->gettext('invitationspending');
if (!empty($_REQUEST['_quickview'])) {
$this->partstats[] = 'TENTATIVE';
}
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'];
}
}
/**
* 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', []);
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;
}
}

View file

@ -0,0 +1,445 @@
<?php
/**
* Kolab calendar storage class simulating a virtual user calendar
*
* @author Thomas Bruederli <bruederli@kolabsys.com>
*
* Copyright (C) 2014-2016, Kolab Systems AG <contact@kolabsys.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class kolab_user_calendar extends kolab_calendar
{
public $id = 'unknown';
public $ready = false;
public $editable = false;
public $attachments = false;
public $subscriptions = false;
protected $userdata = [];
protected $timeindex = [];
/**
* Default constructor
*/
public function __construct($user_or_folder, $calendar)
{
$this->cal = $calendar;
$this->imap = $calendar->rc->get_storage();
// 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'];
}
}
}
/**
* 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'];
}
return !empty($this->userdata['name']) ? $this->userdata['name'] : $this->userdata['mail'];
}
/**
* Getter for the IMAP folder owner
*
* @param bool Return a fully qualified owner name (unused)
*
* @return string Name of the folder owner
*/
public function get_owner($fully_qualified = false)
{
return $this->userdata['mail'];
}
/**
*
*/
public function get_title()
{
$title = [];
if (!empty($this->userdata['displayname'])) {
$title[] = $this->userdata['displayname'];
}
$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';
}
/**
* 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($default = null)
{
// 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 $default ?: '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 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;
}
}

View file

@ -0,0 +1,158 @@
<?php
/**
* LDAP-based resource directory class using rcube_ldap functionality
*
* @author Thomas Bruederli <bruederli@kolabsys.com>
*
* Copyright (C) 2014, Kolab Systems AG <contact@kolabsys.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* LDAP-based resource directory implementation
*/
class resources_driver_ldap extends resources_driver
{
private $rc;
private $ldap;
/**
* Default constructor
*/
function __construct($cal)
{
$this->cal = $cal;
$this->rc = $cal->rc;
}
/**
* Fetch resource objects to be displayed for booking
*
* @param string $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
*/
public function load_resources($query = null, $num = 5000, $searchField = '*')
{
if (!($ldap = $this->connect())) {
return [];
}
// TODO: apply paging
$ldap->set_pagesize($num);
if (isset($query)) {
$results = $ldap->search($searchField, $query, 0, true, true);
}
else {
$results = $ldap->list_records();
}
if ($results instanceof ArrayAccess) {
foreach ($results as $i => $rec) {
$results[$i] = $this->decode_resource($rec);
}
}
return $results;
}
/**
* Return properties of a single resource
*
* @param string $id Unique resource identifier
*
* @return array Resource object as hash array
*/
public function get_resource($dn)
{
$rec = null;
if ($ldap = $this->connect()) {
$rec = $ldap->get_record(rcube_ldap::dn_encode($dn), true);
if (!empty($rec)) {
$rec = $this->decode_resource($rec);
}
}
return $rec;
}
/**
* Return properties of a resource owner
*
* @param string $dn Owner identifier
*
* @return array Resource object as hash array
*/
public function get_resource_owner($dn)
{
$owner = null;
if ($ldap = $this->connect()) {
$owner = $ldap->get_record(rcube_ldap::dn_encode($dn), true);
$owner['ID'] = rcube_ldap::dn_decode($owner['ID']);
unset($owner['_raw_attrib'], $owner['_type']);
}
return $owner;
}
/**
* Extract JSON-serialized attributes
*/
private function decode_resource($rec)
{
$rec['ID'] = rcube_ldap::dn_decode($rec['ID']);
$attributes = [];
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;
}
}
$rec['attributes'] = $attributes;
// force $rec['members'] to be an array
if (!empty($rec['members']) && !is_array($rec['members'])) {
$rec['members'] = [$rec['members']];
}
// remove unused cruft
unset($rec['_raw_attrib']);
return $rec;
}
private function connect()
{
if (!isset($this->ldap)) {
$this->ldap = new rcube_ldap($this->rc->config->get('calendar_resources_directory'), true);
}
return $this->ldap->ready ? $this->ldap : null;
}
}

View file

@ -0,0 +1,118 @@
<?php
/**
* Resources directory interface definition
*
* @author Thomas Bruederli <bruederli@kolabsys.com>
*
* Copyright (C) 2014, Kolab Systems AG <contact@kolabsys.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* Interface definition for a resources directory driver classe
*/
abstract class resources_driver
{
protected $cal;
/**
* Default constructor
*/
function __construct($cal)
{
$this->cal = $cal;
}
/**
* Fetch resource objects to be displayed for booking
*
* @param string $query 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 resource owner
*
* @param string $id 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);
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) {
$events[] = [
'id' => sha1($id . $from . $to),
'title' => $rec['name'],
'start' => new DateTime('@' . $from),
'end' => new DateTime('@' . $to),
'status' => $fbtypemap[$type],
'calendar' => '_resource',
];
}
}
}
}
return $events;
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,7 @@
<?php
require_once realpath(__DIR__ . '/../../libcalendaring/lib/libcalendaring_itip.php');
/**
* iTIP functions for the Calendar plugin
*
@ -24,351 +26,233 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class calendar_itip
class calendar_itip extends libcalendaring_itip
{
private $rc;
private $cal;
private $sender;
private $itip_send = false;
/**
* Constructor to set text domain to calendar
*/
function __construct($plugin, $domain = 'calendar')
{
parent::__construct($plugin, $domain);
function __construct($cal, $identity = null)
{
$this->cal = $cal;
$this->rc = $cal->rc;
$this->sender = $identity ? $identity : $this->rc->user->get_identity();
$this->cal->add_hook('smtp_connect', array($this, 'smtp_connect_hook'));
}
function set_sender_email($email)
{
if (!empty($email))
$this->sender['email'] = $email;
}
/**
* Send an iTip mail message
*
* @param array Event object to send
* @param string iTip method (REQUEST|REPLY|CANCEL)
* @param array Hash array with recipient data (name, email)
* @param string Mail subject
* @param string Mail body text label
* @param object Mail_mime object with message data
* @return boolean True on success, false on failure
*/
public function send_itip_message($event, $method, $recipient, $subject, $bodytext, $message = null)
{
if (!$this->sender['name'])
$this->sender['name'] = $this->sender['email'];
if (!$message)
$message = $this->compose_itip_message($event, $method);
$mailto = rcube_idn_to_ascii($recipient['email']);
$headers = $message->headers();
$headers['To'] = format_email_recipient($mailto, $recipient['name']);
$headers['Subject'] = $this->cal->gettext(array(
'name' => $subject,
'vars' => array('title' => $event['title'], 'name' => $this->sender['name'])
));
// compose a list of all event attendees
$attendees_list = array();
foreach ((array)$event['attendees'] as $attendee) {
$attendees_list[] = ($attendee['name'] && $attendee['email']) ?
$attendee['name'] . ' <' . $attendee['email'] . '>' :
($attendee['name'] ? $attendee['name'] : $attendee['email']);
}
$mailbody = $this->cal->gettext(array(
'name' => $bodytext,
'vars' => array(
'title' => $event['title'],
'date' => $this->cal->lib->event_date_text($event, true),
'attendees' => join(', ', $attendees_list),
'sender' => $this->sender['name'],
'organizer' => $this->sender['name'],
)
));
// append links for direct invitation replies
if ($method == 'REQUEST' && ($token = $this->store_invitation($event, $recipient['email']))) {
$mailbody .= "\n\n" . $this->cal->gettext(array(
'name' => 'invitationattendlinks',
'vars' => array('url' => $this->cal->get_url(array('action' => 'attend', 't' => $token))),
));
}
else if ($method == 'CANCEL') {
$this->cancel_itip_invitation($event);
}
$message->headers($headers, true);
$message->setTXTBody(rcube_mime::format_flowed($mailbody, 79));
// finally send the message
$this->itip_send = true;
$sent = $this->rc->deliver_message($message, $headers['X-Sender'], $mailto, $smtp_error);
$this->itip_send = false;
return $sent;
}
/**
* Plugin hook to alter SMTP authentication.
* This is used if iTip messages are to be sent from an unauthenticated session
*/
public function smtp_connect_hook($p)
{
// replace smtp auth settings if we're not in an authenticated session
if ($this->itip_send && !$this->rc->user->ID) {
foreach (array('smtp_server', 'smtp_user', 'smtp_pass') as $prop) {
$p[$prop] = $this->rc->config->get("calendar_itip_$prop", $p[$prop]);
}
$this->db_itipinvitations = $this->rc->db->table_name('itipinvitations', true);
}
return $p;
}
/**
* Handler for calendar/itip-status requests
*/
public function get_itip_status($event, $existing = null)
{
$status = parent::get_itip_status($event, $existing);
/**
* Helper function to build a Mail_mime object to send an iTip message
*
* @param array Event object to send
* @param string iTip method (REQUEST|REPLY|CANCEL)
* @return object Mail_mime object with message data
*/
public function compose_itip_message($event, $method)
{
$from = rcube_idn_to_ascii($this->sender['email']);
$from_utf = rcube_idn_to_utf8($from);
$sender = format_email_recipient($from, $this->sender['name']);
// truncate list attendees down to the recipient of the iTip Reply.
// constraints for a METHOD:REPLY according to RFC 5546
if ($method == 'REPLY') {
$replying_attendee = null; $reply_attendees = array();
foreach ($event['attendees'] as $attendee) {
if ($attendee['role'] == 'ORGANIZER') {
$reply_attendees[] = $attendee;
// don't ask for deleting events when declining
if ($this->rc->config->get('kolab_invitation_calendars')) {
$status['saved'] = false;
}
else if (strcasecmp($attedee['email'], $from) == 0 || strcasecmp($attendee['email'], $from_utf) == 0) {
$replying_attendee = $attendee;
return $status;
}
/**
* 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;
}
}
}
if ($replying_attendee) {
$reply_attendees[] = $replying_attendee;
$event['attendees'] = $reply_attendees;
}
return false;
}
// compose multipart message using PEAR:Mail_Mime
$message = new Mail_mime("\r\n");
$message->setParam('text_encoding', 'quoted-printable');
$message->setParam('head_encoding', 'quoted-printable');
$message->setParam('head_charset', RCMAIL_CHARSET);
$message->setParam('text_charset', RCMAIL_CHARSET . ";\r\n format=flowed");
$message->setContentType('multipart/alternative');
// compose common headers array
$headers = array(
'From' => $sender,
'Date' => $this->rc->user_date(),
'Message-ID' => $this->rc->gen_message_id(),
'X-Sender' => $from,
);
if ($agent = $this->rc->config->get('useragent'))
$headers['User-Agent'] = $agent;
$message->headers($headers);
// attach ics file for this event
$ical = $this->cal->get_ical();
$ics = $ical->export(array($event), $method, false, $method == 'REQUEST' ? array($this->cal->driver, 'get_attachment_body') : false);
$message->addAttachment($ics, 'text/calendar', 'event.ics', false, '8bit', '', RCMAIL_CHARSET . "; method=" . $method);
return $message;
}
/**
* Find invitation record by token
*
* @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 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;
}
/**
* 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;
/**
* 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);
}
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;
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;
}
$invitation['event']['attendees'][$i]['status'] = $newstatus;
$this->sender = $attendee;
}
}
$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;
}
}
}
$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->cal->gettext(array('name' => 'sentresponseto', 'vars' => array('mailto' => $organizer['name'] ? $organizer['name'] : $organizer['email']))), 'confirmation');
else
$this->rc->output->command('display_message', $this->cal->gettext('itipresponseerror'), 'error');
}
// update record in DB
$query = $this->rc->db->query(
"UPDATE itipinvitations
SET event=?
WHERE token=?",
self::serialize_event($invitation['event']),
$invitation['token']
);
if ($this->rc->db->affected_rows($query))
return true;
return false;
}
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 = [];
/**
* 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;
if (empty($event['uid']) || !$attendee) {
return false;
}
// delete old entry
$this->rc->db->query("DELETE FROM itipinvitations WHERE token=?", $base);
// generate token for this invitation
$token = $this->generate_token($event, $attendee);
$base = substr($token, 0, 40);
$query = $this->rc->db->query(
"INSERT INTO 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'] + 86400 * 2)
);
if ($this->rc->db->affected_rows($query)) {
$stored[$base] = 1;
return $token;
// 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;
}
return false;
}
/**
* Mark invitations for the given event as cancelled
*
* @param array Hash array with event properties
*/
public function cancel_itip_invitation($event)
{
// flag invitation record as cancelled
$this->rc->db->query(
"UPDATE itipinvitations
SET cancelled=1
WHERE event_uid=? AND user_id=?",
$event['uid'],
$this->rc->user->ID
);
}
/**
* 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'] : '');
/**
* 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)
{
$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 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));
// 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
);
}
return false;
}
/**
* 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);
}
/**
* 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);
}
}

View file

@ -1,15 +1,15 @@
<?php
require_once realpath(__DIR__ . '/../../libcalendaring/lib/libcalendaring_recurrence.php');
/**
* Recurrence computation class for the Calendar plugin
*
* Uitility class to compute instances of recurring events.
*
* @version @package_version@
* @author Thomas Bruederli <bruederli@kolabsys.com>
* @package @package_name@
*
* Copyright (C) 2012, Kolab Systems AG <contact@kolabsys.com>
* Copyright (C) 2012-2014, Kolab Systems AG <contact@kolabsys.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@ -24,102 +24,66 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class calendar_recurrence
class calendar_recurrence extends libcalendaring_recurrence
{
private $cal;
private $event;
private $next;
private $engine;
private $duration;
private $hour = 0;
private $event;
private $duration;
/**
* Default constructor
*
* @param object calendar The calendar plugin instance
* @param array The event object to operate on
*/
function __construct($cal, $event)
{
// use Horde classes to compute recurring instances
// TODO: replace with something that has less than 6'000 lines of code
require_once(__DIR__ . '/Horde_Date_Recurrence.php');
/**
* 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);
$this->cal = $cal;
$this->event = $event;
$this->next = new Horde_Date($event['start'], $cal->timezone->getName());
$this->hour = $this->next->hour;
$this->event = $event;
if (is_object($event['start']) && is_object($event['end']))
$this->duration = $event['start']->diff($event['end']);
$this->engine = new Horde_Date_Recurrence($event['start']);
$this->engine->fromRRule20(libcalendaring::to_rrule($event['recurrence']));
if (is_array($event['recurrence']['EXDATE'])) {
foreach ($event['recurrence']['EXDATE'] as $exdate) {
if (is_a($exdate, 'DateTime')) {
$this->engine->addException($exdate->format('Y'), $exdate->format('n'), $exdate->format('j'));
if (is_object($event['start']) && is_object($event['end'])) {
$this->duration = $event['start']->diff($event['end']);
}
$event['start']->_dateonly = !empty($event['allday']);
$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, $this->event['allday']);
unset($next['_formatobj']);
return $next;
}
}
}
if (is_array($event['recurrence']['RDATE'])) {
foreach ($event['recurrence']['RDATE'] as $rdate) {
if (is_a($rdate, 'DateTime')) {
$this->engine->addRDate($rdate->format('Y'), $rdate->format('n'), $rdate->format('j'));
}
}
}
}
/**
* Get date/time of the next occurence of this event
*
* @return mixed DateTime object or False if recurrence ended
*/
public function next_start()
{
$time = false;
$after = clone $this->next;
$after->mday = $after->mday + 1;
if ($this->next && ($next = $this->engine->nextActiveRecurrence($after))) {
if (!$next->after($this->next)) {
// avoid endless loops if recurrence computation fails
return false;
}
if ($this->event['allday']) {
$next->hour = $this->hour; # fix time for all-day events
$next->min = 0;
}
$time = $next->toDateTime();
$this->next = $next;
}
return $time;
}
/**
* 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_start()) {
$next_end = clone $next_start;
$next_end->add($this->duration);
$next = $this->event;
$next['recurrence_id'] = $next_start->format('Y-m-d');
$next['start'] = $next_start;
$next['end'] = $next_end;
unset($next['_formatobj']);
return $next;
}
return false;
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,16 +0,0 @@
// 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 Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,38 +1,197 @@
<?php
/**
* RoundCube Calendar
* Localizations for Kolab Calendar plugin
*
* Plugin to add a calendar to RoundCube.
* Copyright (C) 2014, Kolab Systems AG
*
* @version 0.2 BETA 2
* @author Lazlo Westerhof
* @url http://rc-calendar.lazlo.me
* @licence GNU GPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
*
**/
$labels = array();
// config
$labels['default_view'] = 'Изглед';
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Изглед по подразбиране';
$labels['time_format'] = 'Формат на часовете';
$labels['timeslots'] = 'Полета на час';
$labels['timeslots'] = 'Деления за час';
$labels['first_day'] = 'Първи ден от седмицата';
// calendar
$labels['first_hour'] = 'Първи час при показване';
$labels['workinghours'] = 'Работни часове';
$labels['add_category'] = 'Добавяне на категория';
$labels['remove_category'] = 'Премахване на категория';
$labels['defaultcalendar'] = 'Създаване на нови събития в ';
$labels['eventcoloring'] = 'Оцветяване на събитията';
$labels['coloringmode0'] = 'Според календара';
$labels['coloringmode1'] = 'Относно категорията';
$labels['coloringmode2'] = 'Календар за очертание, категория за съдържание';
$labels['coloringmode3'] = 'Категория за очертание, календар за съдържание';
$labels['afternothing'] = 'Не предприемай нищо';
$labels['aftertrash'] = 'Премести в Кошчето';
$labels['afterdelete'] = 'Изтрий съобщението';
$labels['afterflagdeleted'] = 'Маркирай като изтрито';
$labels['aftermoveto'] = 'Премести в...';
$labels['itipoptions'] = 'Покани за събитие';
$labels['weeknonone'] = 'never';
$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['remove'] = 'Изтриване';
$labels['removelist'] = 'Премахни от списъка';
$labels['cancel'] = 'Отказ';
$labels['select'] = 'Избиране';
$labels['print'] = 'Печат';
$labels['printtitle'] = 'Печат на календарите';
$labels['title'] = 'Заглавие';
$labels['description'] = 'Описание';
$labels['all-day'] = 'цял ден';
$labels['export'] = 'Запази като ICS';
$labels['category'] = 'Категория';
?>
$labels['export'] = 'Извличане';
$labels['exporttitle'] = 'Извличане към iCalendar';
$labels['exportrange'] = 'Събития от';
$labels['exportattachments'] = 'С прикачени файлове';
$labels['customdate'] = 'Дата по избор';
$labels['location'] = 'Местоположение';
$labels['url'] = 'URL адрес';
$labels['date'] = 'Дата';
$labels['start'] = 'Начало';
$labels['starttime'] = 'Време за начало';
$labels['end'] = 'Край';
$labels['endtime'] = 'Време за край';
$labels['repeat'] = 'Повтори';
$labels['selectdate'] = 'Избор на дата';
$labels['freebusy'] = 'Показване като';
$labels['free'] = 'Свободно';
$labels['busy'] = 'Заето';
$labels['outofoffice'] = 'Извън офиса';
$labels['tentative'] = 'Предварително';
$labels['mystatus'] = 'Моят статус';
$labels['status'] = 'Статус';
$labels['status-confirmed'] = 'Потвърдено';
$labels['status-cancelled'] = 'Отхвърлено';
$labels['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['removelink'] = 'Премахни е-мейл препратките';
$labels['printdescriptions'] = 'Печат на описанията';
$labels['parentcalendar'] = 'Внасяне вътре';
$labels['searchearlierdates'] = '« Търсене за по- стари събития';
$labels['searchlaterdates'] = 'Търсене за по- нови събития »';
$labels['laterevents'] = 'Късно';
$labels['andnmore'] = '$nr повече...';
$labels['togglerole'] = 'Натиснете за превключване на роля';
$labels['createfrommail'] = 'Запазване като събитие';
$labels['importevents'] = 'Внасяне на събития';
$labels['importrange'] = 'Събития от';
$labels['onemonthback'] = '1 месец назад';
$labels['nmonthsback'] = '$nr месеца назад';
$labels['showurl'] = 'Показване на URL на календара';
$labels['showurldescription'] = 'Използвайте следния адрес, за да достъпвате (само за четене) вашия календар от други приложения. Можете да копирате и поставяте това във всеки календарен софтуер, поддържащ форматът iCal';
$labels['searchterms'] = 'Търсене за';
$labels['calendarsubscribe'] = 'Постоянен списък';
$labels['nocalendarsfound'] = 'Не бяха намерени календари';
$labels['nrcalendarsfound'] = 'Бяха намерени $nr календара';
$labels['quickview'] = 'Покажи само този календар';
$labels['invitationspending'] = 'Чакащи покани';
$labels['invitationsdeclined'] = 'Отхвърлени покани';
$labels['changepartstat'] = 'Промени състоянието на участник';
$labels['rsvpcomment'] = 'Текст на поканата';
$labels['listrange'] = 'Оразмеряване към екран:';
$labels['listsections'] = 'Разделяне на:';
$labels['smartsections'] = 'Интелигентни секции';
$labels['until'] = 'до';
$labels['today'] = 'Днес';
$labels['tomorrow'] = 'Утре';
$labels['thisweek'] = 'Тази седмица';
$labels['nextweek'] = 'Следващата седмица';
$labels['prevweek'] = 'Миналата седмица';
$labels['thismonth'] = 'Този месец';
$labels['nextmonth'] = 'Следващия месец';
$labels['weekofyear'] = 'Седмица';
$labels['pastevents'] = 'Минали';
$labels['futureevents'] = 'Бъдещи';
$labels['showalarms'] = 'Покажи напомняния';
$labels['defaultalarmtype'] = 'Настройка за напомняне по подразбиране';
$labels['defaultalarmoffset'] = 'Време за напомняне по подразбиране';
$labels['attendee'] = 'Участник';
$labels['role'] = 'Роля';
$labels['availability'] = 'Налич.';
$labels['confirmstate'] = 'Статус';
$labels['addattendee'] = 'Добавяне на участник';
$labels['roleorganizer'] = 'Организатор';
$labels['rolerequired'] = 'Задължителен';
$labels['roleoptional'] = 'По избор';
$labels['rolechair'] = 'Председател';
$labels['rolenonparticipant'] = 'Липсващ';
$labels['cutypeindividual'] = 'Индивидуален';
$labels['cutypegroup'] = 'Група';
$labels['cutyperesource'] = 'Ресурс';
$labels['cutyperoom'] = 'Стая';
$labels['availfree'] = 'Свободен';
$labels['availbusy'] = 'Зает';
$labels['availunknown'] = 'Няма информация';
$labels['availtentative'] = 'Предварително';
$labels['availoutofoffice'] = 'Извън офиса';
$labels['sendinvitations'] = 'Изпращане на покани';
$labels['sendnotifications'] = 'Известяване на участниците относно промените';
$labels['sendcancellation'] = 'Известяване на участниците относно отмяна на събития';
$labels['invitationsubject'] = 'Бяхте поканен на "$title"';
$labels['eventupdatesubject'] = '"$title" беше отмнено';
$labels['itipdeclineevent'] = 'Искате ли да отхвърлите поканата за това събитие?';
$labels['saveincalendar'] = 'запазване в';
$labels['updatemycopy'] = 'Обнови в моя календар';
$labels['savetocalendar'] = 'Запази в календар';
$labels['openpreview'] = 'Провери календар';
$labels['noearlierevents'] = 'Няма по-ранни събития';
$labels['nolaterevents'] = 'Няма по-късни събития';
$labels['resource'] = 'Ресурс';
$labels['resourcedetails'] = 'Детайли';
$labels['resourceowner'] = 'Собственик';
$labels['tabsummary'] = 'Заглавие';
$labels['tabrecurrence'] = 'Да се повтаря';
$labels['tabattendees'] = 'Участници';
$labels['tabresources'] = 'Ресурси';
$labels['tabattachments'] = 'Прикрепени файлове';
$labels['tabsharing'] = 'Споделяне';
$labels['deleteobjectconfirm'] = 'Наистина ли искате да премахнете това събитие?';
$labels['deleteventconfirm'] = 'Наистина ли искате да премахнете това събитие?';
$labels['deletecalendarconfirm'] = 'Наистина ли искате да премахнете този календар с всичките му събития?';
$labels['deletecalendarconfirmrecursive'] = 'Наистина ли искате да премахнете този календар с всичките му събития и допълнителни календари?';
$labels['savingdata'] = 'Запазване на данни...';
$labels['errorsaving'] = 'Неуспешно записването на промените.';
$labels['successremoval'] = 'Събитието беше премахнато успешно.';
$labels['successrestore'] = 'Събитието беше възстановено успешно.';
$labels['importedsuccessfully'] = 'Събитието е добавено успешно към \'$calendar\'';
$labels['updatedsuccessfully'] = 'Събитието беше обновено успешно в \'$calendar\'';
$labels['importsuccess'] = '$nr събития бяха внесени успешно.';
$labels['importnone'] = 'Не бяха намерени събития за внасяне';
$labels['importerror'] = 'Възникна грешка при внасянето на събития';
$labels['aclnorights'] = 'Не разполагате с административни права върху този календар.';
$labels['changeeventconfirm'] = 'Промяна на събитие';
$labels['removeeventconfirm'] = 'Изтриване на събитие';
$labels['currentevent'] = 'Настоящи';
$labels['futurevents'] = 'Бъдещи';
$labels['allevents'] = 'Всички';
$labels['saveasnew'] = 'Запази като нов';
$labels['birthdays'] = 'Рождени дни';
$labels['arialabelcalendarview'] = 'Преглед на календара';
$labels['arialabeleventattendees'] = 'Списък с участниците в събитието';
$labels['arialabelresourceselection'] = 'Налични ресурси';
?>

254
localization/ca_ES.inc Normal file
View file

@ -0,0 +1,254 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Vista per defecte';
$labels['time_format'] = 'Format de l\'hora';
$labels['timeslots'] = 'Espais de temps per hora';
$labels['first_day'] = 'Primer dia de la setmana';
$labels['first_hour'] = 'Primera hora a mostrar';
$labels['workinghours'] = 'Hores de feina';
$labels['add_category'] = 'Afegeix categoria';
$labels['remove_category'] = 'Suprimeix categoria';
$labels['defaultcalendar'] = 'Crea nous esdeveniments a';
$labels['eventcoloring'] = 'Colors dels esdeveniments';
$labels['coloringmode0'] = 'Depenent del calendari';
$labels['coloringmode1'] = 'Depenent de la categoria';
$labels['coloringmode2'] = 'Calendari pel contorn, categoria pel contingut';
$labels['coloringmode3'] = 'Categoria pel contorn, calendari pel contingut\'';
$labels['afternothing'] = 'No facis res';
$labels['aftertrash'] = 'Mou a la Paperera';
$labels['afterdelete'] = 'Suprimeix el missatge';
$labels['afterflagdeleted'] = 'Marca\'l com a suprimit';
$labels['aftermoveto'] = 'Mou a...';
$labels['itipoptions'] = 'Invitacions a esdeveniments';
$labels['afteraction'] = 'S\'envia un missatge després d\'una invitació o una actualització';
$labels['calendar'] = 'Calendari';
$labels['calendars'] = 'Calendaris';
$labels['category'] = 'Categoria';
$labels['categories'] = 'Categories';
$labels['createcalendar'] = 'Crea un nou calendari';
$labels['name'] = 'Nom';
$labels['color'] = 'Color';
$labels['day'] = 'Dia';
$labels['week'] = 'Setmana';
$labels['month'] = 'Mes';
$labels['agenda'] = 'Agenda';
$labels['new'] = 'Nou';
$labels['new_event'] = 'Nou esdeveniment';
$labels['edit_event'] = 'Edita esdeveniment';
$labels['edit'] = 'Edita';
$labels['save'] = 'Desa';
$labels['removelist'] = 'Remove from list';
$labels['cancel'] = 'Cancel·la';
$labels['select'] = 'Selecciona';
$labels['print'] = 'Imprimeix';
$labels['printtitle'] = 'Imprimeix calendaris';
$labels['title'] = 'Resum';
$labels['description'] = 'Descripció';
$labels['all-day'] = 'Tot el dia';
$labels['export'] = 'Exporta';
$labels['exporttitle'] = 'Exporta a iCalendari';
$labels['exportrange'] = 'Esdeveniments de';
$labels['exportattachments'] = 'Amb fitxers adjunts';
$labels['customdate'] = 'Personalitza la data';
$labels['location'] = 'Ubicació';
$labels['url'] = 'URL';
$labels['date'] = 'Data';
$labels['start'] = 'Inici';
$labels['starttime'] = 'Hora d\'inici';
$labels['end'] = 'Final';
$labels['endtime'] = 'Hora de finalització';
$labels['repeat'] = 'Repeteix';
$labels['selectdate'] = 'Tria la data';
$labels['freebusy'] = 'Mostra\'m com';
$labels['free'] = 'Lliure';
$labels['busy'] = 'Ocupat';
$labels['outofoffice'] = 'Fora de l\'oficina';
$labels['tentative'] = 'Provisional';
$labels['mystatus'] = 'El meu estat';
$labels['status'] = 'Estat';
$labels['status-confirmed'] = 'Confirmat';
$labels['status-cancelled'] = 'Cancel·lat';
$labels['status-tentative'] = 'Provisional';
$labels['priority'] = 'Prioritat';
$labels['sensitivity'] = 'Privadesa';
$labels['public'] = 'públic';
$labels['private'] = 'privat';
$labels['confidential'] = 'confidencial';
$labels['links'] = 'Reference';
$labels['alarms'] = 'Recordatori';
$labels['comment'] = 'Comentari';
$labels['created'] = 'Creat';
$labels['changed'] = 'Darrera modificació';
$labels['unknown'] = 'Desconegut';
$labels['eventoptions'] = 'Opcions';
$labels['generated'] = 'generat a';
$labels['eventhistory'] = 'Historial';
$labels['removelink'] = 'Remove email reference';
$labels['printdescriptions'] = 'Imprimeix descripcions';
$labels['parentcalendar'] = 'Insereix dins';
$labels['searchearlierdates'] = '« Cerca els esdeveniments d\'abans';
$labels['searchlaterdates'] = 'Cerca els esdeveniments de després »';
$labels['laterevents'] = 'Després';
$labels['andnmore'] = '$nr més...';
$labels['togglerole'] = 'Feu clic per commutar el rol';
$labels['createfrommail'] = 'Desa com a esdeveniment';
$labels['importevents'] = 'Importa esdeveniments';
$labels['importrange'] = 'Esdeveniments de';
$labels['onemonthback'] = '1 mes abans';
$labels['nmonthsback'] = '$nr mesos abans';
$labels['showurl'] = 'Mostra la URL del calendari';
$labels['showurldescription'] = 'Podeu fer servir aquesta adreça per accedir (només lectura) el vostre calendari des d\'altres aplicacions. Copieu i enganxeu-la dins d\'un altre programari de calendari que suporti el format iCal.';
$labels['caldavurldescription'] = 'Copieu aquesta adreça a una aplicació client <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (p.ex.: Evolution o Mozilla Thunderbird) per sincronitzar aquest calendari amb el vostre ordinador o dispositiu mòbil.';
$labels['findcalendars'] = 'Cerca calendaris...';
$labels['searchterms'] = 'Termes de cerca';
$labels['calsearchresults'] = 'Calendaris disponibles';
$labels['calendarsubscribe'] = 'Llista permanentment';
$labels['nocalendarsfound'] = 'No s\'ha trobat cap calendari';
$labels['nrcalendarsfound'] = 'S\'han trobat $nr calendaris';
$labels['quickview'] = 'Mostra només aquest calendari';
$labels['invitationspending'] = 'Invitacions pendents';
$labels['invitationsdeclined'] = 'Invitacions declinades';
$labels['changepartstat'] = 'Canvia l\'estat d\'un participant';
$labels['rsvpcomment'] = 'Text d\'invitació';
$labels['listrange'] = 'Rang per mostrar:';
$labels['listsections'] = 'Divideix en:';
$labels['smartsections'] = 'Seccions petites';
$labels['until'] = 'fins';
$labels['today'] = 'Avui';
$labels['tomorrow'] = 'Demà';
$labels['thisweek'] = 'Aquesta setmana';
$labels['nextweek'] = 'Setmana vinent';
$labels['prevweek'] = 'Setmana anterior';
$labels['thismonth'] = 'Aquest mes';
$labels['nextmonth'] = 'Mes vinent';
$labels['weekofyear'] = 'Setmana';
$labels['pastevents'] = 'Passat';
$labels['futureevents'] = 'Futur';
$labels['showalarms'] = 'Mostra els recordatoris';
$labels['defaultalarmtype'] = 'Recordatori per defecte';
$labels['defaultalarmoffset'] = 'Temps de recordatori per defecte';
$labels['attendee'] = 'Participant';
$labels['role'] = 'Rol';
$labels['availability'] = 'Disp.';
$labels['confirmstate'] = 'Estat';
$labels['addattendee'] = 'Afegeix participant';
$labels['roleorganizer'] = 'Organitzador';
$labels['rolerequired'] = 'Obligatori';
$labels['roleoptional'] = 'Opcional';
$labels['rolechair'] = 'President';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Grup';
$labels['cutyperesource'] = 'Recurs';
$labels['cutyperoom'] = 'Sala';
$labels['availfree'] = 'Lliure';
$labels['availbusy'] = 'Ocupat';
$labels['availunknown'] = 'Desconegut';
$labels['availtentative'] = 'Provisional';
$labels['availoutofoffice'] = 'Fora de l\'oficina';
$labels['scheduletime'] = 'Cerca disponibilitat';
$labels['sendinvitations'] = 'Envia invitacions';
$labels['sendnotifications'] = 'Notifica als participants quan hi hagi modificacions';
$labels['sendcancellation'] = 'Notifica als participants si es cancel·la l\'esdeveniment';
$labels['onlyworkinghours'] = 'Cerca disponibilitat dins de les hores de feina';
$labels['reqallattendees'] = 'Obligatori/tots els participants';
$labels['prevslot'] = 'Lloc anterior';
$labels['nextslot'] = 'Lloc següent';
$labels['suggestedslot'] = 'Lloc suggerit';
$labels['noslotfound'] = 'No s\'ha pogut trobar un espai de temps lliure';
$labels['invitationsubject'] = 'Heu estat convidats a "$title"';
$labels['invitationattendlinks'] = "En cas que el vostre client de correu electrònic no suporti peticions de tipus iTip, podeu fer servir el següent enllaç per acceptar o declinar aquesta invitació:\n\$url";
$labels['eventupdatesubject'] = '"$title" ha estat actualitzat';
$labels['eventupdatesubjectempty'] = 'Un esdeveniment que us afecta ha estat actualitzat';
$labels['eventupdatemailbody'] = "*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees\n\nSi us plau cerqueu el fitxer iCalendar adjunt dins dels detalls actualitzats de l'esdeveniment per poder-lo importar a la vostra aplicació de calendari.";
$labels['eventcancelmailbody'] = "*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees\n\nL'esdeveniment ha estat cancel·lat per \$organizer.\n\nSi us plau cerqueu el fitxer iCalendar adjunt amb els detalls actualitzats de l'esdeveniment.";
$labels['itipobjectnotfound'] = 'L\'esdeveniment que fa referència aquest missatge no s\'ha trobat al vostre calendari.';
$labels['itipmailbodyaccepted'] = "\$sender ha acceptat la invitació al següent esdeveniment:\n\n*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees";
$labels['itipmailbodytentative'] = "\$sender ha acceptat provisionalment la invitació al següent esdeveniment:\n\n*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender ha declinat la invitació al següent esdeveniment:\n\n*\$title*\n\nQuan: \$date\n\nConvidats: \$attendees";
$labels['itipmailbodycancel'] = "\$sender ha rebutjat la vostra participació en el següent esdeveniment:\n\n*\$title*\n\nQuan: \$date";
$labels['itipdeclineevent'] = 'Voleu declinar la vostra invitació a aquest esdeveniment?';
$labels['declinedeleteconfirm'] = 'Voleu també suprimir aquest esdeveniment declinat del vostre calendari?';
$labels['itipcomment'] = 'Comentari de la invitació/notificació';
$labels['itipcommenttitle'] = 'Aquest comentari serà adjuntat al missatge d\'invitació/notificació que s\'envia als participants';
$labels['notanattendee'] = 'No sou a la llista d\'assistents d\'aquest esdeveniment';
$labels['eventcancelled'] = 'L\'esdeveniment s\'ha cancel·lat.';
$labels['saveincalendar'] = 'desa a';
$labels['updatemycopy'] = 'Actualitza en el meu calendari';
$labels['savetocalendar'] = 'Desa al calendari';
$labels['resource'] = 'Recurs';
$labels['addresource'] = 'Recurs de llibre';
$labels['findresources'] = 'Cerca recursos';
$labels['resourcedetails'] = 'Detalls';
$labels['resourceavailability'] = 'Disponibilitat';
$labels['resourceowner'] = 'Propietari';
$labels['resourceadded'] = 'El recurs ha estat afegit al vostre esdeveniment';
$labels['tabsummary'] = 'Resum';
$labels['tabrecurrence'] = 'Periodicitat';
$labels['tabattendees'] = 'Participants';
$labels['tabresources'] = 'Recursos';
$labels['tabattachments'] = 'Fitxers adjunts';
$labels['tabsharing'] = 'Compartit';
$labels['deleteobjectconfirm'] = 'Esteu segur de voler suprimir aquest esdeveniment?';
$labels['deleteventconfirm'] = 'Esteu segur de voler suprimir aquest esdeveniment?';
$labels['deletecalendarconfirm'] = 'Esteu segurs de voler suprimir aquest calendari amb tots els seus esdeveniments?';
$labels['deletecalendarconfirmrecursive'] = 'Esteu segurs de voler suprimir aquest calendari amb tots els seus esdeveniments i sub-calendaris?';
$labels['savingdata'] = 'S\'estan desant les dades...';
$labels['errorsaving'] = 'No s\'han pogut desar els canvis.';
$labels['operationfailed'] = 'L\'operació sol·licitada ha fallat.';
$labels['invalideventdates'] = 'Les dades entrades no són vàlides!. Si us plau verifiqueu l\'entrada.';
$labels['invalidcalendarproperties'] = 'Les propietats del calendari no són vàlides!. Si us plau introduïu un nom vàlid.';
$labels['searchnoresults'] = 'No s\'ha trobat cap esdeveniment en els calendaris seleccionats.';
$labels['successremoval'] = 'L\'esdeveniment ha estat suprimit correctament.';
$labels['successrestore'] = 'L\'esdeveniment ha estat recuperat correctament.';
$labels['errornotifying'] = 'No s\'ha pogut enviar les notificacions als participants de l\'esdeveniment';
$labels['errorimportingevent'] = 'No s\'ha pogut importar aquest esdeveniment';
$labels['importwarningexists'] = 'Ja existeix una còpia d\'aquest esdeveniment al vostre calendari.';
$labels['newerversionexists'] = 'Ja existeix una nova versió d\'aquest esdeveniment!. S\'ha avortat.';
$labels['nowritecalendarfound'] = 'No s\'ha trobat el calendari per desar l\'esdeveniment';
$labels['importedsuccessfully'] = 'L\'esdeveniment ha estat correctament afegit a \'$calendar\'';
$labels['updatedsuccessfully'] = 'L\'esdeveniment ha estat correctament actualitzat dins de \'$calendar\'';
$labels['attendeupdateesuccess'] = 'L\'estat del participant ha estat actualitzat correctament';
$labels['itipsendsuccess'] = 'La invitació ha estat enviada als participants.';
$labels['itipresponseerror'] = 'No s\'ha pogut enviar la resposta a la invitació d\'aquest esdeveniment';
$labels['itipinvalidrequest'] = 'Aquesta invitació ja no és vàlida';
$labels['sentresponseto'] = 'S\'ha enviat correctament la resposta de la invitació a $mailto';
$labels['localchangeswarning'] = 'Esteu a punt de fer canvis que només seran reflectits al vostre calendari i no seran enviats a l\'organitzador de l\'esdeveniment.';
$labels['importsuccess'] = 'S\'han importat correctament $nr esdeveniments';
$labels['importnone'] = 'No s\'ha trobat cap esdeveniment per importar';
$labels['importerror'] = 'Hi ha hagut un error mentre s\'importava';
$labels['aclnorights'] = 'No teniu drets d\'administrador en aquest calendari.';
$labels['changeeventconfirm'] = 'Canvia l\'esdeveniment';
$labels['changerecurringeventwarning'] = 'Aquest és un esdeveniment periòdic. Voleu editar només l\'esdeveniment actual, aquesta i totes les futures ocurrències, totes les ocurrències o desar-lo com un esdeveniment nou?';
$labels['currentevent'] = 'Actual';
$labels['futurevents'] = 'Futurs';
$labels['allevents'] = 'Tots';
$labels['saveasnew'] = 'Desa com a nou';
$labels['birthdays'] = 'Aniversaris';
$labels['birthdayscalendar'] = 'Calendari d\'aniversaris';
$labels['displaybirthdayscalendar'] = 'Mostra el calendari d\'aniversaris';
$labels['birthdayscalendarsources'] = 'D\'aquestes llibretes d\'adreces';
$labels['birthdayeventtitle'] = 'Aniversari de $name';
$labels['birthdayage'] = 'Edat $age';
$labels['objectchangelog'] = 'Canvia historial';
$labels['objectnotfound'] = 'No s\'han pogut carregar les dades d\'aquest esdeveniment';
$labels['objectchangelognotavailable'] = 'No està disponible canviar l\'historial d\'aquest esdeveniment';
$labels['objectdiffnotavailable'] = 'No és possible comparar les revisions seleccionades';
$labels['revisionrestoreconfirm'] = 'Esteu segurs de voler restaurar la revisió $rev d\'aquest esdeveniment? Això substituirà l\'actual esdeveniment per una versió antiga.';
$labels['arialabelminical'] = 'Selecció de la data del calendari';
$labels['arialabelcalendarview'] = 'Vista del calendari';
$labels['arialabelsearchform'] = 'Formulari per cercar esdeveniments';
$labels['arialabelquicksearchbox'] = 'Entrada de cerca d\'esdeveniments';
$labels['arialabelcalsearchform'] = 'Formulari de cerca de calendaris';
$labels['calendaractions'] = 'Accions del calendari';
$labels['arialabeleventattendees'] = 'Llista de participants de l\'esdeveniment';
$labels['arialabeleventresources'] = 'Llista de recursos de l\'esdeveniment';
$labels['arialabelresourcesearchform'] = 'Formulari de cerca de recursos';
$labels['arialabelresourceselection'] = 'Recursos disponibles';
?>

View file

@ -1,18 +1,15 @@
<?php
$labels = array();
// config
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Výchozí pohled';
$labels['time_format'] = 'Formát data';
$labels['timeslots'] = 'Slotů na hodinu';
$labels['timeslots'] = 'Míst v rozvrhu na hodinu';
$labels['first_day'] = 'První den v týdnu';
// preferences
$labels['default_view'] = 'Výchozí pohled';
$labels['time_format'] = 'Formát času';
$labels['timeslots'] = 'Slotů na hodinu';
$labels['first_day'] = 'První den týdne';
$labels['first_hour'] = 'První hodina k zobrazení';
$labels['workinghours'] = 'Pracovní hodiny';
$labels['add_category'] = 'Přidat kategorii';
@ -23,14 +20,23 @@ $labels['coloringmode0'] = 'Podle kalendáře';
$labels['coloringmode1'] = 'Podle kategorie';
$labels['coloringmode2'] = 'Kalendář pro orámování, kategorie pro obsah';
$labels['coloringmode3'] = 'Kategorie pro orámování, kalendář pro obsah';
// calendar
$labels['afternothing'] = 'Nedělat nic';
$labels['aftertrash'] = 'Přesunout do koše';
$labels['afterdelete'] = 'Smazat zprávu';
$labels['afterflagdeleted'] = 'Označit jako smazané';
$labels['aftermoveto'] = 'Přesunout do...';
$labels['itipoptions'] = 'Pozvání na událost';
$labels['afteraction'] = 'Poté co jsou pozvání nebo aktualizace zprávy zpracovány';
$labels['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';
@ -42,7 +48,7 @@ $labels['new_event'] = 'Nová událost';
$labels['edit_event'] = 'Upravit událost';
$labels['edit'] = 'Upravit';
$labels['save'] = 'Uložit';
$labels['remove'] = 'Odstranit';
$labels['removelist'] = 'Odstranit ze seznamu';
$labels['cancel'] = 'Storno';
$labels['select'] = 'Vybrat';
$labels['print'] = 'Tisk';
@ -50,40 +56,76 @@ $labels['printtitle'] = 'Vytisknout kalendáře';
$labels['title'] = 'Souhrn';
$labels['description'] = 'Popis';
$labels['all-day'] = 'celý den';
$labels['export'] = 'Exportovat do ICS';
$labels['exporttitle'] = 'Exportovat souhrn do ICS';
$labels['export'] = 'Uložit jako ICS';
$labels['exporttitle'] = 'Uložit jako iCalendar';
$labels['exportrange'] = 'Události od';
$labels['exportattachments'] = 'S přílohami';
$labels['customdate'] = 'Vlastní datum';
$labels['location'] = 'Místo';
$labels['url'] = 'URL';
$labels['date'] = 'Datum';
$labels['start'] = 'Začátek';
$labels['starttime'] = 'Začáteční čas';
$labels['end'] = 'Konec';
$labels['endtime'] = 'Čas konce';
$labels['repeat'] = 'Opakování';
$labels['selectdate'] = 'Vyberte datum';
$labels['freebusy'] = 'Zobrazovat časový úsek jako';
$labels['freebusy'] = 'Zobrazovat jako';
$labels['free'] = 'volno';
$labels['busy'] = 'obsazeno';
$labels['outofoffice'] = 'mimo kancelář';
$labels['tentative'] = 'nezávazně';
$labels['priority'] = 'Priorita';
$labels['mystatus'] = 'Můj stav';
$labels['status'] = 'Stav';
$labels['status-confirmed'] = 'Potvrzeno';
$labels['status-cancelled'] = 'Zrušeno';
$labels['status-tentative'] = 'Nezávazně';
$labels['priority'] = 'Přednost';
$labels['sensitivity'] = 'Soukromí';
$labels['public'] = 'veřejné';
$labels['private'] = 'soukromé';
$labels['confidential'] = 'důvěrné';
$labels['links'] = 'Odkaz';
$labels['alarms'] = 'Připomenutí';
$labels['generated'] = 'vygenerováno';
$labels['comment'] = 'Poznámka';
$labels['created'] = 'Vytvořeno';
$labels['changed'] = 'Naposledy změněno';
$labels['unknown'] = 'Neznámý';
$labels['eventoptions'] = 'Volby';
$labels['generated'] = 'vytvořeno';
$labels['eventhistory'] = 'Historie';
$labels['removelink'] = 'Odstranit odkaz na e-mail';
$labels['printdescriptions'] = 'Vytisknout popisy';
$labels['parentcalendar'] = 'Vložit dovnitř';
$labels['searchearlierdates'] = '« Hledat dřívější události';
$labels['searchlaterdates'] = 'Hledat pozdější události »';
$labels['earlierevents'] = 'Dříve';
$labels['laterevents'] = 'Později';
$labels['andnmore'] = 'dalších $nr...';
$labels['togglerole'] = 'Klikněte k přepnutí role';
$labels['togglerole'] = 'Klepněte k přepnutí role';
$labels['createfrommail'] = 'Uložit jako událost';
$labels['importevents'] = 'Importovat události';
$labels['importevents'] = 'Zavést události';
$labels['importrange'] = 'Události od';
$labels['onemonthback'] = '1 měsíc nazpátek';
$labels['nmonthsback'] = '$nr měsíců nazpátek';
$labels['showurl'] = 'Ukázat URL kalendáře';
$labels['showurl'] = 'Ukázat adresu (URL) kalendáře';
$labels['showurldescription'] = 'Tuto adresu použijte pro přístup (jen ke čtení) ke kalendáři z jiných aplikací. Můžete ji zkopírovat a vložit do jakéhokoli kalendářového softwaru, který podporuje formát iCal.';
// agenda view
$labels['caldavurldescription'] = 'Zkopírujte tuto adresu do aplikace <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> klienta (např. Evolution nebo Mozilla Thunderbird) pro úplné synchronizování tohoto adresáře s vaším počítačem nebo mobilním zařízením.';
$labels['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';
$labels['nrcalendarsfound'] = '$nr kalendářů nalezeno';
$labels['quickview'] = 'Zobrazit jen tento kalendář';
$labels['invitationspending'] = 'Pozvání čekající na vyřízení';
$labels['invitationsdeclined'] = 'Odmítnutá pozvání';
$labels['changepartstat'] = 'Změnit stav příjemce';
$labels['rsvpcomment'] = 'Text pozvánky';
$labels['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';
@ -92,18 +134,15 @@ $labels['today'] = 'Dnes';
$labels['tomorrow'] = 'Zítra';
$labels['thisweek'] = 'Tento týden';
$labels['nextweek'] = 'Příští týden';
$labels['prevweek'] = 'Předchozí týden';
$labels['thismonth'] = 'Tento měsíc';
$labels['nextmonth'] = 'Příští měsíc';
$labels['weekofyear'] = 'Týden';
$labels['pastevents'] = 'Minulost';
$labels['futureevents'] = 'Budoucnost';
// alarm/reminder settings
$labels['showalarms'] = 'Zobrazit upozornění';
$labels['showalarms'] = 'Ukázat připomenutí';
$labels['defaultalarmtype'] = 'Výchozí nastavení připomenutí';
$labels['defaultalarmoffset'] = 'Výchozí čas připomenutí';
// attendees
$labels['attendee'] = 'Účastník';
$labels['role'] = 'Role';
$labels['availability'] = 'Dost.';
@ -112,67 +151,73 @@ $labels['addattendee'] = 'Přidat účastníka';
$labels['roleorganizer'] = 'Organizátor';
$labels['rolerequired'] = 'Povinný';
$labels['roleoptional'] = 'Nepovinný';
$labels['roleresource'] = 'Prostředek';
$labels['availfree'] = 'volno';
$labels['availbusy'] = 'obsazeno';
$labels['availunknown'] = 'neznámý';
$labels['availtentative'] = 'nezávazně';
$labels['availoutofoffice'] = 'mimo kancelář';
$labels['rolechair'] = 'Předsednictví';
$labels['rolenonparticipant'] = 'Nepřítomný';
$labels['cutypeindividual'] = 'Jednotlivec';
$labels['cutypegroup'] = 'Skupina';
$labels['cutyperesource'] = 'Zdroj';
$labels['cutyperoom'] = 'Místnost';
$labels['availfree'] = 'Volno';
$labels['availbusy'] = 'Obsazeno';
$labels['availunknown'] = 'Neznámý';
$labels['availtentative'] = 'Nezávazně';
$labels['availoutofoffice'] = 'Mimo kancelář';
$labels['scheduletime'] = 'Najít dostupnost';
$labels['sendinvitations'] = 'Poslat pozvánky';
$labels['sendnotifications'] = 'Uvědomit účastníky o změnách';
$labels['sendcancellation'] = 'Uvědomit účastníky o zrušení události';
$labels['onlyworkinghours'] = 'Najít dostupnost v mé pracovní době';
$labels['reqallattendees'] = 'Povinní/všichni účastníci';
$labels['prevslot'] = 'Předchozí slot';
$labels['nextslot'] = 'Další slot';
$labels['noslotfound'] = 'Nelze najít volný slot';
$labels['prevslot'] = 'Předchozí místo v rozvrhu';
$labels['nextslot'] = 'Další místo v rozvrhu';
$labels['suggestedslot'] = 'Navržené místo v rozvrhu';
$labels['noslotfound'] = 'Nelze najít volné místo v rozvrhu';
$labels['invitationsubject'] = 'Byl(a) jste pozván(a) na událost "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees\n\nPodrobnosti o události najdete v přiloženém souboru typu iCalendar. Můžete si ho naimportovat do kalendářového programu.";
$labels['invitationattendlinks'] = "Pokud váš poštovní klient nepodporuje pozvánky iTip, použijte prosím následující odkaz k potvrzení nebo odmítnutí pozvání:\n\$url";
$labels['eventupdatesubject'] = 'Událost "$title" byla aktualizována';
$labels['eventupdatesubjectempty'] = 'Událost, která se vás týká, byla aktualizována';
$labels['eventupdatemailbody'] = "*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees\n\nPodrobnosti o aktualizované události najdete v přiloženém souboru typu iCalendar. Můžete si ho naimportovat do kalendářového programu.";
$labels['eventupdatemailbody'] = "*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees\n\nPodrobnosti o aktualizované události najdete v přiloženém souboru typu iCalendar. Můžete si ho zavést do kalendářového programu.";
$labels['eventcancelsubject'] = 'Událost "$title" byla zrušena';
$labels['eventcancelmailbody'] = "*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees\n\nUdálost byla zrušena organizátorem (\$organizer).\n\nPodrobnosti najdete v přiloženém souboru ve formátu iCalendar.";
// invitation handling
$labels['itipinvitation'] = 'Pozvání na událost';
$labels['itipupdate'] = 'Aktualizace události';
$labels['itipcancellation'] = 'Zrušeno:';
$labels['itipreply'] = 'Odpověď na';
$labels['itipaccepted'] = 'Potvrdit';
$labels['itiptentative'] = 'Možná';
$labels['itipdeclined'] = 'Odmítnout';
$labels['itipsubjectaccepted'] = '$name potvrdil(a) účas na události "$title"';
$labels['itipsubjecttentative'] = '$name nezávazně potvrdil(a) účast na události "$title"';
$labels['itipsubjectdeclined'] = '$name odmítl(a) účast na události "$title"';
$labels['itipobjectnotfound'] = 'Událost, na který tato zpráva odkazuje, nebyl nalezen ve vašem kalendáři.';
$labels['itipmailbodyaccepted'] = "\$sender přijal(a) pozvání na tuto událost:\n\n*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees";
$labels['itipmailbodytentative'] = "\$sender nezávazně přijal(a) pozvání na tuto událost:\n\n*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender odmítl(a) pozvání na tuto událost:\n\n*\$title*\n\nKdy: \$date\n\nPozváni: \$attendees";
$labels['itipmailbodycancel'] = "\$sender odmítl vaši účast na následující události:\n\n*\$title*\n\nTermín: \$date";
$labels['itipmailbodydelegated'] = "\$sender delegoval účast na následující události:\n\n*\$title*\n\nTermín: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender delegoval účast na následující události na vás:\n\n*\$title*\n\nTermín: \$date";
$labels['itipdeclineevent'] = 'Opravdu chcete odmítnout pozvání na tuto událost?';
$labels['importtocalendar'] = 'Uložit do kalendáře';
$labels['removefromcalendar'] = 'Odstranit z kalendáře';
$labels['updateattendeestatus'] = 'Aktualizovat stav účastníka';
$labels['acceptinvitation'] = 'Chcete přijmout toto pozvání (potvrdit účast)?';
$labels['youhaveaccepted'] = 'Přijal(a) jste toto pozvání';
$labels['youhavetentative'] = 'Nezávazně jste přijal(a) toto pozvání';
$labels['youhavedeclined'] = 'Odmítl(a) jste toto pozvání';
$labels['declinedeleteconfirm'] = 'Chcete také ze svého kalendáře smazat tuto odmítnutou událost?';
$labels['itipcomment'] = 'Poznámka k pozvání/oznámení';
$labels['itipcommenttitle'] = 'Tato poznámka bude připojena ke zprávě s pozváním/oznámením poslané účastníkům';
$labels['notanattendee'] = 'Nejste na seznamu účastníků této události';
$labels['eventcancelled'] = 'Tato událost byla zrušena';
$labels['saveincalendar'] = 'uložit do';
// event dialog tabs
$labels['updatemycopy'] = 'Aktualizovat v mém kalendáři';
$labels['savetocalendar'] = 'Uložit do kalenáře';
$labels['openpreview'] = 'Ověřit kalendář';
$labels['noearlierevents'] = 'Žádné dřívější události';
$labels['nolaterevents'] = 'Žádné pozdější události';
$labels['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';
$labels['tabrecurrence'] = 'Opakování';
$labels['tabattendees'] = 'Účastníci';
$labels['tabresources'] = 'Zdroje';
$labels['tabattachments'] = 'Přílohy';
$labels['tabsharing'] = 'Sdílení';
// messages
$labels['deleteobjectconfirm'] = 'Opravdu chcete smazat tuto událost?';
$labels['deleteventconfirm'] = 'Opravdu chcete smazat tuto událost?';
$labels['deletecalendarconfirm'] = 'Opravdu chcete smazat tento kalendář se všemi událostmi?';
$labels['savingdata'] = 'Ukládám data...';
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
$labels['savingdata'] = 'Ukládají se data...';
$labels['errorsaving'] = 'Nelze uložit změny.';
$labels['operationfailed'] = 'Požavovaná operace selhala.';
$labels['invalideventdates'] = 'Vložená data nejsou platná! Zkontrolujte prosím zadávané údaje.';
@ -181,55 +226,57 @@ $labels['searchnoresults'] = 'Ve vybraných kalendářích nebyly nalezeny žád
$labels['successremoval'] = 'Událost byla úspěšně smazána.';
$labels['successrestore'] = 'Událost byla úspěšně obnovena.';
$labels['errornotifying'] = 'Nelze odeslat notifikace účastníkům události';
$labels['errorimportingevent'] = 'Nelze naimportovat událost';
$labels['errorimportingevent'] = 'Událost se nepodařilo zavést';
$labels['importwarningexists'] = 'Kopie této události již ve vašem kalendáři existuje.';
$labels['newerversionexists'] = 'Existuje již novější verze této události! Operace byla zrušena.';
$labels['nowritecalendarfound'] = 'Nebyl nalezen žádný kalendář, do kterého by šlo uložit tuto událost.';
$labels['importedsuccessfully'] = 'Událost byla úspěšně přidána do kalendáře \'$calendar\'';
$labels['updatedsuccessfully'] = 'Událost byla úspěšně aktualizována v \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Stav účastníka byl úspěšně aktualizován';
$labels['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á';
$labels['sentresponseto'] = 'Odpověď na pozvánku byla úspěšně odeslána na adresu $mailto';
$labels['localchangeswarning'] = 'Chystáte se provést změny, které se projeví jen ve vašem vlastním kalendáři a nelze je poslat organizátorovi události.';
$labels['importsuccess'] = 'Úspěšně importováno $nr událostí';
$labels['importnone'] = 'Nebyly nalezeny žádné události k importu';
$labels['importerror'] = 'Při importu došlo k chybě';
$labels['localchangeswarning'] = 'Chystáte se provést změny, které se projeví jen ve vašem vlastním kalendáři a nebudou poslány organizátorovi události.';
$labels['importsuccess'] = 'Úspěšně zavedeno $nr událostí';
$labels['importnone'] = 'Nebyly nalezeny žádné události k zavedení';
$labels['importerror'] = 'Při zavádění došlo k chybě';
$labels['aclnorights'] = 'Nemáte administrátorská práva k tomuto kalendáři.';
// recurrence form
$labels['repeat'] = 'Opakování';
$labels['frequency'] = 'Opakovat';
$labels['never'] = 'nikdy';
$labels['daily'] = 'denně';
$labels['weekly'] = 'týdně';
$labels['monthly'] = 'měsíčně';
$labels['yearly'] = 'ročně';
$labels['every'] = 'Každý';
$labels['days'] = 'den (dny)';
$labels['weeks'] = 'týden (týdny)';
$labels['months'] = 'měsíc(e/ů)';
$labels['years'] = 'rok(y/ů) v:';
$labels['bydays'] = ' ';
$labels['untildate'] = 'do';
$labels['each'] = 'Každý';
$labels['onevery'] = 'Vždy v';
$labels['onsamedate'] = 'Ve stejné datum';
$labels['forever'] = 'trvale';
$labels['recurrencend'] = 'do';
$labels['forntimes'] = 'jen $nrkrát';
$labels['first'] = 'první';
$labels['second'] = 'druhý';
$labels['third'] = 'třetí';
$labels['fourth'] = 'čtvrtý';
$labels['last'] = 'poslední';
$labels['dayofmonth'] = 'Den v měsíci';
$labels['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'] = 'Odstranit událost';
$labels['removeeventconfirm'] = 'Smazat událost';
$labels['changerecurringeventwarning'] = 'Toto je opakovaná událost. Chcete upravit jen toto konání, toto a všechna následující konání, úplně všechna konání nebo uložit událost jako novou?';
$labels['removerecurringeventwarning'] = 'Toto je opakovaná událost. Chcete odstranit jen toto konání, toto a následující konání nebo úplně všechna konání této události?';
$labels['currentevent'] = 'Aktuální';
$labels['removerecurringeventwarning'] = 'Toto je opakovaná událost. Chcete smazat jen toto konání, toto a všechna následující konání, nebo úplně všechna konání?';
$labels['removerecurringallonly'] = 'Toto je opakovaná událost. Jako účastník můžete smazat pouze celou událost se všemi konáními.';
$labels['currentevent'] = 'Nynější';
$labels['futurevents'] = 'Budoucí';
$labels['allevents'] = 'Všechny';
$labels['allevents'] = 'Vše';
$labels['saveasnew'] = 'Uložit jako novou';
$labels['birthdays'] = 'Narozeniny';
$labels['birthdayscalendar'] = 'Kalendář narozenin';
$labels['displaybirthdayscalendar'] = 'Zobrazit kalendář narozenin';
$labels['birthdayscalendarsources'] = 'Z těchto adresářů';
$labels['birthdayeventtitle'] = 'Narozeniny $name';
$labels['birthdayage'] = 'Věk $age';
$labels['objectchangelog'] = 'Historie změn';
$labels['objectdiff'] = 'Změny od $rev1 do $rev2';
$labels['objectnotfound'] = 'Nepodařilo se nahrát data události';
$labels['objectchangelognotavailable'] = 'Historie změn není pro tuto událost dostupná';
$labels['objectdiffnotavailable'] = 'Pro vybrané verze není žádné srovnání možné';
$labels['revisionrestoreconfirm'] = 'Opravdu chcete obnovit změnu $rev této události? Tímto dojde k nahrazení nynější události starou verzí.';
$labels['objectrestoresuccess'] = 'Pozměnění $rev úspěšně obnoveno';
$labels['objectrestoreerror'] = 'Nepodařilo se obnovit staré pozměnění';
$labels['arialabelminical'] = 'Výběr data v kalendáři';
$labels['arialabelcalendarview'] = 'Pohled na kalendář';
$labels['arialabelsearchform'] = 'Hledání události';
$labels['arialabelquicksearchbox'] = 'Zadání hledání události';
$labels['arialabelcalsearchform'] = 'Hledání kalendářů';
$labels['calendaractions'] = 'Činnosti v kalendáři';
$labels['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';
?>

267
localization/da_DK.inc Normal file
View file

@ -0,0 +1,267 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Standardvisning';
$labels['time_format'] = 'Tidsformat';
$labels['timeslots'] = 'Tidsblokke per time';
$labels['first_day'] = 'Første ugedag';
$labels['first_hour'] = 'Første time som vises';
$labels['workinghours'] = 'Arbejdstider';
$labels['add_category'] = 'Tilføj kategori';
$labels['remove_category'] = 'Fjern kategori';
$labels['defaultcalendar'] = 'Opret nye arragementer i';
$labels['eventcoloring'] = 'Farver for arrangementer';
$labels['coloringmode0'] = 'Ifølge kalender';
$labels['coloringmode1'] = 'Ifølge kategori';
$labels['coloringmode2'] = 'Kalender til oversigt, kategori til indhold';
$labels['coloringmode3'] = 'Kategori til oversigt, kalender til indhold';
$labels['afternothing'] = 'Undlad at gøre noget';
$labels['aftertrash'] = 'Flyt til papirkurv';
$labels['afterdelete'] = 'Slet beskeden';
$labels['afterflagdeleted'] = 'Markér som slettet';
$labels['aftermoveto'] = 'Flyt til ...';
$labels['itipoptions'] = 'Begivenhedsinvitationer';
$labels['afteraction'] = 'Efter en invitation eller opdateringsbesked er behandlet';
$labels['weeknonone'] = 'aldrig';
$labels['calendar'] = 'Kalender';
$labels['calendars'] = 'Kalendere';
$labels['category'] = 'Kategori';
$labels['categories'] = 'Kategorier';
$labels['createcalendar'] = 'Opret ny kalender';
$labels['name'] = 'Navn';
$labels['color'] = 'Farve';
$labels['day'] = 'Dag';
$labels['week'] = 'Uge';
$labels['month'] = 'Måned';
$labels['agenda'] = 'Dagsorden';
$labels['new'] = 'Ny';
$labels['new_event'] = 'Nyt arrangement';
$labels['edit_event'] = 'Redigér arrangement';
$labels['edit'] = 'Redigér';
$labels['save'] = 'Gem';
$labels['removelist'] = 'Fjern fra liste';
$labels['cancel'] = 'Annullér';
$labels['select'] = 'Vælg';
$labels['print'] = 'Udskriv';
$labels['printtitle'] = 'Udskriv kalendere';
$labels['title'] = 'Resumé';
$labels['description'] = 'Beskrivelse';
$labels['all-day'] = 'hele-dagen';
$labels['export'] = 'Eksport';
$labels['exporttitle'] = 'Eksportér til iCalendar';
$labels['exportrange'] = 'Arrangementer fra';
$labels['exportattachments'] = 'Med vedhæftninger';
$labels['customdate'] = 'Brugerdefineret dato';
$labels['location'] = 'Placering';
$labels['url'] = 'URL';
$labels['date'] = 'Dato';
$labels['start'] = 'Start';
$labels['starttime'] = 'Starttidspunkt';
$labels['end'] = 'Slut';
$labels['endtime'] = 'Sluttidspunkt';
$labels['repeat'] = 'Gentag';
$labels['selectdate'] = 'Vælg dato';
$labels['freebusy'] = 'Vis mig som';
$labels['free'] = 'Ledig';
$labels['busy'] = 'Optaget';
$labels['outofoffice'] = 'Ikke på kontoret';
$labels['tentative'] = 'Forsøgsvis';
$labels['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';
$labels['private'] = 'privat';
$labels['confidential'] = 'fortrolig';
$labels['links'] = 'Reference';
$labels['alarms'] = 'Påmindelse';
$labels['comment'] = 'Kommentar';
$labels['created'] = 'Oprettet';
$labels['changed'] = 'Sidst ændret';
$labels['unknown'] = 'Ukendt';
$labels['eventoptions'] = 'Tilvalg';
$labels['generated'] = 'oprettet per';
$labels['eventhistory'] = 'Historik';
$labels['removelink'] = 'Fjern 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';
$labels['importevents'] = 'Importér arrangement';
$labels['importrange'] = 'Arrangementer fra';
$labels['onemonthback'] = '1 måned tilbage';
$labels['nmonthsback'] = '$nr måneder tilbage';
$labels['showurl'] = 'Vis kalenderens URL';
$labels['showurldescription'] = 'Brug følgende adresse for at tilgå din kalender (skrivebeskyttet) fra andre programmer. Du kan kopiere og indsætet denne i ethvert kalenderprogram, der understøtter iCal-formatet.';
$labels['caldavurldescription'] = 'Kopiér denne adresse til en <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-klientprogram (eks. Evolution eller Mozilla Thunderbird) for at synkronisere denne kalender komplet med din computer eller mobilenhed.';
$labels['findcalendars'] = 'Find kalendere ...';
$labels['searchterms'] = 'Søgetermer';
$labels['calsearchresults'] = 'Tilgængelige kalendere';
$labels['calendarsubscribe'] = 'List permanent';
$labels['nocalendarsfound'] = 'Der blev ikke fundet nogen kalender';
$labels['nrcalendarsfound'] = '$nr kalendere blev fundet';
$labels['quickview'] = 'Vis kun denne kalender';
$labels['invitationspending'] = 'Afventende invitationer';
$labels['invitationsdeclined'] = 'Afviste invitationer';
$labels['changepartstat'] = 'Skift deltagerstatus';
$labels['rsvpcomment'] = 'Invitationstekst';
$labels['listrange'] = 'Interval som skal vises:';
$labels['listsections'] = 'Del op i:';
$labels['smartsections'] = 'Smarte sektioner';
$labels['until'] = 'indtil';
$labels['today'] = 'I dag';
$labels['tomorrow'] = 'I morgen';
$labels['thisweek'] = 'Denne uge';
$labels['nextweek'] = 'Næste uge';
$labels['prevweek'] = 'Forrige uge';
$labels['thismonth'] = 'Denne måned';
$labels['nextmonth'] = 'Næste måned';
$labels['weekofyear'] = 'Uge';
$labels['pastevents'] = 'Tidligere';
$labels['futureevents'] = 'Fremtid';
$labels['showalarms'] = 'Vis påmindelser';
$labels['defaultalarmtype'] = 'Standardindstilling for påmindelse';
$labels['defaultalarmoffset'] = 'Standardtidspunkt for påmindelse';
$labels['attendee'] = 'Deltager';
$labels['role'] = 'Rolle';
$labels['availability'] = 'Tilg.';
$labels['confirmstate'] = 'Status';
$labels['addattendee'] = 'Tilføj deltager';
$labels['roleorganizer'] = 'Organisator';
$labels['rolerequired'] = 'Påkrævet';
$labels['roleoptional'] = 'Valgfri';
$labels['rolechair'] = 'Formand';
$labels['rolenonparticipant'] = 'Fraværende';
$labels['cutypeindividual'] = 'Individuel';
$labels['cutypegroup'] = 'Gruppe';
$labels['cutyperesource'] = 'Ressource';
$labels['cutyperoom'] = 'Lokale';
$labels['availfree'] = 'Ledig';
$labels['availbusy'] = 'Optaget';
$labels['availunknown'] = 'Ukendt';
$labels['availtentative'] = 'Forsøgsvis';
$labels['availoutofoffice'] = 'Ikke på kontoret';
$labels['scheduletime'] = 'Find ledigt tidspunkt';
$labels['sendinvitations'] = 'Send invitationer';
$labels['sendnotifications'] = 'Gør deltagere opmærksom på ændringer';
$labels['sendcancellation'] = 'Giv deltagere besked om aflysning af arrangementer';
$labels['onlyworkinghours'] = 'Find ledigt tidspunkt inden for mine arbejdstider';
$labels['reqallattendees'] = 'Påkrævet/alle deltagere';
$labels['prevslot'] = 'Forrige blok';
$labels['nextslot'] = 'Næste blok';
$labels['suggestedslot'] = 'Foreslået blok';
$labels['noslotfound'] = 'Kunne ikke finde en ledig tidsblok';
$labels['invitationsubject'] = 'Du er blevet inviteret til "$title"';
$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";
$labels['itipmailbodytentative'] = "\$sender har forsøgsvist accepteret invitationen til det følgende arrangement:\n\n*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender har afvist invitationen til det følgende arrangement:\n\n*\$title*\n\nTidspunkt: \$date\n\nInviterede: \$attendees";
$labels['itipmailbodycancel'] = "\$sender har afvist din deltagelse i følgende begivenhed:\n\n*\$title*\n\nTidspunkt: \$date";
$labels['itipmailbodydelegated'] = "\$sender har delegeret deltagelsen i følgende begivenhed:\n\n*\$title*\n\nTidspunkt: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender har delegeret deltagelsen i følgende begivenhed til dig:\n\n*\$title*\n\nTidspunkt: \$date";
$labels['itipdeclineevent'] = 'Sikker på at du vil afvise dette arrangement?';
$labels['declinedeleteconfirm'] = 'Vil du også slette dette afviste arrangement fra din kalender?';
$labels['itipcomment'] = 'Invitation/notification comment';
$labels['itipcommenttitle'] = 'Denne kommentar vil blive føjet til den besked med invitation/notifikation, der sendes til deltagerne';
$labels['notanattendee'] = 'Du er ikke opført som deltager for dette arrangement';
$labels['eventcancelled'] = 'Arrangementet er blevet aflyst';
$labels['saveincalendar'] = 'gem i';
$labels['updatemycopy'] = 'Opdatér i min kalender';
$labels['savetocalendar'] = 'Gem til kalender';
$labels['openpreview'] = 'Tjek kalender';
$labels['noearlierevents'] = 'Ingen tidligere begivenheder';
$labels['nolaterevents'] = 'Ingen senere begivenheder';
$labels['resource'] = 'Ressource';
$labels['addresource'] = 'Booking af ressource';
$labels['findresources'] = 'Find ressourcer';
$labels['resourcedetails'] = 'Detaljer';
$labels['resourceavailability'] = 'Tilgængelighed';
$labels['resourceowner'] = 'Ejer';
$labels['resourceadded'] = 'Ressourcen til føjet til din begivenhed';
$labels['tabsummary'] = 'Resumé';
$labels['tabrecurrence'] = 'Gentagelse';
$labels['tabattendees'] = 'Deltagere';
$labels['tabresources'] = 'Ressourcer';
$labels['tabattachments'] = 'Vedhæftninger';
$labels['tabsharing'] = 'Deling';
$labels['deleteobjectconfirm'] = 'Sikker på at du vil slette dette arrangement?';
$labels['deleteventconfirm'] = 'Sikker på at du vil slette dette arrangement?';
$labels['deletecalendarconfirm'] = 'Sikker på at du vil slette denne kalender med alle dets arrangementer?';
$labels['deletecalendarconfirmrecursive'] = 'Sikker på du vil slette denne kalender med alle dens arrangementer og delkalendere?';
$labels['savingdata'] = 'Gemmer data...';
$labels['errorsaving'] = 'Kunne ikke gemme ændringer.';
$labels['operationfailed'] = 'Den forespurgte handling mislykkedes.';
$labels['invalideventdates'] = 'Ugyldig dato indtastet! Tjek venligst dit input.';
$labels['invalidcalendarproperties'] = 'Ugyldige kalenderegenskaber! Angiv venligst et gyldigt navn.';
$labels['searchnoresults'] = 'Der blev ikke fundet arrangementer i de valgte kalendere.';
$labels['successremoval'] = 'Sletning af arrangementet blev gennemført.';
$labels['successrestore'] = 'Gendannelse af arrangementet blev gennemført.';
$labels['errornotifying'] = 'Kunne ikke sende notifikation til arrangementets deltagere';
$labels['errorimportingevent'] = 'Kunne ikke importere arrangementet';
$labels['importwarningexists'] = 'En kopi af denne begivenhed findes allerede i din kalender.';
$labels['newerversionexists'] = 'Der findes allerede en nyere version af arrangementet! Afbrød.';
$labels['nowritecalendarfound'] = 'Ingen funden kalender til lagring af arrangementet';
$labels['importedsuccessfully'] = 'Arrangementet blev tilføjet til \'$calendar\'';
$labels['updatedsuccessfully'] = 'Opdatering af begivenheden blev gennemført i "$calendar"';
$labels['attendeupdateesuccess'] = 'Opdatering af deltagernes status blev gennemført';
$labels['itipsendsuccess'] = 'Invitation blev sendt til deltagerne.';
$labels['itipresponseerror'] = 'Kunne ikke sende svar til denne arrangementsinvitation';
$labels['itipinvalidrequest'] = 'Denne invitation er ikke længere gyldig';
$labels['sentresponseto'] = 'Gennemførte afsendelse af invitationssvar til $mailto';
$labels['localchangeswarning'] = 'Du er i færd med at foretage ændringer, der vil påvirke din kalender og som ikke vil blive sendt til afholderen af arrangementet.';
$labels['importsuccess'] = 'Gennemførte import af $nr arrangementer';
$labels['importnone'] = 'Fandt ingen arrangementer som kunne importeres';
$labels['importerror'] = 'Der opstod en fejl under import';
$labels['aclnorights'] = 'Du har ikke administratorrettigheder for denne kalender.';
$labels['changeeventconfirm'] = 'Tilpas arrangement';
$labels['removeeventconfirm'] = 'Slet begivenhed';
$labels['changerecurringeventwarning'] = 'Dette er et tilbagevendende arrangement. Ønsker du kun at redige det aktuelle arrangement, dette og alle fremtidige forekomster, alle forekomster eller gemme det som et nyt arrangement?';
$labels['removerecurringeventwarning'] = 'Dette er en tilbagevendende begivenhed. Ønsker du kun at fjerne den aktuelle begivenhed, denne og alle fremtidige forekomster for denne begivenhed?';
$labels['removerecurringallonly'] = 'Dette er en tilbagevendende begivenhed. Som deltager kan du slette kun slette hele begivenheden med alle dens forekomster.';
$labels['currentevent'] = 'Nuværende';
$labels['futurevents'] = 'Fremtid';
$labels['allevents'] = 'Alle';
$labels['saveasnew'] = 'Gem som ny';
$labels['birthdays'] = 'Fødselsdage';
$labels['birthdayscalendar'] = 'Fødselsdagskalender';
$labels['displaybirthdayscalendar'] = 'Vis fødselsdagskalender';
$labels['birthdayscalendarsources'] = 'Fra disse adressebøger';
$labels['birthdayeventtitle'] = '$name har fødselsdag';
$labels['birthdayage'] = '$age år';
$labels['objectchangelog'] = 'Ændringshistorik';
$labels['objectdiff'] = 'Ændringer fra $rev1 til $rev2';
$labels['objectnotfound'] = 'Kunne ikke indlæse begivenhedsdata';
$labels['objectchangelognotavailable'] = 'Ændringshistorikken er ikke tilgængelig for denne begivenhed';
$labels['objectdiffnotavailable'] = 'Det er ikke muligt at sammenligne de valgte revisioner';
$labels['revisionrestoreconfirm'] = 'Sikker på at du vil genskabe revision $rev af denne begivenhed? Dette vil erstatte den nuværende begivenhed med den tidligere version.';
$labels['objectrestoresuccess'] = 'Revision $rev blev genskabt';
$labels['objectrestoreerror'] = 'Mislykkedes med at genskabe den gamle revision';
$labels['arialabelminical'] = 'Valg af kalenderdato';
$labels['arialabelcalendarview'] = 'Kalendervisning';
$labels['arialabelsearchform'] = 'Søgeformular for begivenheder';
$labels['arialabelquicksearchbox'] = 'Søgeinput for begivenhed';
$labels['arialabelcalsearchform'] = 'Søgeformular for kalendere';
$labels['calendaractions'] = 'Kalenderhandlinger';
$labels['arialabeleventattendees'] = 'Deltagerliste for begivenhed';
$labels['arialabeleventresources'] = 'Ressourceliste for begivenhed';
$labels['arialabelresourcesearchform'] = 'Søgeformular for ressourcer';
$labels['arialabelresourceselection'] = 'Tilgængelige ressourcer';
?>

273
localization/de.inc Normal file
View file

@ -0,0 +1,273 @@
<?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';
?>

View file

@ -1,30 +1,43 @@
<?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 = array();
// preferences
$labels['default_view'] = 'Ansicht';
$labels['default_view'] = 'Standardansicht';
$labels['time_format'] = 'Zeitformatierung';
$labels['timeslots'] = 'Zeitraster pro Stunde';
$labels['timeslots'] = 'Abschnitte pro Stunde';
$labels['first_day'] = 'Erster Wochentag';
$labels['first_hour'] = 'Erste angezeigte Stunde';
$labels['workinghours'] = 'Arbeitszeiten';
$labels['add_category'] = 'Katgorie hinzufügen';
$labels['remove_category'] = 'Katgorie entfernen';
$labels['add_category'] = 'Kategorie hinzufügen';
$labels['remove_category'] = 'Kategorie entfernen';
$labels['defaultcalendar'] = 'Neue Termine erstellen in';
$labels['eventcoloring'] = 'Färbung der Termine';
$labels['coloringmode0'] = 'Farbe des Kalenders';
$labels['coloringmode1'] = 'Farbe der Kategorie';
$labels['coloringmode2'] = 'Kalenderfarbe aussen, Kategoriefarbe innen';
$labels['coloringmode3'] = 'Kategoriefarbe aussen, Kalenderfarbe innen';
// calendar
$labels['afternothing'] = 'nichts unternehmen';
$labels['aftertrash'] = 'In den Papierkorb verschieben';
$labels['afterdelete'] = 'Nachricht löschen';
$labels['afterflagdeleted'] = 'Als gelöscht markieren';
$labels['aftermoveto'] = 'Verschiebe nach...';
$labels['itipoptions'] = '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';
@ -36,7 +49,7 @@ $labels['new_event'] = 'Neuer Termin';
$labels['edit_event'] = 'Termin bearbeiten';
$labels['edit'] = 'Bearbeiten';
$labels['save'] = 'Speichern';
$labels['remove'] = 'Entfernen';
$labels['removelist'] = 'Aus der Liste entfernen';
$labels['cancel'] = 'Abbrechen';
$labels['select'] = 'Auswählen';
$labels['print'] = 'Drucken';
@ -48,28 +61,46 @@ $labels['export'] = 'Exportieren';
$labels['exporttitle'] = 'Kalender als iCalendar exportieren';
$labels['exportrange'] = 'Termine ab';
$labels['exportattachments'] = 'Mit Anhängen';
$labels['customdate'] = 'Eigenes Datum';
$labels['customdate'] = 'Spezifisches Datum';
$labels['location'] = 'Ort';
$labels['url'] = 'URL';
$labels['date'] = 'Datum';
$labels['start'] = 'Beginn';
$labels['starttime'] = 'Startzeit';
$labels['end'] = 'Ende';
$labels['endtime'] = 'Endzeit';
$labels['repeat'] = 'Wiederholung';
$labels['selectdate'] = 'Datum auswählen';
$labels['freebusy'] = 'Zeige mich als';
$labels['free'] = 'Frei';
$labels['busy'] = 'Gebucht';
$labels['outofoffice'] = 'Abwesend';
$labels['tentative'] = 'Mit Vorbehalt';
$labels['mystatus'] = 'Mein Status';
$labels['status'] = 'Status';
$labels['status-confirmed'] = 'Bestätigt';
$labels['status-cancelled'] = 'Gekündigt';
$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'] = 'Verlauf';
$labels['removelink'] = 'E-Mail-Referenz entfernen';
$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';
@ -79,9 +110,18 @@ $labels['onemonthback'] = '1 Monat zurück';
$labels['nmonthsback'] = '$nr Monate zurück';
$labels['showurl'] = 'URL anzeigen';
$labels['showurldescription'] = 'Über die folgende Adresse können Sie mit einem beliebigen Kalenderprogramm Ihren Kalender abrufen (nur lesend), sofern dieses das iCal-Format unterstützt.';
$labels['caldavurldescription'] = 'Benutzen Sie folgende Addresse in einer <a href="http://de.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-Anwendung (wie z.B. Evolution oder Mozilla Thunderbird) um diesen spezifischen Kalender mit dem Computer oder Mobiltelefon zu synchronisieren.';
// agenda view
$labels['caldavurldescription'] = 'Diese Adresse in einen <a href="http://de.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-Klienten (z.B. Evolution oder Mozilla Thunderbird) kopieren, um den Kalender mit Ihrem Computer oder einem mobilen Gerät zu synchronisieren.';
$labels['findcalendars'] = 'Kalender finden...';
$labels['searchterms'] = 'Suchbegriffe';
$labels['calsearchresults'] = 'Verfügbare Kalender';
$labels['calendarsubscribe'] = 'Permanent anzeigen';
$labels['nocalendarsfound'] = 'Keine Kalender gefunden';
$labels['nrcalendarsfound'] = '$nr Kalender gefunden';
$labels['quickview'] = 'Nur diesen Kalender anzeigen';
$labels['invitationspending'] = 'Pendente Einladungen';
$labels['invitationsdeclined'] = 'Abgelehnte Einladungen';
$labels['changepartstat'] = 'Teilnehmerstatus ändern';
$labels['rsvpcomment'] = 'Einladungstext';
$labels['listrange'] = 'Angezeigter Bereich:';
$labels['listsections'] = 'Unterteilung:';
$labels['smartsections'] = 'Intelligent';
@ -90,18 +130,15 @@ $labels['today'] = 'Heute';
$labels['tomorrow'] = 'Morgen';
$labels['thisweek'] = 'Diese Woche';
$labels['nextweek'] = 'Nächste Woche';
$labels['prevweek'] = 'Vorige Woche';
$labels['thismonth'] = 'Diesen Monat';
$labels['nextmonth'] = 'Nächsten Monat';
$labels['weekofyear'] = 'KW';
$labels['pastevents'] = 'Vergangene';
$labels['futureevents'] = 'Zukünftige';
// alarm/reminder settings
$labels['showalarms'] = 'Erinnerungen anzeigen';
$labels['defaultalarmtype'] = 'Standard-Erinnerungseinstellung';
$labels['defaultalarmoffset'] = 'Standard-Erinnerungszeit';
// attendees
$labels['attendee'] = 'Teilnehmer';
$labels['role'] = 'Rolle';
$labels['availability'] = 'Verfüg.';
@ -111,6 +148,11 @@ $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';
@ -124,54 +166,52 @@ $labels['onlyworkinghours'] = 'Verfügbarkeit innerhalb meiner Arbeitszeiten suc
$labels['reqallattendees'] = 'Erforderliche/alle Teilnehmer';
$labels['prevslot'] = 'Vorheriger Vorschlag';
$labels['nextslot'] = 'Nächster Vorschlag';
$labels['suggestedslot'] = 'Empfohlener Terminplatz';
$labels['noslotfound'] = 'Es konnten keine freien Zeiten gefunden werden';
$labels['invitationsubject'] = 'Sie wurden zu "$title" eingeladen';
$labels['invitationmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nIm Anhang finden Sie eine iCalendar-Datei mit allen Details des Termins. Diese können Sie in Ihre Kalenderanwendung importieren.";
$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.";
// invitation handling
$labels['itipinvitation'] = 'Einladung zu';
$labels['itipreply'] = 'Antwort zu';
$labels['itipupdate'] = 'Aktialisiert:';
$labels['itipcancellation'] = 'Abgesagt:';
$labels['itipaccepted'] = 'Akzeptieren';
$labels['itiptentative'] = 'Mit Vorbehalt';
$labels['itipdeclined'] = 'Ablehnen';
$labels['itipsubjectaccepted'] = 'Einladung zu "$title" wurde von $name angenommen';
$labels['itipsubjecttentative'] = 'Einladung zu "$title" wurde von $name mit Vorbehalt angenommen';
$labels['itipsubjectdeclined'] = 'Einladung zu "$title" wurde von $name abgelehnt';
$labels['itipobjectnotfound'] = 'Der Termin auf den sich diese Nachricht bezieht, wurde in Ihrem Kalender nicht gefunden.';
$labels['itipmailbodyaccepted'] = "\$sender hat die Einladung zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
$labels['itipmailbodytentative'] = "\$sender hat die Einladung mit Vorbehalt zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender hat die Einladung zum folgenden Termin abgelehnt:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
$labels['itipmailbodycancel'] = "\$sender hat ihre Teilnahme bei der folgenden Veranstaltung zurückgewiesen:\n\n*\$title*\n\nam: \$date";
$labels['itipmailbodydelegated'] = "\$sender hat die Teilnahme an folgendem Event delegiert:\n\n*\$title*\n\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'] = 'Möchten Sie den abgelehnten Termin ebenfalls aus Ihrem Kalender löschen?';
$labels['importtocalendar'] = 'In Kalender übernehmen';
$labels['removefromcalendar'] = 'Aus meinem Kalender löschen';
$labels['updateattendeestatus'] = 'Teilnehmerstatus aktualisieren';
$labels['acceptinvitation'] = 'Möchten Sie die Einladung zu diesem Termin annehmen?';
$labels['youhaveaccepted'] = 'Sie haben die Einladung angenommen';
$labels['youhavetentative'] = 'Sie haben die Einladung mit Vorbehalt angenommen';
$labels['youhavedeclined'] = 'Sie haben die Einladung abgelehnt';
$labels['declinedeleteconfirm'] = 'Do you also want to delete this declined event from your calendar?';
$labels['itipcomment'] = 'Kommentar zur Einladungs/Benachrichtigung';
$labels['itipcommenttitle'] = 'Dieser Kommentar wird an die Einladungs/Benachrichtigung angehängt, die an die Teilnehmer verschickt wird';
$labels['notanattendee'] = 'Sie sind nicht in der Liste der Teilnehmer aufgeführt';
$labels['eventcancelled'] = 'Der Termin wurde vom Organisator abgesagt';
$labels['saveincalendar'] = 'speichern in';
// event dialog tabs
$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';
// messages
$labels['deleteobjectconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
$labels['deleteventconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
$labels['deletecalendarconfirm'] = 'Möchten Sie diesen Kalender mit allen Terminen wirklich löschen?';
$labels['deletecalendarconfirmrecursive'] = 'Möchten Sie diesen Kalender mit allen Terminen und Unter-Kalendern wirklich löschen?';
$labels['deletecalendarconfirmrecursive'] = 'Möchten Sie diesen Kalender mit allen Terminen und Unterkalendern wirklich löschen?';
$labels['savingdata'] = 'Speichere Daten...';
$labels['errorsaving'] = 'Fehler beim Speichern.';
$labels['operationfailed'] = 'Die Aktion ist fehlgeschlagen.';
@ -182,54 +222,52 @@ $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'] = 'Änderungen an diesem Termin werden nur in Ihrem Kalender gespeichert und nicht an den Organisator des Termins gesendet.';
$labels['localchangeswarning'] = 'Die auszuführenden Änderungen werden sich nur auf den persönlichen Kalender auswirken und nicht an den Organisator des Termins weitergeleitet.';
$labels['importsuccess'] = 'Es wurden $nr Termine erfolgreich importiert';
$labels['importnone'] = 'Keine Termine zum Importieren gefunden';
$labels['importerror'] = 'Fehler beim Importieren';
// recurrence form
$labels['repeat'] = 'Wiederholung';
$labels['frequency'] = 'Wiederholung';
$labels['never'] = 'nie';
$labels['daily'] = 'täglich';
$labels['weekly'] = 'wöchentlich';
$labels['monthly'] = 'monatlich';
$labels['yearly'] = 'jährlich';
$labels['rdate'] = 'per Datum';
$labels['every'] = 'Alle';
$labels['days'] = 'Tag(e)';
$labels['weeks'] = 'Woche(n)';
$labels['months'] = 'Monat(e)';
$labels['years'] = 'Jahre(e) im:';
$labels['bydays'] = 'Am';
$labels['untildate'] = 'am';
$labels['each'] = 'Jeden';
$labels['onevery'] = 'An jedem';
$labels['onsamedate'] = 'Am gleichen Tag';
$labels['forever'] = 'unendlich';
$labels['recurrencend'] = 'bis';
$labels['forntimes'] = '$nr Wiederholungen';
$labels['first'] = 'erster';
$labels['second'] = 'zweiter';
$labels['third'] = 'dritter';
$labels['fourth'] = 'vierter';
$labels['last'] = 'letzter';
$labels['dayofmonth'] = 'Tag des Montats';
$labels['addrdate'] = 'Datum hinzufügen';
$labels['aclnorights'] = 'Sie haben keine Administrator-Rechte für diesen Kalender.';
$labels['changeeventconfirm'] = 'Termin ändern';
$labels['removeeventconfirm'] = 'Termin löschen';
$labels['changerecurringeventwarning'] = 'Dies ist eine Terminreihe. Möchten Sie nur den aktuellen, diesen und alle zukünftigen oder alle Termine bearbeiten oder die Änderungen als neuen Termin speichern?';
$labels['removerecurringeventwarning'] = 'Dies ist eine Terminreihe. Möchten Sie nur den aktuellen, diesen und alle zukünftigen oder alle Termine löschen?';
$labels['removerecurringeventwarning'] = 'Dies ist ein wiederkehrender Termin. Möchten Sie nur den aktuellen, diesen und alle zukünftige Vorkommen oder die gesamte Terminreihe löschen?';
$labels['removerecurringallonly'] = 'Dieses ist ein wiederkehrender Termin. Als ein Teilnehmer können Sie nur die gesamte Terminreihe inklusive aller Wiederholungen löschen.';
$labels['currentevent'] = 'Aktuellen';
$labels['futurevents'] = 'Zukünftige';
$labels['allevents'] = 'Alle';
$labels['saveasnew'] = 'Als neu speichern';
$labels['birthdays'] = 'Geburtstage';
$labels['birthdayscalendar'] = 'Geburtstags-Kalender';
$labels['displaybirthdayscalendar'] = 'Geburtstags-Kalender anzeigen';
$labels['birthdayscalendarsources'] = 'Für diese Adressbücher';
$labels['birthdayeventtitle'] = '$names Geburtstag';
$labels['birthdayage'] = 'Alter $age';
$labels['objectchangelog'] = 'Änderungsverlauf';
$labels['objectdiff'] = 'Änderungen aus $rev1 nach $rev2';
$labels['objectnotfound'] = 'Termindaten konnten nicht geladen werden';
$labels['objectchangelognotavailable'] = 'Änderungsverlauf für diesen Termin ist nicht verfügbar';
$labels['objectdiffnotavailable'] = 'Vergleich für die gewählten Versionen nicht möglich';
$labels['revisionrestoreconfirm'] = 'Wollen Sie wirklich die Version $rev dieses Termins wiederherstellen? Diese Aktion wird die aktuelle Kopie mit der älteren Version überschreiben.';
$labels['objectrestoresuccess'] = 'Version $rev erfolgreich wiederhergestellt';
$labels['objectrestoreerror'] = 'Fehler beim Wiederherstellen der alten Version';
$labels['arialabelminical'] = 'Kalender Datumswahl';
$labels['arialabelcalendarview'] = 'Kalender Ansicht';
$labels['arialabelsearchform'] = 'Suchformular für Termine';
$labels['arialabelquicksearchbox'] = 'Sucheingabe für Termine';
$labels['arialabelcalsearchform'] = 'Suchformular für Kalender';
$labels['calendaractions'] = 'Kalenderaktionen';
$labels['arialabeleventattendees'] = 'Teilehmerliste';
$labels['arialabeleventresources'] = 'Liste der Terminressourcen';
$labels['arialabelresourcesearchform'] = 'Suchformular für Ressourcen';
$labels['arialabelresourceselection'] = 'Verfügbare Ressourcen';
?>

View file

@ -1,30 +1,43 @@
<?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 = array();
// preferences
$labels['default_view'] = 'Ansicht';
$labels['default_view'] = 'Standardansicht';
$labels['time_format'] = 'Zeitformatierung';
$labels['timeslots'] = 'Zeitraster pro Stunde';
$labels['timeslots'] = 'Zeitfenster pro Stunde';
$labels['first_day'] = 'Erster Wochentag';
$labels['first_hour'] = 'Erste angezeigte Stunde';
$labels['workinghours'] = 'Arbeitszeiten';
$labels['add_category'] = 'Katgorie hinzufügen';
$labels['remove_category'] = 'Katgorie entfernen';
$labels['add_category'] = 'Kategorie hinzufügen';
$labels['remove_category'] = 'Kategorie entfernen';
$labels['defaultcalendar'] = 'Neue Termine erstellen in';
$labels['eventcoloring'] = 'Färbung der Termine';
$labels['coloringmode0'] = 'Farbe des Kalenders';
$labels['coloringmode1'] = 'Farbe der Kategorie';
$labels['coloringmode2'] = 'Kalenderfarbe außen, Kategoriefarbe innen';
$labels['coloringmode3'] = 'Kategoriefarbe außen, Kalenderfarbe innen';
// calendar
$labels['afternothing'] = 'nichts unternehmen';
$labels['aftertrash'] = 'In den Papierkorb verschieben';
$labels['afterdelete'] = 'Nachricht löschen';
$labels['afterflagdeleted'] = 'Als gelöscht markieren';
$labels['aftermoveto'] = 'Verschiebe nach...';
$labels['itipoptions'] = 'Veranstaltungseinladungen';
$labels['afteraction'] = 'Nachdem eine Einladungs- oder Aktualisierungsnachricht verarbeitet 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';
@ -36,7 +49,7 @@ $labels['new_event'] = 'Neuer Termin';
$labels['edit_event'] = 'Termin bearbeiten';
$labels['edit'] = 'Bearbeiten';
$labels['save'] = 'Speichern';
$labels['remove'] = 'Entfernen';
$labels['removelist'] = 'Von der Liste entfernen';
$labels['cancel'] = 'Abbrechen';
$labels['select'] = 'Auswählen';
$labels['print'] = 'Drucken';
@ -48,29 +61,47 @@ $labels['export'] = 'Exportieren';
$labels['exporttitle'] = 'Kalender als iCalendar exportieren';
$labels['exportrange'] = 'Termine ab';
$labels['exportattachments'] = 'Mit Anhängen';
$labels['customdate'] = 'Eigenes Datum';
$labels['customdate'] = 'Benutzerdefiniertes Datum';
$labels['location'] = 'Ort';
$labels['url'] = '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'] = 'Zeige mich als';
$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['andnmore'] = '$nr weitere...';
$labels['laterevents'] = 'Später';
$labels['andnmore'] = '$nr weitere …';
$labels['togglerole'] = 'Zum Ändern der Rolle klicken';
$labels['createfrommail'] = 'Als Termin speichern';
$labels['importevents'] = 'Termine importieren';
@ -79,9 +110,18 @@ $labels['onemonthback'] = '1 Monat zurück';
$labels['nmonthsback'] = '$nr Monate zurück';
$labels['showurl'] = 'URL anzeigen';
$labels['showurldescription'] = 'Über die folgende Adresse können Sie mit einem beliebigen Kalenderprogramm Ihren Kalender abrufen (nur lesend), sofern dieses das iCal-Format unterstützt.';
$labels['caldavurldescription'] = 'Benutzen Sie folgende Addresse in einer <a href="http://de.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-Anwendung (wie z.B. Evolution oder Mozilla Thunderbird) um diesen spezifischen Kalender mit dem Computer oder Mobiltelefon zu synchronisieren.';
// agenda view
$labels['caldavurldescription'] = 'Diese Adresse in einen <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-Klienten (z.B. Evolution oder Mozilla Thunderbird) kopieren, um den Kalender in Gänze mit einem mobilen Gerät zu synchronisieren.';
$labels['findcalendars'] = 'Kalender finden …';
$labels['searchterms'] = 'Suchbegriffe';
$labels['calsearchresults'] = 'Verfügbare Kalender';
$labels['calendarsubscribe'] = 'Permanent anzeigen';
$labels['nocalendarsfound'] = 'Keine Kalender gefunden';
$labels['nrcalendarsfound'] = '$nr Kalender gefunden';
$labels['quickview'] = 'Nur diesen Kalender anzeigen';
$labels['invitationspending'] = 'Ausstehende Einladungen';
$labels['invitationsdeclined'] = 'Abgelehnte Einladungen';
$labels['changepartstat'] = 'Teilnehmerstatus ändern';
$labels['rsvpcomment'] = 'Einladungstext';
$labels['listrange'] = 'Angezeigter Bereich:';
$labels['listsections'] = 'Unterteilung:';
$labels['smartsections'] = 'Intelligent';
@ -90,18 +130,15 @@ $labels['today'] = 'Heute';
$labels['tomorrow'] = 'Morgen';
$labels['thisweek'] = 'Diese Woche';
$labels['nextweek'] = 'Nächste Woche';
$labels['prevweek'] = 'Vorige Woche';
$labels['thismonth'] = 'Diesen Monat';
$labels['nextmonth'] = 'Nächsten Monat';
$labels['weekofyear'] = 'Woche';
$labels['pastevents'] = 'Vergangene';
$labels['futureevents'] = 'Zukünftige';
// alarm/reminder settings
$labels['showalarms'] = 'Erinnerungen anzeigen';
$labels['defaultalarmtype'] = 'Standard-Erinnerungseinstellung';
$labels['defaultalarmoffset'] = 'Standard-Erinnerungszeit';
// attendees
$labels['attendee'] = 'Teilnehmer';
$labels['role'] = 'Rolle';
$labels['availability'] = 'Verfüg.';
@ -111,6 +148,11 @@ $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';
@ -124,55 +166,80 @@ $labels['onlyworkinghours'] = 'Verfügbarkeit innerhalb meiner Arbeitszeiten suc
$labels['reqallattendees'] = 'Erforderliche/alle Teilnehmer';
$labels['prevslot'] = 'Vorheriger Vorschlag';
$labels['nextslot'] = 'Nächster Vorschlag';
$labels['suggestedslot'] = 'Empfohlener Slot';
$labels['noslotfound'] = 'Es konnten keine freien Zeiten gefunden werden';
$labels['invitationsubject'] = 'Sie wurden zu "$title" eingeladen';
$labels['invitationmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nIm Anhang finden Sie eine iCalendar-Datei mit allen Details des Termins. Diese können Sie in Ihre Kalenderanwendung importieren.";
$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['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['eventupdatesubjectempty'] = 'Termin wurde aktualisiert';
$labels['eventupdatemailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nIm Anhang finden Sie eine iCalendar-Datei mit den aktualisiereten Termindaten. Diese können Sie in Ihre Kalenderanwendung importieren.";
$labels['eventcancelsubject'] = '"$title" wurde abgesagt';
$labels['eventcancelmailbody'] = "*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees\n\nDer Termin wurde von \$organizer abgesagt.\n\nIm Anhang finden Sie eine iCalendar-Datei mit den Termindaten.";
// invitation handling
$labels['itipinvitation'] = 'Einladung zu';
$labels['itipreply'] = 'Antwort zu';
$labels['itipupdate'] = 'Aktialisiert:';
$labels['itipcancellation'] = 'Abgesagt:';
$labels['itipaccepted'] = 'Akzeptieren';
$labels['itiptentative'] = 'Mit Vorbehalt';
$labels['itipdeclined'] = 'Ablehnen';
$labels['itipsubjectaccepted'] = 'Einladung zu "$title" wurde von $name angenommen';
$labels['itipsubjecttentative'] = 'Einladung zu "$title" wurde von $name mit Vorbehalt angenommen';
$labels['itipsubjectdeclined'] = 'Einladung zu "$title" wurde von $name abgelehnt';
$labels['itipmailbodyaccepted'] = "\$sender hat die Einladung zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
$labels['itipmailbodytentative'] = "\$sender hat die Einladung mit Vorbehalt zum folgenden Termin angenommen:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender hat die Einladung zum folgenden Termin abgelehnt:\n\n*\$title*\n\nWann: \$date\n\nTeilnehmer: \$attendees";
$labels['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['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['itipdeclineevent'] = 'Möchten Sie die Einladung zu diesem Termin ablehnen?';
$labels['declinedeleteconfirm'] = 'Möchten Sie den abgelehnten Termin ebenfalls aus Ihrem Kalender löschen?';
$labels['importtocalendar'] = 'In Kalender übernehmen';
$labels['removefromcalendar'] = 'Aus meinem Kalender löschen';
$labels['updateattendeestatus'] = 'Teilnehmerstatus aktualisieren';
$labels['acceptinvitation'] = 'Möchten Sie die Einladung zu diesem Termin annehmen?';
$labels['youhaveaccepted'] = 'Sie haben die Einladung angenommen';
$labels['youhavetentative'] = 'Sie haben die Einladung mit Vorbehalt angenommen';
$labels['youhavedeclined'] = 'Sie haben die Einladung abgelehnt';
$labels['declinedeleteconfirm'] = 'Soll der abgelehnte Termin zusätzlich aus dem Kalender gelöscht werden?';
$labels['itipcomment'] = 'Kommentar zur Einladungs-/Benachrichtigungsnachricht';
$labels['itipcommenttitle'] = 'Dieser Kommentar wird an die Einladungs-/Benachrichtigungsnachricht angehängt, die an die Teilnehmer verschickt wird';
$labels['notanattendee'] = 'Sie sind nicht in der Liste der Teilnehmer aufgeführt';
$labels['eventcancelled'] = 'Der Termin wurde vom Organisator abgesagt';
$labels['saveincalendar'] = 'speichern in';
// event dialog tabs
$labels['updatemycopy'] = 'In 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';
// messages
$labels['deleteobjectconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
$labels['deleteventconfirm'] = 'Möchten Sie diesen Termin wirklich löschen?';
$labels['deletecalendarconfirm'] = 'Möchten Sie diesen Kalender mit allen Terminen wirklich löschen?';
$labels['deletecalendarconfirmrecursive'] = 'Möchten Sie diesen Kalender mit allen Terminen und Unter-Kalendern wirklich löschen?';
$labels['savingdata'] = 'Speichere Daten...';
$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.';
@ -182,54 +249,52 @@ $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['importedsuccessfully'] = 'Der Termin wurde erfolgreich in »$calendar« gespeichert';
$labels['updatedsuccessfully'] = 'Der Termin wurde erfolgreich in »$calendar« geändert';
$labels['attendeupdateesuccess'] = 'Teilnehmerstatus erfolgreich aktualisiert';
$labels['itipsendsuccess'] = 'Einladung an Teilnehmer versendet.';
$labels['itipresponseerror'] = 'Die Antwort auf diese Einladung konnte nicht versendet werden';
$labels['itipinvalidrequest'] = 'Diese Einladung ist nicht mehr gültig.';
$labels['sentresponseto'] = 'Antwort auf diese Einladung erfolgreich an $mailto gesendet';
$labels['localchangeswarning'] = 'Änderungen an diesem Termin werden nur in Ihrem Kalender gespeichert und nicht an den Organisator des Termins gesendet.';
$labels['localchangeswarning'] = 'Die auszuführenden Änderungen werden sich nur auf den persönlichen Kalender auswirken und nicht an den Organisator des Termins weitergeleitet.';
$labels['importsuccess'] = 'Es wurden $nr Termine erfolgreich importiert';
$labels['importnone'] = 'Keine Termine zum Importieren gefunden';
$labels['importerror'] = 'Fehler beim Importieren';
// recurrence form
$labels['repeat'] = 'Wiederholung';
$labels['frequency'] = 'Wiederholung';
$labels['never'] = 'nie';
$labels['daily'] = 'täglich';
$labels['weekly'] = 'wöchentlich';
$labels['monthly'] = 'monatlich';
$labels['yearly'] = 'jährlich';
$labels['rdate'] = 'per Datum';
$labels['every'] = 'Alle';
$labels['days'] = 'Tag(e)';
$labels['weeks'] = 'Woche(n)';
$labels['months'] = 'Monat(e)';
$labels['years'] = 'Jahre(e) im:';
$labels['bydays'] = 'Am';
$labels['untildate'] = 'am';
$labels['each'] = 'Jeden';
$labels['onevery'] = 'An jedem';
$labels['onsamedate'] = 'Am gleichen Tag';
$labels['forever'] = 'unendlich';
$labels['recurrencend'] = 'bis';
$labels['forntimes'] = '$nr Wiederholungen';
$labels['first'] = 'erster';
$labels['second'] = 'zweiter';
$labels['third'] = 'dritter';
$labels['fourth'] = 'vierter';
$labels['last'] = 'letzter';
$labels['dayofmonth'] = 'Tag des Montats';
$labels['addrdate'] = 'Datum hinzufügen';
$labels['aclnorights'] = 'Der Zugriff auf diesen Kalender erfordert Administrator-Rechte.';
$labels['changeeventconfirm'] = 'Termin ändern';
$labels['removeeventconfirm'] = 'Termin löschen';
$labels['changerecurringeventwarning'] = 'Dies ist eine Terminreihe. Möchten Sie nur den aktuellen, diesen und alle zukünftigen oder alle Termine bearbeiten oder die Änderungen als neuen Termin speichern?';
$labels['removerecurringeventwarning'] = 'Dies ist eine Terminreihe. Möchten Sie nur den aktuellen, diesen und alle zukünftigen oder alle Termine löschen?';
$labels['removerecurringeventwarning'] = 'Dies ist ein wiederkehrender Termin. Wollen Sie nur diesen Termin bearbeiten oder alle zukünftigen Vorkommen? Alternativ können auch alle Vorkommen bearbeitet werden.';
$labels['removerecurringallonly'] = 'Dieses ist ein wiederkehrender Termin. Als ein Teilnehmer können Sie nur den gesamten Termin inklusive aller Wiederholungen löschen.';
$labels['currentevent'] = 'Aktuellen';
$labels['futurevents'] = 'Zukünftige';
$labels['allevents'] = 'Alle';
$labels['saveasnew'] = 'Als neu speichern';
$labels['birthdays'] = 'Geburtstage';
$labels['birthdayscalendar'] = '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';
?>

95
localization/el.inc Normal file
View file

@ -0,0 +1,95 @@
<?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'] = 'Αλλαγή ιστορικού';
?>

View file

@ -1,11 +1,25 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels = array();
//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';
$labels['timeslots'] = 'Timeslots per hour';
$labels['timeslots'] = 'Time slots per hour';
$labels['first_day'] = 'First weekday';
$labels['first_hour'] = 'First hour to show';
$labels['workinghours'] = 'Working hours';
@ -17,14 +31,27 @@ $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['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 calendar properties';
$labels['editcalendar'] = 'Edit/Share calendar';
$labels['deletecalendar'] = 'Delete calendar';
$labels['name'] = 'Name';
$labels['color'] = 'Color';
$labels['day'] = 'Day';
@ -36,7 +63,7 @@ $labels['new_event'] = 'New event';
$labels['edit_event'] = 'Edit event';
$labels['edit'] = 'Edit';
$labels['save'] = 'Save';
$labels['remove'] = 'Remove';
$labels['removelist'] = 'Remove from list';
$labels['cancel'] = 'Cancel';
$labels['select'] = 'Select';
$labels['print'] = 'Print';
@ -53,24 +80,42 @@ $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['status-tentative'] = 'Tentative';
$labels['priority'] = 'Priority';
$labels['sensitivity'] = 'Privacy';
$labels['public'] = 'public';
$labels['private'] = 'private';
$labels['confidential'] = 'confidential';
$labels['links'] = 'Reference';
$labels['alarms'] = 'Reminder';
$labels['comment'] = 'Comment';
$labels['created'] = 'Created';
$labels['changed'] = 'Last Modified';
$labels['unknown'] = 'Unknown';
$labels['eventoptions'] = 'Options';
$labels['generated'] = 'generated at';
$labels['eventhistory'] = 'History';
$labels['removelink'] = 'Remove email reference';
$labels['printdescriptions'] = 'Print descriptions';
$labels['parentcalendar'] = 'Insert inside';
$labels['searchearlierdates'] = '« Search for earlier events';
$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';
@ -81,6 +126,22 @@ $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';
$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['eventstartsync'] = 'Move the event start date to the first occurrence';
$labels['weekshort'] = 'Wk';
// agenda view
$labels['listrange'] = 'Range to display:';
@ -91,6 +152,7 @@ $labels['today'] = 'Today';
$labels['tomorrow'] = 'Tomorrow';
$labels['thisweek'] = 'This week';
$labels['nextweek'] = 'Next week';
$labels['prevweek'] = 'Previous week';
$labels['thismonth'] = 'This month';
$labels['nextmonth'] = 'Next month';
$labels['weekofyear'] = 'Week';
@ -98,7 +160,7 @@ $labels['pastevents'] = 'Past';
$labels['futureevents'] = 'Future';
// alarm/reminder settings
$labels['showalarms'] = 'Show alarms';
$labels['showalarms'] = 'Show reminders';
$labels['defaultalarmtype'] = 'Default reminder setting';
$labels['defaultalarmoffset'] = 'Default reminder time';
@ -112,6 +174,7 @@ $labels['roleorganizer'] = 'Organizer';
$labels['rolerequired'] = 'Required';
$labels['roleoptional'] = 'Optional';
$labels['rolechair'] = 'Chair';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Group';
$labels['cutyperesource'] = 'Resource';
@ -129,51 +192,66 @@ $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['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['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['eventcancelsubject'] = '"$title" has been cancelled';
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
// invitation handling
$labels['itipinvitation'] = 'Invitation to';
$labels['itipupdate'] = 'Update of';
$labels['itipcancellation'] = 'Cancelled:';
$labels['itipreply'] = 'Reply to';
$labels['itipaccepted'] = 'Accept';
$labels['itiptentative'] = 'Maybe';
$labels['itipdeclined'] = 'Decline';
$labels['itipsubjectaccepted'] = '"$title" has been accepted by $name';
$labels['itipsubjecttentative'] = '"$title" has been tentatively accepted by $name';
$labels['itipsubjectdeclined'] = '"$title" has been declined by $name';
// invitation handling (overrides labels from libcalendaring)
$labels['itipobjectnotfound'] = 'The event referred by this message was not found in your calendar.';
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodycancel'] = "\$sender has rejected your participation in the following event:\n\n*\$title*\n\nWhen: \$date";
$labels['itipmailbodydelegated'] = "\$sender has delegated the participation in the following event:\n\n*\$title*\n\nWhen: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender has delegated the participation in the following event to you:\n\n*\$title*\n\nWhen: \$date";
$labels['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['importtocalendar'] = 'Save to my calendar';
$labels['removefromcalendar'] = 'Remove from my calendar';
$labels['updateattendeestatus'] = 'Update the participant\'s status';
$labels['acceptinvitation'] = 'Do you accept this invitation?';
$labels['youhaveaccepted'] = 'You have accepted this invitation';
$labels['youhavetentative'] = 'You have tentatively accepted this invitation';
$labels['youhavedeclined'] = 'You have declined this invitation';
$labels['itipcomment'] = 'Invitation/notification comment';
$labels['itipcommenttitle'] = 'This comment will be attached to the invitation/notification message sent to participants';
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
$labels['eventcancelled'] = 'The event has been cancelled';
$labels['saveincalendar'] = 'save in';
$labels['updatemycopy'] = 'Update in my calendar';
$labels['savetocalendar'] = 'Save to calendar';
$labels['openpreview'] = 'Check Calendar';
$labels['noearlierevents'] = 'No earlier events';
$labels['nolaterevents'] = 'No later events';
$labels['legend'] = 'Legend';
// resources
$labels['resource'] = 'Resource';
$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';
// event dialog tabs
$labels['tabsummary'] = 'Summary';
$labels['tabrecurrence'] = 'Recurrence';
$labels['tabattendees'] = 'Participants';
$labels['tabresources'] = 'Resources';
$labels['tabattachments'] = 'Attachments';
$labels['tabsharing'] = 'Sharing';
// messages
$labels['deleteobjectconfirm'] = 'Do you really want to delete this event?';
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
$labels['deletecalendarconfirmrecursive'] = 'Do you really want to delete this calendar with all its events and sub-calendars?';
@ -181,16 +259,20 @@ $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.';
$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['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';
@ -200,44 +282,49 @@ $labels['importsuccess'] = 'Successfully imported $nr events';
$labels['importnone'] = 'No events found to be imported';
$labels['importerror'] = 'An error occured while importing';
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
// recurrence form
$labels['repeat'] = 'Repeat';
$labels['frequency'] = 'Repeat';
$labels['never'] = 'never';
$labels['daily'] = 'daily';
$labels['weekly'] = 'weekly';
$labels['monthly'] = 'monthly';
$labels['yearly'] = 'annually';
$labels['rdate'] = 'on dates';
$labels['every'] = 'Every';
$labels['days'] = 'day(s)';
$labels['weeks'] = 'week(s)';
$labels['months'] = 'month(s)';
$labels['years'] = 'year(s) in:';
$labels['bydays'] = 'On';
$labels['untildate'] = 'the';
$labels['each'] = 'Each';
$labels['onevery'] = 'On every';
$labels['onsamedate'] = 'On the same date';
$labels['forever'] = 'forever';
$labels['recurrencend'] = 'until';
$labels['forntimes'] = 'for $nr time(s)';
$labels['first'] = 'first';
$labels['second'] = 'second';
$labels['third'] = 'third';
$labels['fourth'] = 'fourth';
$labels['last'] = 'last';
$labels['dayofmonth'] = 'Day of month';
$labels['addrdate'] = 'Add repeat date';
$labels['importtext'] = 'You can upload events in <a href="https://wikipedia.org/wiki/ICalendar">iCalendar</a> format (.ics).';
$labels['changeeventconfirm'] = 'Change event';
$labels['removeeventconfirm'] = 'Remove event';
$labels['removeeventconfirm'] = 'Delete event';
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to remove the current event only, this and all future occurences or all occurences of this event?';
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to delete the current event only, this and all future occurences or all occurences of this event?';
$labels['removerecurringallonly'] = 'This is a recurring event. As a participant, you can only delete the entire event with all occurences.';
$labels['currentevent'] = 'Current';
$labels['futurevents'] = 'Future';
$labels['allevents'] = 'All';
$labels['saveasnew'] = 'Save as new';
$labels['recurrenceerror'] = 'Unable to resolve recurrence rule for specified start date.';
// birthdays calendar
$labels['birthdays'] = 'Birthdays';
$labels['birthdayscalendar'] = 'Birthdays Calendar';
$labels['displaybirthdayscalendar'] = 'Display birthdays calendar';
$labels['birthdayscalendarsources'] = 'From these address books';
$labels['birthdayeventtitle'] = '$name\'s Birthday';
$labels['birthdayage'] = 'Age $age';
// history dialog
$labels['objectchangelog'] = 'Change History';
$labels['objectdiff'] = 'Changes from $rev1 to $rev2';
$labels['objectnotfound'] = 'Failed to load event data';
$labels['objectchangelognotavailable'] = 'Change history is not available for this event';
$labels['objectdiffnotavailable'] = 'No comparison possible for the selected revisions';
$labels['revisionrestoreconfirm'] = 'Do you really want to restore revision $rev of this event? This will replace the current event with the old version.';
$labels['objectrestoresuccess'] = 'Revision $rev successfully restored';
$labels['objectrestoreerror'] = 'Failed to restore the old revision';
// (hidden) titles and labels for accessibility annotations
$labels['arialabelminical'] = 'Calendar date selection';
$labels['arialabelcalendarview'] = 'Calendar view';
$labels['arialabelsearchform'] = 'Event search form';
$labels['arialabelquicksearchbox'] = 'Event search input';
$labels['arialabelcalsearchform'] = 'Calendars search form';
$labels['calendaractions'] = 'Calendar actions';
$labels['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';
?>

281
localization/es_AR.inc Normal file
View file

@ -0,0 +1,281 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Vista predeterminada';
$labels['time_format'] = 'Formato de hora';
$labels['timeslots'] = 'Espacios por hora';
$labels['first_day'] = 'Primer día de semana';
$labels['first_hour'] = 'Primer hora a mostrar';
$labels['workinghours'] = 'Horario laboral';
$labels['add_category'] = 'Agregar categoría';
$labels['remove_category'] = 'Eliminar categoría';
$labels['defaultcalendar'] = 'Crear nuevos eventos en';
$labels['eventcoloring'] = 'Colores de eventos';
$labels['coloringmode0'] = 'De acuerdo al calendario';
$labels['coloringmode1'] = 'De acuerdo a la categoría';
$labels['coloringmode2'] = 'Calendario para borde, categoría para contenido';
$labels['coloringmode3'] = 'Categoría para borde, calendario para contenido';
$labels['afternothing'] = 'Hacer nada';
$labels['aftertrash'] = 'Mover a la papelera';
$labels['afterdelete'] = 'Eliminar el mensaje';
$labels['afterflagdeleted'] = 'Marcar como eliminado';
$labels['aftermoveto'] = 'Mover a...';
$labels['itipoptions'] = 'Invitaciones del evento';
$labels['afteraction'] = 'Luego que una invitación o actualización de mensaje es procesado';
$labels['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['name'] = 'Nombre';
$labels['color'] = 'Color';
$labels['day'] = 'Día';
$labels['week'] = 'Semana';
$labels['month'] = 'Mes';
$labels['agenda'] = 'Agenda';
$labels['new'] = 'Nuevo';
$labels['new_event'] = 'Nuevo evento';
$labels['edit_event'] = 'Editar evento';
$labels['edit'] = 'Editar';
$labels['save'] = 'Guardar';
$labels['removelist'] = 'Eliminar de la lista';
$labels['cancel'] = 'Cancelar';
$labels['select'] = 'Seleccionar';
$labels['print'] = 'Imprimir';
$labels['printtitle'] = 'Imprimir calendarios';
$labels['title'] = 'Sumario';
$labels['description'] = 'Descripción';
$labels['all-day'] = 'Todo el día';
$labels['export'] = 'Exportar';
$labels['exporttitle'] = 'Exportar a iCalendar';
$labels['exportrange'] = 'Eventos de';
$labels['exportattachments'] = 'Con adjunto';
$labels['customdate'] = 'Fecha personalizada';
$labels['location'] = 'Localización';
$labels['url'] = 'URL';
$labels['date'] = 'Fecha';
$labels['start'] = 'Inicio';
$labels['starttime'] = 'Hora de inicio';
$labels['end'] = 'Fin';
$labels['endtime'] = 'Hora de finalización';
$labels['repeat'] = 'Repetir';
$labels['selectdate'] = 'Elegir fecha';
$labels['freebusy'] = 'Mostrarme como';
$labels['free'] = 'Libre';
$labels['busy'] = 'Ocupado';
$labels['outofoffice'] = 'Fuera de la oficina';
$labels['tentative'] = 'Tentativo';
$labels['mystatus'] = 'Mi estado';
$labels['status'] = 'Estado';
$labels['status-confirmed'] = 'Confirmado';
$labels['status-cancelled'] = 'Cancelado';
$labels['status-tentative'] = 'Tentativo';
$labels['priority'] = 'Prioridad';
$labels['sensitivity'] = 'Privacidad';
$labels['public'] = 'público';
$labels['private'] = 'privado';
$labels['confidential'] = 'confidencial';
$labels['links'] = 'Referencia';
$labels['alarms'] = 'Recordatorio';
$labels['comment'] = 'Comentario';
$labels['created'] = 'Creado';
$labels['changed'] = 'Última modificación';
$labels['unknown'] = 'Desconocido';
$labels['eventoptions'] = 'Opciones';
$labels['generated'] = 'generado en';
$labels['eventhistory'] = 'Historial';
$labels['removelink'] = 'Eliminar referencia de correo';
$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';
$labels['importevents'] = 'Importar eventos';
$labels['importrange'] = 'Eventos de';
$labels['onemonthback'] = '1 mes atrás';
$labels['nmonthsback'] = '$nr meses atrás';
$labels['showurl'] = 'Mostrar URL del calendario';
$labels['showurldescription'] = 'Use la siguiente direccion para acceder (sólo lectura) a su calendario desde otras aplicaciones. Puede copiar y pegar esto dentro de cualquier software de calendario que soporte el formato iCal.';
$labels['caldavurldescription'] = 'Copie esta direccion a su aplicación cliente <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (por ejemplo, Evolution o Mozilla Thunderbird) para sincronizar completamente este calendario específico con su ordenador o dispositivo móvil.';
$labels['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';
$labels['nrcalendarsfound'] = '$nr calendarios encontrados';
$labels['quickview'] = 'Ver sólo este calendario';
$labels['invitationspending'] = 'Invitaciones pendientes';
$labels['invitationsdeclined'] = 'Invitaciones rechazadas';
$labels['changepartstat'] = 'Cambiar el estado del participante';
$labels['rsvpcomment'] = 'Texto de invitación';
$labels['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';
$labels['until'] = 'hasta';
$labels['today'] = 'Hoy';
$labels['tomorrow'] = 'Mañana';
$labels['thisweek'] = 'Esta semana';
$labels['nextweek'] = 'Próxima semana';
$labels['prevweek'] = 'Semana anterior';
$labels['thismonth'] = 'Este mes';
$labels['nextmonth'] = 'Próximo mes';
$labels['weekofyear'] = 'Semana';
$labels['pastevents'] = 'Pasado';
$labels['futureevents'] = 'Futuro';
$labels['showalarms'] = 'Mostrar alarmas';
$labels['defaultalarmtype'] = 'Configuración predeterminada de recordatorio';
$labels['defaultalarmoffset'] = 'Tiempo predeterminado de recordatorio';
$labels['attendee'] = 'Participante';
$labels['role'] = 'Rol';
$labels['availability'] = 'Disp.';
$labels['confirmstate'] = 'Estado';
$labels['addattendee'] = 'Agregar participante';
$labels['roleorganizer'] = 'Organizador';
$labels['rolerequired'] = 'Requerido';
$labels['roleoptional'] = 'Opcional';
$labels['rolechair'] = 'Jefe';
$labels['rolenonparticipant'] = 'Ausente';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Grupo';
$labels['cutyperesource'] = 'Recurso';
$labels['cutyperoom'] = 'Habitación';
$labels['availfree'] = 'Libre';
$labels['availbusy'] = 'Ocupado';
$labels['availunknown'] = 'Desconocido';
$labels['availtentative'] = 'Tentativo';
$labels['availoutofoffice'] = 'Fuera de la oficina';
$labels['scheduletime'] = 'Buscar disponibilidad';
$labels['sendinvitations'] = 'Enviar invitaciones';
$labels['sendnotifications'] = 'Notificar a los participantes sobre las modificaciones';
$labels['sendcancellation'] = 'Notificar a los participantes sobre la cancelación del evento';
$labels['onlyworkinghours'] = 'Buscar disponibilidad dentro de mi horario laboral';
$labels['reqallattendees'] = 'Requerido/todos los participantes';
$labels['prevslot'] = 'Espacio anterior';
$labels['nextslot'] = 'Espacio siguiente';
$labels['suggestedslot'] = 'Espacio sugerido';
$labels['noslotfound'] = 'Imposible encontrar un espacio libre';
$labels['invitationsubject'] = 'Ha sido invitado a "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees\n\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['invitationattendlinks'] = "En caso que su cliente de correo electrónico no soporte peticiones iTip puede usar el siguiente link para aceptar o declinar esta invitación:\n\$url";
$labels['eventupdatesubject'] = '"$title" ha sido actualizado';
$labels['eventupdatesubjectempty'] = 'Un evento que le interesa ha sido actualizado';
$labels['eventupdatemailbody'] = "*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees\n\nEncontrará adjunto un archivo iCalendar con todos los detalles del evento, el cual puede importar a su aplicación de calendario.";
$labels['eventcancelsubject'] = '"$title" ha sido cancelado';
$labels['eventcancelmailbody'] = "*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees\n\nEl evento ha sido cancelado por \$organizer.\n\nEncontrará adjunto un archivo iCalendar con todos los detalles actualizados del evento.";
$labels['itipobjectnotfound'] = 'El evento referido por este mensaje no fue encontrado en su calendario.';
$labels['itipmailbodyaccepted'] = "\$sender ha aceptado la invitación al siguiente evento:\n\n*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees";
$labels['itipmailbodytentative'] = "\$sender ha tentativamente aceptado la invitación al siguiente evento:\n\n*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender ha rechazado la invitación al siguiente evento:\n\n*\$title*\n\nCuándo: \$date\n\nInvitados: \$attendees";
$labels['itipmailbodycancel'] = "\$sender ha rechazado tu participación en el siguiente evento:\n\n*\$title*\n\nCuándo:\$date";
$labels['itipmailbodydelegated'] = "\$sender ha delegado la invitación en el siguiente evento:\n\n*\$title*\n\nCuándo: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender ha delegado la participación en el siguiente evento a usted:\n\n*\$title*\n\nCuándo: \$date";
$labels['itipdeclineevent'] = '¿Quiere rechazar la invitación a este evento?';
$labels['declinedeleteconfirm'] = '¿Quiere también eliminar este evento rechazado de su calendario?';
$labels['itipcomment'] = 'Comentario de la invitación/notificación';
$labels['itipcommenttitle'] = 'Este comentario será adjuntado al mensaje de invitación/notificación enviado a los participantes';
$labels['notanattendee'] = 'No esta incluído en la lista de invitados a este evento';
$labels['eventcancelled'] = 'El evento ha sido cancelado';
$labels['saveincalendar'] = 'guardar en';
$labels['updatemycopy'] = 'Actualizar mi calendario';
$labels['savetocalendar'] = 'Guardar en el calendario';
$labels['openpreview'] = 'Comprobar Calendario';
$labels['noearlierevents'] = 'No hay eventos anteriores';
$labels['nolaterevents'] = 'No hay eventos posteriores';
$labels['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';
$labels['tabrecurrence'] = 'Recurrencia';
$labels['tabattendees'] = 'Participantes';
$labels['tabresources'] = 'Recursos';
$labels['tabattachments'] = 'Adjuntos';
$labels['tabsharing'] = 'Compartir';
$labels['deleteobjectconfirm'] = 'Confirme que desea eliminar este evento';
$labels['deleteventconfirm'] = 'Confirme que desea eliminar este evento';
$labels['deletecalendarconfirm'] = 'Confirme que desea eliminar este calendario con todos sus eventos';
$labels['deletecalendarconfirmrecursive'] = 'Confirme que desea eliminar este calendario con todos sus eventos y sub-calendarios';
$labels['savingdata'] = 'Guardando...';
$labels['errorsaving'] = 'Falló guardando los cambios.';
$labels['operationfailed'] = 'La operación falló.';
$labels['invalideventdates'] = 'Ingresó fechas erroneas. Por favor compruebe los datos.';
$labels['invalidcalendarproperties'] = 'Propiedades del calendario erroneas. Por favor ingrese un nombre válido.';
$labels['searchnoresults'] = 'No hay eventos en los calendarios seleccionados.';
$labels['successremoval'] = 'El evento ha sido eliminado exitosamente.';
$labels['successrestore'] = 'El evento ha sido recuperado exitosamente.';
$labels['errornotifying'] = 'Fallo al enviar las notificaciones del evento a los participantes';
$labels['errorimportingevent'] = 'Fallo al importar el evento';
$labels['importwarningexists'] = 'Una copia de este evento ya existe en su calendario.';
$labels['newerversionexists'] = 'Ya existe una versión actualizada de este evento. Cancelado.';
$labels['nowritecalendarfound'] = 'No hay calendarios para guardar el evento.';
$labels['importedsuccessfully'] = 'El evento fue guardado en \'$calendar\' exitosamente';
$labels['updatedsuccessfully'] = 'El evento fue actualizado exitosamente en \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Se actualizaron los estados de los participantes exitosamente';
$labels['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';
$labels['sentresponseto'] = 'Se envió la respuesta a la invitación $mailto exitosamente';
$labels['localchangeswarning'] = 'Se realizarán cambios que sólo serán reflejadas en su calendario y no serán enviadas al organizador del evento';
$labels['importsuccess'] = 'Importados $nr eventos exitosamente';
$labels['importnone'] = 'No se importaron eventos';
$labels['importerror'] = 'Fallo al importar';
$labels['aclnorights'] = 'No tiene permisos de administrador en este calendario.';
$labels['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?';
$labels['removerecurringeventwarning'] = 'Este es un evento recurrente. ¿Desea eliminar solo el evento actual, este y las ocurrencias futuras o todas las ocurrencias del evento?';
$labels['removerecurringallonly'] = 'Este es un evento recurrente. Como participante, usted solamente puede eliminar el evento completo con todas las ocurrencias.';
$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';
$labels['birthdayscalendarsources'] = 'De estas libretas de direcciones';
$labels['birthdayeventtitle'] = 'Cumpleaños de $name';
$labels['birthdayage'] = 'Edad $age';
$labels['objectchangelog'] = 'Cambiar Historial';
$labels['objectdiff'] = 'Cambios de $rev1 a $rev2';
$labels['objectnotfound'] = 'Fallo al cargar datos del evento';
$labels['objectchangelognotavailable'] = 'Cambiar historial no esta disponible para este evento';
$labels['objectdiffnotavailable'] = 'No es posible comparar las revisiones seleccionadas';
$labels['revisionrestoreconfirm'] = 'Confirme que quiere recuperar la revisión $rev de este evento. Esta acción reemplazará el evento actual con la versión anterior.';
$labels['objectrestoresuccess'] = 'Revisión $rev recuperada exitosamente';
$labels['objectrestoreerror'] = 'Fallo al restaurar el evento anterior';
$labels['arialabelminical'] = 'Selección de fecha del calendario';
$labels['arialabelcalendarview'] = 'Vista del calendario';
$labels['arialabelsearchform'] = 'Formulario de búsqueda de evento';
$labels['arialabelquicksearchbox'] = 'Entrada de búsqueda de evento';
$labels['arialabelcalsearchform'] = 'Formulario de búsqueda de calendario';
$labels['calendaractions'] = 'Acciones del calendario';
$labels['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';
?>

View file

@ -1,39 +1,267 @@
<?php
/**
* RoundCube Calendar
*
* Plugin to add a calendar to RoundCube.
*
* @version 0.2 BETA 3
* @author Lazlo Westerhof
* @author David Iribas
* @url http://rc-calendar.lazlo.me
* @licence GNU GPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
*
**/
$labels = array();
// config
$labels['default_view'] = 'Vista por defecto';
$labels['time_format'] = 'Formato hora';
$labels['timeslots'] = 'Periodos de hora';
$labels['first_day'] = 'Primer dia';
// calendar
$labels['calendar'] = 'Calendario';
$labels['day'] = 'Dia';
$labels['week'] = 'Semana';
$labels['month'] = 'Mes';
$labels['new_event'] = 'Nuevo evento';
$labels['edit_event'] = 'Editar evento';
$labels['save'] = 'Guardar';
$labels['remove'] = 'Borrar';
$labels['cancel'] = 'Cancelar';
$labels['title'] = 'Resumen';
$labels['description'] = 'Descripcion';
$labels['all-day'] = 'dia-completo';
$labels['export'] = 'Exportar a ICS';
$labels['category'] = 'Categoria';
?>
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Vista predeterminada';
$labels['time_format'] = 'Formato de tiempo';
$labels['timeslots'] = 'Los intervalos de tiempo por hora';
$labels['first_day'] = 'Primer día de la semana';
$labels['first_hour'] = 'Primera hora para mostrar';
$labels['workinghours'] = 'Horas laborales';
$labels['add_category'] = 'Añadir categoría';
$labels['remove_category'] = 'Borrar la categoría';
$labels['defaultcalendar'] = 'Crear nuevos eventos en';
$labels['eventcoloring'] = 'Evento para colorear';
$labels['coloringmode0'] = 'De acuerdo con el calendario';
$labels['coloringmode1'] = 'De acuerdo con la categoría';
$labels['coloringmode2'] = 'Calendario para el esquema, la categoría de contenido';
$labels['coloringmode3'] = 'Calendario para el esquema, la categoría de contenido';
$labels['afternothing'] = 'No hacer nada';
$labels['aftertrash'] = 'Mover a la papelera';
$labels['afterdelete'] = 'Eliminar el mensaje';
$labels['afterflagdeleted'] = 'Marcar como eliminado';
$labels['aftermoveto'] = 'Mover a...';
$labels['itipoptions'] = 'Invitaciones 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['name'] = 'Nombre';
$labels['color'] = 'Color';
$labels['day'] = 'Día';
$labels['week'] = 'Semana';
$labels['month'] = 'Mes';
$labels['agenda'] = 'Agenda';
$labels['new'] = 'Nuevo';
$labels['new_event'] = 'Nuevo evento';
$labels['edit_event'] = 'Editar evento';
$labels['edit'] = 'Editar';
$labels['save'] = 'Guardar';
$labels['removelist'] = 'Borrar de la lista';
$labels['cancel'] = 'Cancelar';
$labels['select'] = 'Seleccionar';
$labels['print'] = 'Imprimir';
$labels['printtitle'] = 'Imprimir calendarios';
$labels['title'] = 'Resumen';
$labels['description'] = 'Descripción';
$labels['all-day'] = 'Todo el día';
$labels['export'] = 'Exportar';
$labels['exporttitle'] = 'Exportar a iCalendar';
$labels['exportrange'] = 'Eventos de';
$labels['exportattachments'] = 'con los adjuntos';
$labels['customdate'] = 'Fecha personalizada';
$labels['location'] = 'Ubicación';
$labels['url'] = 'URL';
$labels['date'] = 'Fecha';
$labels['start'] = 'Inicio';
$labels['starttime'] = 'Tiempo de inicio';
$labels['end'] = 'Fin';
$labels['endtime'] = 'Hora de finalización';
$labels['repeat'] = 'Repetir';
$labels['selectdate'] = 'Seleccione la fecha';
$labels['freebusy'] = 'Mostrarme como';
$labels['free'] = 'Disponible';
$labels['busy'] = 'Ocupado';
$labels['outofoffice'] = 'Fuera de la oficina';
$labels['tentative'] = 'Provisional';
$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';
$labels['private'] = 'Privada';
$labels['confidential'] = 'Confidencial';
$labels['links'] = 'Referencia';
$labels['alarms'] = 'Recordatorio';
$labels['comment'] = 'Comentario';
$labels['created'] = 'Creado';
$labels['changed'] = 'Última modificación';
$labels['unknown'] = 'Desconocido';
$labels['eventoptions'] = 'Opciones';
$labels['generated'] = 'Creado a las';
$labels['eventhistory'] = 'Historial';
$labels['removelink'] = 'Eliminar la referencia de correo electrónico';
$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';
$labels['importevents'] = 'Importar eventos';
$labels['importrange'] = 'Eventos de';
$labels['onemonthback'] = '1 mes atrás';
$labels['nmonthsback'] = '$nr meses atrás';
$labels['showurl'] = 'Mostrar URL del calendario';
$labels['showurldescription'] = 'Usar la siguiente dirección para acceder (sólo lectura) en su calendario desde otras aplicaciones. Puede copiar y pegar esto en cualquier software de calendario que admita el formato iCal.';
$labels['caldavurldescription'] = 'Copie esta dirección en un <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> cliente (Evolution o Mozilla Thunderbird) para sincronizar esta tarea con su ordenador o celular.';
$labels['findcalendars'] = 'Buscar calendarios ...';
$labels['searchterms'] = 'Buscar términos';
$labels['calsearchresults'] = 'Calendarios disponibles';
$labels['calendarsubscribe'] = 'Lista Permanente';
$labels['nocalendarsfound'] = 'No se han encontrado calendarios';
$labels['nrcalendarsfound'] = '$nr calendarios encontrados';
$labels['quickview'] = 'Ver solo este calendario';
$labels['invitationspending'] = 'Invitaciones pendientes';
$labels['invitationsdeclined'] = 'Invitaciones rechazada';
$labels['changepartstat'] = 'Cambiar el estado del participante';
$labels['rsvpcomment'] = 'Texto de la invitación';
$labels['listrange'] = 'Rango de visualización:';
$labels['listsections'] = 'Dividir en:';
$labels['smartsections'] = 'Secciones inteligentes';
$labels['until'] = 'hasta';
$labels['today'] = 'Hoy';
$labels['tomorrow'] = 'Mañana';
$labels['thisweek'] = 'Esta semana';
$labels['nextweek'] = 'Próxima semana';
$labels['prevweek'] = 'Semana pasada';
$labels['thismonth'] = 'Este mes';
$labels['nextmonth'] = 'Próximo mes';
$labels['weekofyear'] = 'Semana';
$labels['pastevents'] = 'Pasado';
$labels['futureevents'] = 'Futuro';
$labels['showalarms'] = 'Mostrar recordatorios';
$labels['defaultalarmtype'] = 'Configuración predeterminada del recordatorio';
$labels['defaultalarmoffset'] = 'Tiempo de aviso predeterminado';
$labels['attendee'] = 'Participante';
$labels['role'] = 'Rol';
$labels['availability'] = 'Disponible';
$labels['confirmstate'] = 'Estado';
$labels['addattendee'] = 'Añada participante';
$labels['roleorganizer'] = 'Organizador';
$labels['rolerequired'] = 'Requerido';
$labels['roleoptional'] = 'Opcional';
$labels['rolechair'] = 'Silla';
$labels['rolenonparticipant'] = 'Ausente';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Grupo';
$labels['cutyperesource'] = 'Recurso';
$labels['cutyperoom'] = 'Habitación';
$labels['availfree'] = 'Disponible';
$labels['availbusy'] = 'Ocupado';
$labels['availunknown'] = 'Desconocido';
$labels['availtentative'] = 'Provisional';
$labels['availoutofoffice'] = 'Fuera de la oficina';
$labels['scheduletime'] = 'Buscar disponibilidad';
$labels['sendinvitations'] = 'Enviar invitaciones';
$labels['sendnotifications'] = 'Notificar a los participantes acerca de las modificaciones';
$labels['sendcancellation'] = 'Notificar a los participantes sobre la cancelación de eventos';
$labels['onlyworkinghours'] = 'Encuentra disponibilidad dentro de mis horas de trabajo';
$labels['reqallattendees'] = 'Requeridos/todos los participantes';
$labels['prevslot'] = 'Ranura anterior';
$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['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";
$labels['itipmailbodytentative'] = "\$sender ha aceptado provisionalmente la invitación al evento siguiente:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender ha declinado la invitación al evento siguiente:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodycancel'] = "\$sender ha rechazado su participación en el evento siguiente:\n\n*\$title*\n\nWhen: \$date";
$labels['itipmailbodydelegated'] = "\$sender ha delegado la participación en el evento siguiente:\n\n*\$title*\n\nWhen: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender ha delegado la participación en el siguiente evento a usted:\n\n*\$title*\n\nWhen: \$date";
$labels['itipdeclineevent'] = '¿Quieres rechazar la invitación a este evento?';
$labels['declinedeleteconfirm'] = '¿Usted también desea eliminar este declinado evento del calendario?';
$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';
?>

View file

@ -1,230 +1,163 @@
<?php
$labels = array();
// preferences
$labels['default_view'] = 'Vaikevaade';
$labels['time_format'] = 'Aja vorming';
$labels['timeslots'] = 'Ajaühikuid päevas';
$labels['first_day'] = 'Esimene päev';
$labels['first_hour'] = 'Esimene tund';
$labels['workinghours'] = 'Tööaeg';
/**
* 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'] = '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'] = 'Kustuta kategooria';
$labels['defaultcalendar'] = 'Loo uued sündmused';
$labels['eventcoloring'] = 'Sündmuste värvid';
$labels['remove_category'] = 'Eemalda kategooria';
$labels['eventcoloring'] = 'Ürituste värv';
$labels['coloringmode0'] = 'Vastavalt kalendrile';
$labels['coloringmode1'] = 'Vastavalt kategooriale';
$labels['coloringmode2'] = 'Kalender väljaspool, kategooria sisul';
$labels['coloringmode3'] = 'Kategooria väljaspool, kalender sisul';
// calendar
$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['createcalendar'] = 'Uus kalender';
$labels['editcalendar'] = 'Muuda seadeid';
$labels['addcalendar'] = 'Lisa kalender';
$labels['createcalendar'] = 'Loo uus kalender';
$labels['name'] = 'Nimi';
$labels['color'] = 'Värv';
$labels['day'] = 'Päev';
$labels['week'] = 'Nädal';
$labels['month'] = 'Kuu';
$labels['agenda'] = 'Agenda';
$labels['agenda'] = 'Ajakava';
$labels['new'] = 'Uus';
$labels['new_event'] = 'Uus sündmus';
$labels['edit_event'] = 'Muuda sündmust';
$labels['edit'] = 'Redigeeri';
$labels['edit'] = 'Muuda';
$labels['save'] = 'Salvesta';
$labels['remove'] = 'Kustuta';
$labels['cancel'] = 'Tühista';
$labels['select'] = 'Märgi';
$labels['print'] = 'Trüki';
$labels['printtitle'] = 'Trüki kalendrid';
$labels['removelist'] = 'Eemalda nimekirjast';
$labels['cancel'] = 'Loobu';
$labels['select'] = 'Vali';
$labels['print'] = 'Prindi';
$labels['printtitle'] = 'Prindi kalendrid';
$labels['title'] = 'Kokkuvõte';
$labels['description'] = 'Selgitus';
$labels['all-day'] = 'kogu päev';
$labels['description'] = 'Kirjeldus';
$labels['all-day'] = 'kogu-päev';
$labels['export'] = 'Ekspordi';
$labels['exporttitle'] = 'Ekspordi iCalendar';
$labels['location'] = 'Askukoht';
$labels['exporttitle'] = 'Ekspordi iCalendar-isse';
$labels['exportattachments'] = 'Manusega';
$labels['location'] = 'Asukoht';
$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 mind';
$labels['free'] = 'vabana';
$labels['busy'] = 'hõivatuna';
$labels['outofoffice'] = 'kontorist eemal';
$labels['tentative'] = 'ei tea';
$labels['priority'] = 'Prioriteet';
$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'] = 'varjatud';
$labels['private'] = 'privaatne';
$labels['confidential'] = 'konfidentsiaalne';
$labels['links'] = 'Viide';
$labels['alarms'] = 'Meeldetuletus';
$labels['generated'] = 'loodud';
$labels['printdescriptions'] = 'Väljuta kirjeldus';
$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['searchearlierdates'] = '« Otsi varasemaid sündmusi';
$labels['searchlaterdates'] = 'Otsi hilisemaid sündmusi »';
$labels['andnmore'] = '$nr rohkem...';
$labels['togglerole'] = 'Kliki rolli muutmiseks';
$labels['earlierevents'] = 'Varem';
$labels['laterevents'] = 'Hiljem';
$labels['andnmore'] = 'veel $nr ...';
$labels['createfrommail'] = 'Salvesta sündmusena';
$labels['importevents'] = 'Impordi sündmused';
$labels['importrange'] = 'Sündmused alates';
$labels['importevents'] = 'Impordi sündmuseid';
$labels['onemonthback'] = '1 kuu tagasi';
$labels['nmonthsback'] = '$nr kuud tagasi';
$labels['showurl'] = 'Näita kalendi URLi';
$labels['showurldescription'] = 'Kasuta seda aadressi kalendri lugemisõiguse andmiseks iCal vormingus.';
// agenda view
$labels['listrange'] = 'Näita ajavahemikku:';
$labels['listsections'] = 'Jaga:';
$labels['smartsections'] = 'nutikad osad';
$labels['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['thismonth'] = 'Sel kuul';
$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ädal aastas';
$labels['pastevents'] = 'Möödunud';
$labels['futureevents'] = 'Tulevased';
// alarm/reminder settings
$labels['weekofyear'] = 'NädalNädal';
$labels['pastevents'] = 'Minevikus';
$labels['futureevents'] = 'Tulevikus';
$labels['showalarms'] = 'Näita meeldetuletusi';
$labels['defaultalarmtype'] = 'Meeldetuletuse vaiketüüp';
$labels['defaultalarmoffset'] = 'Meeldetuletuse vaikeaeg';
// attendees
$labels['attendee'] = 'Ósavõtja';
$labels['attendee'] = 'Osaleja';
$labels['role'] = 'Roll';
$labels['availability'] = 'Saadavus';
$labels['confirmstate'] = 'Staatus';
$labels['availability'] = 'Saadaval';
$labels['confirmstate'] = 'Steatus';
$labels['addattendee'] = 'Lisa osaleja';
$labels['roleorganizer'] = 'Korraldaja';
$labels['rolerequired'] = 'Vajalik';
$labels['roleoptional'] = 'Teised';
$labels['roleresource'] = 'Ressurss';
$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['availtentative'] = 'Tinglik';
$labels['availoutofoffice'] = 'Kontorist eemal';
$labels['scheduletime'] = 'Otsi saadavust';
$labels['availoutofoffice'] = 'Pole kontoris';
$labels['sendinvitations'] = 'Saada kutsed';
$labels['sendnotifications'] = 'Anna osavõtjaile muutustest teada';
$labels['sendcancellation'] = 'Anna osavõtjaile tühistamisest teada';
$labels['onlyworkinghours'] = 'Leia vaba aeg minu tööajast';
$labels['reqallattendees'] = 'Vajalikud/teised osavõtjad';
$labels['prevslot'] = 'Eelnev aeg';
$labels['nextslot'] = 'Järgnev aeg';
$labels['noslotfound'] = 'Ei õnnestu leida vaba aega';
$labels['invitationsubject'] = 'Olete kutsutud "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
$labels['eventupdatesubject'] = '"$title" has been updated';
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
$labels['eventcancelsubject'] = '"$title" has been canceled';
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
// invitation handling
$labels['itipinvitation'] = 'Invitation to';
$labels['itipupdate'] = 'Update of';
$labels['itipcancellation'] = 'Cancelled:';
$labels['itipreply'] = 'Reply to';
$labels['itipaccepted'] = 'Accept';
$labels['itiptentative'] = 'Maybe';
$labels['itipdeclined'] = 'Decline';
$labels['itipsubjectaccepted'] = '"$title" has been accepted by $name';
$labels['itipsubjecttentative'] = '"$title" has been tentatively accepted by $name';
$labels['itipsubjectdeclined'] = '"$title" has been declined by $name';
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
$labels['importtocalendar'] = 'Salvesta minu kalendrisse';
$labels['removefromcalendar'] = 'Kustuta kalendrist';
$labels['updateattendeestatus'] = 'Värskenda osavõtja staatust';
$labels['acceptinvitation'] = 'Kas kutse vastu võtta?';
$labels['youhaveaccepted'] = 'Oled kutse vastu võtnud';
$labels['youhavetentative'] = 'Oled kutse tingimisi vastu võtnud';
$labels['youhavedeclined'] = 'Oled kutsest keeldunud';
$labels['notanattendee'] = 'Sa ei ole osavõtjate nimekirjas';
$labels['eventcancelled'] = 'Sündmus on tühistatud';
$labels['saveincalendar'] = 'salvesta';
// event dialog tabs
$labels['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'] = 'Osavõtjad';
$labels['tabattendees'] = 'Osalejad';
$labels['tabresources'] = 'Ressursid';
$labels['tabattachments'] = 'Manused';
$labels['tabsharing'] = 'Jagamine';
// messages
$labels['deleteventconfirm'] = 'Kas tõsti kustutada see sündmus?';
$labels['deletecalendarconfirm'] = 'Kas tõesti kustutada see kalender koos kõigi sündmustega?';
$labels['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'] = 'Andmete salvestamine ebaõnnestus.';
$labels['operationfailed'] = 'Operatsioon nurjus.';
$labels['invalideventdates'] = 'Kuupäev on vigane! Kontrollige vormingut.';
$labels['invalidcalendarproperties'] = 'Vigane kalendri atribuut! Valige sobiv atribuut.';
$labels['searchnoresults'] = 'Sellest kalendrist ei leitud ühtki sündmust.';
$labels['successremoval'] = 'Sündmus on edukalt kustutatud.';
$labels['successrestore'] = 'Sündmus on edukalt taastatud.';
$labels['errornotifying'] = 'Teate saatmine osavõtjaile ebaõnnestus.';
$labels['errorimportingevent'] = 'Sündmuse import ebaõnnestus.';
$labels['newerversionexists'] = 'Uuem versioon sündmusest on juba olemas! Täitmine peatatud.';
$labels['nowritecalendarfound'] = 'Kirjutamiseks sobivat kalendrit ei leitud.';
$labels['importedsuccessfully'] = 'Sündmus on edukalt lisatud kalendrisse \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Osavõtja staatus on uuendatud';
$labels['itipsendsuccess'] = 'Kutse on saadetud osavõtjaile.';
$labels['itipresponseerror'] = 'Vastuse saatmine kutsele ebaõnnestus.';
$labels['itipinvalidrequest'] = 'See kutse pole enam kehtiv.';
$labels['sentresponseto'] = 'Vastus kutsele on edukalt saadetud aadressile $mailto';
$labels['localchangeswarning'] = 'Muutuseid on näha ainult teie isiklikus kalendris.';
$labels['importsuccess'] = 'Edukalt imporditud $nr sündmust';
$labels['importnone'] = 'Ühtki imporditavat sündmust ei leitud';
$labels['importerror'] = 'Importimise käigus tekkis viga';
$labels['aclnorights'] = 'Ei ole selle kalendri administreerimisõigusi.';
// recurrence form
$labels['repeat'] = 'Korda';
$labels['frequency'] = 'Sagedus';
$labels['never'] = 'mitte kunagi';
$labels['daily'] = 'iga päev';
$labels['weekly'] = 'nädalati';
$labels['monthly'] = 'iga kuu';
$labels['yearly'] = 'iga aasta';
$labels['every'] = 'Iga';
$labels['days'] = 'päevad';
$labels['weeks'] = 'nädalad';
$labels['months'] = 'kuud';
$labels['years'] = 'aastad:';
$labels['bydays'] = 'On';
$labels['untildate'] = 'the';
$labels['each'] = 'Iga';
$labels['onevery'] = 'Igal';
$labels['onsamedate'] = 'samal kuupäeval';
$labels['forever'] = 'alati';
$labels['recurrencend'] = 'kuni';
$labels['forntimes'] = ' $nr korda';
$labels['first'] = 'esimesel';
$labels['second'] = 'teisel';
$labels['third'] = 'kolmandal';
$labels['fourth'] = 'neljandal';
$labels['last'] = 'viimasel';
$labels['dayofmonth'] = 'Kuupäev';
$labels['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['changerecurringeventwarning'] = 'See on korduv sündmus. Kas muuta seda sündmust, seda ja kõiki järgnevaid, või salvestada uue sündmusena?';
$labels['removerecurringeventwarning'] = 'See on korduv sündmus. Kas kustudada see sündmus, see ja kõik järgnevad sündmused?';
$labels['currentevent'] = 'Praegune';
$labels['futurevents'] = 'Tulevikusündmused';
$labels['allevents'] = 'Kõik sündmused';
$labels['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';
?>

280
localization/fi_FI.inc Normal file
View file

@ -0,0 +1,280 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Oletusnäkymä';
$labels['time_format'] = 'Aikamuoto';
$labels['timeslots'] = 'Ajankohdat per tunti';
$labels['first_day'] = 'Viikon ensimmäinen päivä';
$labels['first_hour'] = 'Ensimmäinen näytettävä tunti';
$labels['workinghours'] = 'Työaika';
$labels['add_category'] = 'Lisää luokka';
$labels['remove_category'] = 'Poista luokka';
$labels['defaultcalendar'] = 'Luo uudet tapahtumat kohteeseen';
$labels['eventcoloring'] = 'Tapahtuman väritys';
$labels['coloringmode0'] = 'Kalenterin mukaan';
$labels['coloringmode1'] = 'Luokan mukaan';
$labels['afternothing'] = 'Älä tee mitään';
$labels['aftertrash'] = 'Siirrä roskakoriin';
$labels['afterdelete'] = 'Poista viesti';
$labels['afterflagdeleted'] = 'Merkitse poistettavaksi';
$labels['aftermoveto'] = 'Siirrä...';
$labels['itipoptions'] = 'Tapahtuman kutsut';
$labels['afteraction'] = 'Kun kutsu tai päivitysviesti on käsitelty';
$labels['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['name'] = 'Nimi';
$labels['color'] = 'Väri';
$labels['day'] = 'Päivä';
$labels['week'] = 'Viikko';
$labels['month'] = 'Kuukausi';
$labels['agenda'] = 'Asialista';
$labels['new'] = 'Uusi';
$labels['new_event'] = 'Uusi tapahtuma';
$labels['edit_event'] = 'Muokkaa tapahtumaa';
$labels['edit'] = 'Muokkaa';
$labels['save'] = 'Tallenna';
$labels['removelist'] = 'Poista listasta';
$labels['cancel'] = 'Peru';
$labels['select'] = 'Valitse';
$labels['print'] = 'Tulosta';
$labels['printtitle'] = 'Tulosta kalenterit';
$labels['title'] = 'Yhteenveto';
$labels['description'] = 'Kuvaus';
$labels['all-day'] = 'koko päivä';
$labels['export'] = 'Vie';
$labels['exporttitle'] = 'Vie iCalendar-muotoon';
$labels['exportrange'] = 'Tapahtumat';
$labels['exportattachments'] = 'Liitteiden kanssa';
$labels['customdate'] = 'Kustomoitu aika';
$labels['location'] = 'Sijainti';
$labels['url'] = 'Osoite';
$labels['date'] = 'Päiväys';
$labels['start'] = 'Alkaa';
$labels['starttime'] = 'Aloitusaika';
$labels['end'] = 'Päättyy';
$labels['endtime'] = 'Päättymisaika';
$labels['repeat'] = 'Toista';
$labels['selectdate'] = 'Valitse päiväys';
$labels['freebusy'] = 'Aseta tilakseni';
$labels['free'] = 'Vapaa';
$labels['busy'] = 'Varattu';
$labels['outofoffice'] = 'Ei toimistolla';
$labels['tentative'] = 'Alustava';
$labels['mystatus'] = 'Tilani';
$labels['status'] = 'Tila';
$labels['status-confirmed'] = 'Vahvistettu';
$labels['status-cancelled'] = 'Peruttu';
$labels['status-tentative'] = 'Alustava';
$labels['priority'] = 'Tärkeys';
$labels['sensitivity'] = 'Yksityisyys';
$labels['public'] = 'julkinen';
$labels['private'] = 'yksityinen';
$labels['confidential'] = 'luottamuksellinen';
$labels['links'] = 'Viittaus';
$labels['alarms'] = 'Muistutus';
$labels['comment'] = 'Kommentti';
$labels['created'] = 'Luotu';
$labels['changed'] = 'Viimeksi muokattu';
$labels['unknown'] = 'Tuntematon';
$labels['eventoptions'] = 'Valinnat';
$labels['generated'] = 'generoitu';
$labels['eventhistory'] = 'Historia';
$labels['removelink'] = 'Poista sähköpostiviittaus';
$labels['printdescriptions'] = 'Tulosta kuvaukset';
$labels['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';
$labels['importevents'] = 'Tuo tapahtumat';
$labels['importrange'] = 'Tapahtumat';
$labels['onemonthback'] = '1 kuukauden ajalta';
$labels['nmonthsback'] = '$nr kuukauden ajalta';
$labels['showurl'] = 'Näytä kalenterin osoite';
$labels['showurldescription'] = 'Käytä seuraavia osoitteita avataksesi kalenterisi pelkässä lukumuodossa muissa sovelluksissa. Voit kopioida ja liittää osoitteen mihin tahansa iCal-muotoa tukevaan kalenterisovellukseen.';
$labels['caldavurldescription'] = 'Kopioi tämä osoite <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a-asiakassovellukseen (esim. Evolution tai Mozilla Thunderbird) synkronoidaksesi tämän kalenterin tietokoneesi tai mobiililaitteesi kanssa.';
$labels['findcalendars'] = 'Etsi kalentereita...';
$labels['searchterms'] = 'Hakuehdot';
$labels['findevents'] = 'Etsi tapahtumia';
$labels['calsearchresults'] = 'Saatavilla olevat kalenterit';
$labels['calendarsubscribe'] = 'Luetteloi pysyvästi';
$labels['nocalendarsfound'] = 'Kalentereita ei löytynyt';
$labels['nrcalendarsfound'] = '$nr kalenteria löytynyt';
$labels['quickview'] = 'Näytä vain tämä kalenteri';
$labels['invitationspending'] = 'Odottavat kutsut';
$labels['invitationsdeclined'] = 'Torjutut kutsut';
$labels['changepartstat'] = 'Muuta osallistujan tilaa';
$labels['rsvpcomment'] = 'Kutsuteksti';
$labels['weekshort'] = 'Vko';
$labels['listrange'] = 'Näytettävä aikaväli';
$labels['listsections'] = 'Jaa osiin:';
$labels['smartsections'] = 'Älykkäät osiot';
$labels['until'] = 'kunnes';
$labels['today'] = 'Tänään';
$labels['tomorrow'] = 'Huomenna';
$labels['thisweek'] = 'Tällä viikolla';
$labels['nextweek'] = 'Ensi viikolla';
$labels['prevweek'] = 'Edellinen viikko';
$labels['thismonth'] = 'Tässä kuussa';
$labels['nextmonth'] = 'Ensi kuussa';
$labels['weekofyear'] = 'Viikko';
$labels['pastevents'] = 'Menneet';
$labels['futureevents'] = 'Tulevat';
$labels['showalarms'] = 'Näytä muistutukset';
$labels['defaultalarmtype'] = 'Muistutuksen oletusasetus';
$labels['defaultalarmoffset'] = 'Muistutuksen oletusaika';
$labels['attendee'] = 'Osallistujat';
$labels['role'] = 'Rooli';
$labels['availability'] = 'Saatavilla';
$labels['confirmstate'] = 'Tila';
$labels['addattendee'] = 'Lisää osallistuja';
$labels['roleorganizer'] = 'Järjestäjä';
$labels['rolerequired'] = 'Vaadittu';
$labels['roleoptional'] = 'Valinnainen';
$labels['rolechair'] = 'Kutsuja';
$labels['rolenonparticipant'] = 'Poissaoleva';
$labels['cutypeindividual'] = 'Yksityishenkilö';
$labels['cutypegroup'] = 'Ryhmä';
$labels['cutyperesource'] = 'Resurssi';
$labels['cutyperoom'] = 'Huone';
$labels['availfree'] = 'Vapaa';
$labels['availbusy'] = 'Varattu';
$labels['availunknown'] = 'Tuntematon';
$labels['availtentative'] = 'Alustava';
$labels['availoutofoffice'] = 'Ei toimistolla';
$labels['scheduletime'] = 'Etsi saatavuus';
$labels['sendinvitations'] = 'Lähetä kutsut';
$labels['sendnotifications'] = 'Ilmoita osallistujille muutoksista';
$labels['sendcancellation'] = 'Ilmoita osallistujille tapahtuman perumisesta';
$labels['onlyworkinghours'] = 'Etsi saatavuutta työajan sisältä';
$labels['reqallattendees'] = 'Vaadittu/kaikki osallistujat';
$labels['prevslot'] = 'Edellinen ajankohta';
$labels['nextslot'] = 'Seuraava ajankohta';
$labels['suggestedslot'] = 'Ehdotettu ajankohta';
$labels['noslotfound'] = 'Vapaata ajankohtaa ei löytynyt';
$labels['invitationsubject'] = 'Sinut on kutsuttu tapahtumaan "$title"';
$labels['invitationattendlinks'] = "Mikäli sähköpostiohjelmasi ei tue iTip pyyntöjä, voit aina käyttää ao. osoitetta kutsun hyväksymiseen / hylkäämiseen:\n\$url";
$labels['eventupdatesubject'] = '"$title" on päivitetty';
$labels['eventupdatesubjectempty'] = 'Sinua koskeva tapahtuma on päivitetty';
$labels['eventupdatemailbody'] = "*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees\n\nOhessa iCalendar -tiedosto mistä löytyvät kaikki päivitetyn tapahtuman yksityistiedot. Voit tuoda tämän tiedoston kalenteriohjelmaasi.";
$labels['eventcancelsubject'] = '"$title" on peruttu';
$labels['eventcancelmailbody'] = "*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees\n\nTämä tapahtuma on peruttu \$organizer toimesta.\n\nLöydät liitteenä iCalendar -tiedoston tapahtuman päivitetyin tiedoin.";
$labels['itipobjectnotfound'] = 'Viestissä mainittua tapahtumaa ei löydy kalenteristasi.';
$labels['itipmailbodyaccepted'] = "\$sender on hyväksynyt kutsun seuraavaan tapahtumaan:\n\n*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees";
$labels['itipmailbodytentative'] = "\$sender on alustavasti hyväksynyt kutsun seuraavaan tapahtumaan:\n\n*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender on hylännyt kutsun seuraavaan tapahtumaan:\n\n*\$title*\n\nMilloin: \$date\n\nKutsutut: \$attendees";
$labels['itipmailbodycancel'] = "\$sender on hylännyt osallistumisesi tapahtumaan:\n\n*\$title*\n\nMilloin: \$date";
$labels['itipmailbodydelegated'] = "\$sender on delegoinut osallistumisensa seuraavaan tapahtumaan:\n\n*\$title*\n\nAjankohta: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender on delegoinut osallistumisensa sinulle seuraavaan tapahtumaan:\n\n*\$title*\n\nAjankohta: \$date";
$labels['itipdeclineevent'] = 'Haluatko perua kutsun tähän tapahtumaan?';
$labels['declinedeleteconfirm'] = 'Haluatko poistaa tämän hylätyn tapahtuman kalenteristasi?';
$labels['itipcomment'] = 'Kutsun/herätteen kommentit';
$labels['itipcommenttitle'] = 'Tämä kommentti liitetään osallistujille lähetettävään kutsuun/heräteviestiin';
$labels['notanattendee'] = 'Sinua ei ole määritetty tapahtuman osanottajaksi';
$labels['eventcancelled'] = 'Tapahtuma on peruttu';
$labels['saveincalendar'] = 'tallennuskohde';
$labels['updatemycopy'] = 'Päivitä kalenterini';
$labels['savetocalendar'] = 'Tallenna kalenteriin';
$labels['openpreview'] = 'Tarkista kalenteri';
$labels['noearlierevents'] = 'Ei aiempia tapahtumia';
$labels['nolaterevents'] = 'Ei myöhempiä tapahtumia';
$labels['resource'] = 'Resurssi';
$labels['addresource'] = 'Varaa resurssi';
$labels['findresources'] = 'Etsi resursseja';
$labels['resourcedetails'] = 'Tiedot';
$labels['resourceavailability'] = 'Saatavuus';
$labels['resourceprops'] = 'Resurssin ominaisuudet';
$labels['resourceowner'] = 'Omistaja';
$labels['resourceadded'] = 'Resurssi on liitetty tapahtumaasi';
$labels['tabsummary'] = 'Yhteenveto';
$labels['tabrecurrence'] = 'Toistuminen';
$labels['tabattendees'] = 'Osallistujat';
$labels['tabresources'] = 'Resurssit';
$labels['tabattachments'] = 'Liitteet';
$labels['tabsharing'] = 'Jakaminen';
$labels['deleteobjectconfirm'] = 'Haluatko varmasti poistaa tämän tapahtuman?';
$labels['deleteventconfirm'] = 'Haluatko varmasti poistaa tämän tapahtuman?';
$labels['deletecalendarconfirm'] = 'Haluatko varmasti poistaa tämän kalenterin ja kaikki sen tapahtumat?';
$labels['deletecalendarconfirmrecursive'] = 'Haluatko varmasti poistaa tämän kalenterin ja kaikki sen tapahtumat sekä alikalenterit?';
$labels['savingdata'] = 'Tallennetaan tietoja...';
$labels['errorsaving'] = 'Muutosten tallentaminen epäonnistui.';
$labels['operationfailed'] = 'Pyydetty toiminto epäonnistui.';
$labels['invalideventdates'] = 'Annettu virheellisiä päivämääriä! Tarkista syöte.';
$labels['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.';
$labels['successrestore'] = 'Tapahtuma on palautettu onnistuneesti.';
$labels['errornotifying'] = 'Herätteen lähetys osallistujille epäonnistui';
$labels['errorimportingevent'] = 'Tapahtuman tuonti epäonnistui';
$labels['importwarningexists'] = 'Tämän tapahtuman kopio löytyy jo kalenteristasi';
$labels['newerversionexists'] = 'Uudempi versio tästä tapahtumasta on jo olemassa! Keskeytetty.';
$labels['nowritecalendarfound'] = 'Tapahtuman tallentamiseksi ei löytynyt kalenteria';
$labels['importedsuccessfully'] = 'Tapahtuma lisättiin onnistuneesti kalenteriin \'$calendar\'';
$labels['updatedsuccessfully'] = 'Tapahtuma on onnistuneesti päivitetty kalenterissa \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Osallistujan tila päivitetty onnistuneesti';
$labels['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';
$labels['sentresponseto'] = 'Vastaus kutsuun lähetetty onnistuneesti sähköpostiin $mailto';
$labels['localchangeswarning'] = 'Olet tekemässä muutoksia, jotka vaikuttavat ainoastaan omaan kalenteriisi. Muutoksia ei lähetetä tapahtuman järjestäjälle.';
$labels['importsuccess'] = '$nr tapahtumaa tuotiin onnistuneesti';
$labels['importnone'] = 'Tuotavaksi tarkoitettuja tapahtumia ei löytynyt';
$labels['importerror'] = 'Tuotaessa tapahtui virhe';
$labels['aclnorights'] = 'Sinulla ei ole ylläpitäjän oikeuksia tähän kalenteriin.';
$labels['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? ';
$labels['removerecurringeventwarning'] = 'Tämä on toistuva tapahtuma. Haluatko poistaa vain nykyisen tapahtuman, nykyisen tapahtuman ja tulevaisuuden tapahtumat vai kaikki tapahtumaan liittyvät merkinnät?';
$labels['removerecurringallonly'] = 'Tämä on toistuva tapahtuma. Osallistujana voit poistaa vain koko tapahtuman kaikkine toistumiskertoineen.';
$labels['currentevent'] = 'Nykyinen';
$labels['futurevents'] = 'Tulevat';
$labels['allevents'] = 'Kaikki';
$labels['saveasnew'] = 'Tallenna uutena';
$labels['birthdays'] = 'Syntymäpäivät';
$labels['birthdayscalendar'] = 'Syntymäpäivät kalenteri';
$labels['displaybirthdayscalendar'] = 'Näytä syntymäpäivät kalenterissa';
$labels['birthdayscalendarsources'] = 'Näistä osoitekirjoista';
$labels['birthdayeventtitle'] = 'Syntymäpäivä: $name';
$labels['birthdayage'] = 'Ikä $age';
$labels['objectchangelog'] = 'Muutoshistoria';
$labels['objectdiff'] = 'Muutokset versiosta $rev1 versioon $rev2';
$labels['objectnotfound'] = 'Tapahtuman tietojen lataaminen epäonnistui';
$labels['objectchangelognotavailable'] = 'Tapahtuman muutoshistoria ei ole saatavilla';
$labels['objectdiffnotavailable'] = 'Valituille versioille ei ole mahdollista tehdä vertailua';
$labels['revisionrestoreconfirm'] = 'Haluatko varmasti palauttaa tämän tapahtuman version $rev? Nykyinen tapahtuma korvataan vanhalla versiolla.';
$labels['objectrestoresuccess'] = 'Versio $rev palautettu onnistuneesti';
$labels['objectrestoreerror'] = 'Vanhan version palauttaminen epäonnistui';
$labels['arialabelminical'] = 'Kalenterin ajankohdan valinta';
$labels['arialabelcalendarview'] = 'Kalenterinäkymä';
$labels['arialabelsearchform'] = 'Tapahtumahaun lomake';
$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';
?>

View file

@ -1,30 +1,38 @@
<?php
$labels = array();
// preferences
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Vue par défaut';
$labels['time_format'] = 'Format de l\'heure';
$labels['timeslots'] = 'Nombre d\'intervalle par heure';
$labels['timeslots'] = 'Créneau horaire';
$labels['first_day'] = 'Premier jour de la semaine';
$labels['first_hour'] = 'Première heure à afficher';
$labels['workinghours'] = 'Heures de travail';
$labels['add_category'] = 'Ajouter une catégorie';
$labels['remove_category'] = 'Supprimer une catégorie';
$labels['defaultcalendar'] = 'Ajouter un nouvel évènement';
$labels['eventcoloring'] = 'Couleurs des évènements';
$labels['coloringmode0'] = 'Selon l\'agenda';
$labels['defaultcalendar'] = 'Ajouter un nouvel événement';
$labels['eventcoloring'] = 'Couleurs des événements';
$labels['coloringmode0'] = 'Selon le calendrier';
$labels['coloringmode1'] = 'Selon la catégorie';
$labels['coloringmode2'] = 'Calendrier en contour, catégorie en contenu';
$labels['coloringmode3'] = 'Catégorie en contour, calendrier en contenu';
// calendar
$labels['calendar'] = 'Agenda';
$labels['calendars'] = 'Agendas';
$labels['afternothing'] = 'Ne rien faire';
$labels['aftertrash'] = 'Déplacer dans la corbeille';
$labels['afterdelete'] = 'Supprimer ce message';
$labels['afterflagdeleted'] = 'Marquer comme supprimer';
$labels['aftermoveto'] = 'Déplacer vers...';
$labels['itipoptions'] = 'Invitations à l\'événement';
$labels['afteraction'] = 'Après une invitation ou une modification, le message est traité';
$labels['weeknonone'] = 'jamais';
$labels['calendar'] = 'Calendrier';
$labels['calendars'] = 'Calendriers';
$labels['category'] = 'Catégorie';
$labels['categories'] = 'Catégories';
$labels['createcalendar'] = 'Créer un nouvel agenda';
$labels['editcalendar'] = 'Modifier les propriétés de l\'agenda';
$labels['createcalendar'] = 'Créer un nouveau calendrier';
$labels['name'] = 'Nom';
$labels['color'] = 'Couleur';
$labels['day'] = 'Jour';
@ -32,72 +40,100 @@ $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['remove'] = 'Supprimer';
$labels['removelist'] = 'Supprimer de la liste';
$labels['cancel'] = 'Annuler';
$labels['select'] = 'Sélectionner';
$labels['print'] = 'Imprimer';
$labels['printtitle'] = 'Imprimer les agendas';
$labels['printtitle'] = 'Imprimer les calendriers';
$labels['title'] = 'Résumé';
$labels['description'] = 'Description';
$labels['all-day'] = 'Toute la journée';
$labels['all-day'] = 'toute la journée';
$labels['export'] = 'Exporter';
$labels['exporttitle'] = 'Exporter vers iCalendar';
$labels['exportrange'] = 'Événements depuis';
$labels['exportattachments'] = 'Avec pièces jointes';
$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['end'] = 'Fin';
$labels['endtime'] = 'Heure de fin';
$labels['repeat'] = 'Répéter';
$labels['selectdate'] = 'Sélectionner une date';
$labels['freebusy'] = 'Montrez moi comme';
$labels['freebusy'] = 'Montrez-moi en tant que';
$labels['free'] = 'Libre';
$labels['busy'] = 'Occupé';
$labels['outofoffice'] = 'Absent';
$labels['tentative'] = 'Provisoire';
$labels['mystatus'] = 'Mon statut';
$labels['status'] = 'Statut';
$labels['status-confirmed'] = 'Confirmé';
$labels['status-cancelled'] = 'Annulé';
$labels['status-tentative'] = 'Provisoire';
$labels['priority'] = 'Priorité';
$labels['sensitivity'] = 'Diffusion';
$labels['public'] = 'publique';
$labels['private'] = 'privée';
$labels['confidential'] = 'Confidentiel';
$labels['links'] = 'Référence';
$labels['alarms'] = 'Rappel';
$labels['comment'] = 'Commentaire';
$labels['created'] = 'Créé';
$labels['changed'] = 'Dernière modification';
$labels['unknown'] = 'Inconnu';
$labels['eventoptions'] = 'Options';
$labels['generated'] = 'généré à';
$labels['eventhistory'] = 'Historique';
$labels['removelink'] = 'Enlever référence d\'e-mail';
$labels['printdescriptions'] = 'Imprimer les descriptions';
$labels['parentcalendar'] = 'Ajouter à l\'intérieur';
$labels['searchearlierdates'] = '« Chercher des évènements plus ancien';
$labels['searchlaterdates'] = 'Chercher des évènement plus récent »';
$labels['searchearlierdates'] = '« Chercher des événements plus anciens';
$labels['searchlaterdates'] = 'Chercher des événement plus récents »';
$labels['laterevents'] = 'Plus tard';
$labels['andnmore'] = '$nr de plus...';
$labels['togglerole'] = 'Cliquez pour changer de rôle';
$labels['createfrommail'] = 'Enregistrer comme un évènement';
$labels['importevents'] = 'Importer des évènements';
$labels['importrange'] = 'Évènements depuis';
$labels['onemonthback'] = '1 mois précédent';
$labels['createfrommail'] = 'Enregistrer comme un événement';
$labels['importevents'] = 'Importer des événements';
$labels['importrange'] = 'Événements depuis';
$labels['onemonthback'] = '1 mois auparavant';
$labels['nmonthsback'] = '$nr mois précédents';
$labels['showurl'] = 'Afficher l\'URL de l\'agenda';
$labels['showurldescription'] = 'Utilisez l\'adresse suivante pour accéder(lecture seule) à votre agenda depuis une autre application. Vous pouvez copier/coller celle-ci dans n\'importe quel agenda électronique gérant le format iCal.';
// agenda view
$labels['showurl'] = 'Afficher l\'URL du calendrier';
$labels['showurldescription'] = 'Utilisez l\'adresse suivante pour accéder (lecture seule) à votre calendrier depuis d\'autres applications. Vous pouvez copier/coller celle-ci dans n\'importe quel calendrier électronique gérant le format iCal.';
$labels['caldavurldescription'] = 'Copiez cette adresse vers une application client (comme Evolution ou Mozilla Thunderbird) compatible <a href="http://fr.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> pour synchroniser pleinement ce calendrier avec votre ordinateur ou votre smartphone.';
$labels['findcalendars'] = 'Recherche de calendriers...';
$labels['searchterms'] = 'Critères de recherche';
$labels['calsearchresults'] = 'Calendriers disponibles';
$labels['calendarsubscribe'] = 'Lister définitivement';
$labels['nocalendarsfound'] = 'Aucun calendrier trouvé';
$labels['nrcalendarsfound'] = '$nr calendriers trouvés';
$labels['quickview'] = 'Voir uniquement ce calendrier';
$labels['invitationspending'] = 'Invitations en attente';
$labels['invitationsdeclined'] = 'Invitations refusées';
$labels['changepartstat'] = 'Changer le statut du participant';
$labels['rsvpcomment'] = 'Texte d\'invitation';
$labels['listrange'] = 'Intervalle à afficher :';
$labels['listsections'] = 'Diviser en :';
$labels['smartsections'] = 'Section intelligente';
$labels['smartsections'] = 'Sections intelligentes';
$labels['until'] = 'jusqu\'à';
$labels['today'] = 'Aujourd\'hui';
$labels['tomorrow'] = 'Demain';
$labels['thisweek'] = 'Cette semaine';
$labels['nextweek'] = 'Semaine prochaine';
$labels['thismonth'] = 'Ce mois';
$labels['prevweek'] = 'Semaine précédente';
$labels['thismonth'] = 'Ce mois-ci';
$labels['nextmonth'] = 'Mois prochain';
$labels['weekofyear'] = 'Semaine';
$labels['pastevents'] = 'Passé';
$labels['futureevents'] = 'Futur';
// alarm/reminder settings
$labels['showalarms'] = 'Afficher les alarmes';
$labels['showalarms'] = 'Afficher les rappels';
$labels['defaultalarmtype'] = 'Paramètre de rappel par défaut';
$labels['defaultalarmoffset'] = 'Durée de rappel par défaut';
// attendees
$labels['attendee'] = 'Participant';
$labels['role'] = 'Rôle';
$labels['availability'] = 'Dispo.';
@ -105,8 +141,13 @@ $labels['confirmstate'] = 'Statut';
$labels['addattendee'] = 'Ajouter participant';
$labels['roleorganizer'] = 'Organisateur';
$labels['rolerequired'] = 'Requis';
$labels['roleoptional'] = 'Optionel';
$labels['roleresource'] = 'Ressource';
$labels['roleoptional'] = 'Optionnel';
$labels['rolechair'] = 'Présidence';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Individuel';
$labels['cutypegroup'] = 'Groupe';
$labels['cutyperesource'] = 'Ressource';
$labels['cutyperoom'] = 'Salle';
$labels['availfree'] = 'Disponible';
$labels['availbusy'] = 'Occupé';
$labels['availunknown'] = 'Inconnu';
@ -117,114 +158,110 @@ $labels['sendinvitations'] = 'Envoyer les invitations';
$labels['sendnotifications'] = 'Informer les participants des modifications';
$labels['sendcancellation'] = 'Informer les participants de l\'annulation';
$labels['onlyworkinghours'] = 'Trouver des disponibilités en fonction de mes heures de travail';
$labels['reqallattendees'] = 'Demandé/tous';
$labels['reqallattendees'] = 'Demandé/tous les participants';
$labels['prevslot'] = 'Créneau précédent';
$labels['nextslot'] = 'Créneau suivant';
$labels['suggestedslot'] = 'Emplacement suggéré';
$labels['noslotfound'] = 'Impossible de trouver un créneau disponible';
$labels['invitationsubject'] = 'Vous avez invité à "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les détails de l'évènement que vous pourrez importer dans votre agenda électronique.";
$labels['invitationattendlinks'] = "Dans le cas où votre application de messagerie ne gère pas les demandes \"iTip\". Vous pouvez utiliser ce lien pour accepter ou refuser l'invitation :\n\$url";
$labels['invitationsubject'] = 'Vous avez été invité à "$title"';
$labels['invitationattendlinks'] = "Dans le cas où votre application de messagerie ne gère pas les demandes \"iTip\", vous pouvez utiliser ce lien pour accepter ou refuser l'invitation : \n\$url";
$labels['eventupdatesubject'] = '"$title" a été modifié';
$labels['eventupdatesubjectempty'] = 'Un évènement vous concernant a été modifié';
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nVous trouverez ci-joint un fichier iCalendar avec tous les modifications de l'évènement que vous pourrez importer dans votre agenda électronique.";
$labels['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\nWhen: \$date\n\nInvitees: \$attendees\n\nL'évènement a été annulé par \$organizer.\n\nVous trouverez en pièce jointe un fichier iCalendar avec les modifications de l'évènement que vous pourrez importer dans votre agenda électronique.";
// invitation handling
$labels['itipinvitation'] = 'Invitation à';
$labels['itipupdate'] = 'Mise à jour de';
$labels['itipcancellation'] = 'Annulation:';
$labels['itipreply'] = 'Répondre à';
$labels['itipaccepted'] = 'Accepter';
$labels['itiptentative'] = 'Peut-être';
$labels['itipdeclined'] = 'Refuser';
$labels['itipsubjectaccepted'] = '"$title" a été accepté par $name';
$labels['itipsubjecttentative'] = '"$title" a été accepté provisoirement par $name';
$labels['itipsubjectdeclined'] = '"$title" a été refusé par $name';
$labels['itipmailbodyaccepted'] = "\$sender a accepté l'invitation à l'évènement suivant :\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodytentative'] = "\$sender a accepté provisoirement l'invitation à l'évènement suivant :\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender a refusé l'invitation à l'évènement suivant :\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipdeclineevent'] = 'Voulez-vous refuser l\'invitation à cet évènement?';
$labels['importtocalendar'] = 'Enregistrer mon agenda';
$labels['removefromcalendar'] = 'Supprimer de mon agenda';
$labels['updateattendeestatus'] = 'Modifier le statut des participants';
$labels['acceptinvitation'] = 'Acceptez-vous cette invitation?';
$labels['youhaveaccepted'] = 'Vous avez accepté cette invitation';
$labels['youhavetentative'] = 'Vous avez accepté provisoirement cette invitation';
$labels['youhavedeclined'] = 'Vous avez refusé cette invitation';
$labels['notanattendee'] = 'Vous n\'êtes pas dans la liste des participants à cet évènement';
$labels['eventcancelled'] = 'L\'évènement a été annulé';
$labels['saveincalendar'] = 'Enregistrer sous';
// event dialog tabs
$labels['eventcancelmailbody'] = "*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees\n\nL'événement a été annulé par \$organizer.\n\nVous trouverez en pièce jointe un fichier iCalendar avec les modifications de l'événement que vous pourrez importer dans votre calendrier électronique.";
$labels['itipobjectnotfound'] = 'L\'événement lié à ce message n\'a pas été trouvé dans votre calendrier.';
$labels['itipmailbodyaccepted'] = "\$sender a accepté l'invitation à l'événement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
$labels['itipmailbodytentative'] = "\$sender a accepté provisoirement l'invitation à l'événement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender a refusé l'invitation à l'événement suivant :\n\n*\$title*\n\nQuand: \$date\n\nParticipants: \$attendees";
$labels['itipmailbodycancel'] = "\$sender a rejeté votre participation à lévénement suivant :\n\n*\$title*\n\nLe: \$date";
$labels['itipmailbodydelegated'] = "\$sender a délégué la participation à l'événement suivant : \n\n*\$title*\n\nQuand: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender vous a délégué la participation à l'événement suivant : \n\n*\$title*\n\nQuand : \$date";
$labels['itipdeclineevent'] = 'Voulez-vous refuser l\'invitation à cet événement?';
$labels['declinedeleteconfirm'] = 'Voulez-vous aussi supprimer cet événement annulé de votre calendrier ?';
$labels['itipcomment'] = 'Commentaire dinvitation ou de notification';
$labels['itipcommenttitle'] = 'Ce commentaire sera inséré dans le message d\'invitation ou de notification envoyé aux participants';
$labels['notanattendee'] = 'Vous n\'êtes pas dans la liste des participants à cet événement';
$labels['eventcancelled'] = 'L\'événement a été annulé';
$labels['saveincalendar'] = 'enregistrer sous';
$labels['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['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['tabsummary'] = 'Résumé';
$labels['tabrecurrence'] = 'Récurrence';
$labels['tabattendees'] = 'Participants';
$labels['tabresources'] = 'Ressources';
$labels['tabattachments'] = 'Pièces jointes';
$labels['tabsharing'] = 'Partage';
// messages
$labels['deleteventconfirm'] = 'Voulez-vous vraiment supprimer cet évènement?';
$labels['deletecalendarconfirm'] = 'Voulez-vous vraiment supprimer cet agenda et tous ses évènements?';
$labels['deleteobjectconfirm'] = 'Voulez-vous vraiment supprimer cet événement?';
$labels['deleteventconfirm'] = 'Voulez-vous vraiment supprimer cet événement?';
$labels['deletecalendarconfirm'] = 'Voulez-vous vraiment supprimer ce calendrier et tous ses événements?';
$labels['deletecalendarconfirmrecursive'] = 'Voulez-vous vraiment supprimer ce calendrier avec tous ses événements et ses sous-calendriers ?';
$labels['savingdata'] = 'Enregistrer...';
$labels['errorsaving'] = 'Échec lors de l\'enregistrement des changements';
$labels['operationfailed'] = 'L\'opération demandée a échoué';
$labels['invalideventdates'] = 'Dates invalides! Veuillez vérifier votre saisie.';
$labels['invalidcalendarproperties'] = 'Propriétés d\'agenda invalides! Veuillez saisir un nom valide.';
$labels['searchnoresults'] = 'Pas d\'évènement trouvé dans les agendas sélectionnés.';
$labels['successremoval'] = 'L\'évènement a été supprimé.';
$labels['successrestore'] = 'L\'évènement a été restauré.';
$labels['errornotifying'] = 'Échec de l\'envoi de notification aux participants ';
$labels['errorimportingevent'] = 'Échec de l\'import de l\'évènement';
$labels['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['invalideventdates'] = 'Dates invalides ! Veuillez vérifier votre saisie.';
$labels['invalidcalendarproperties'] = 'Propriétés du calendrier invalides ! Veuillez saisir un nom valide.';
$labels['searchnoresults'] = 'Pas d\'événement trouvé dans les calendriers sélectionnés.';
$labels['successremoval'] = 'L\'événement a été supprimé.';
$labels['successrestore'] = 'L\'événement a été restauré.';
$labels['errornotifying'] = 'Échec de l\'envoi de notifications aux participants ';
$labels['errorimportingevent'] = 'Échec de l\'import de l\'événement';
$labels['importwarningexists'] = 'Une copie de cet événement existe déjà dans votre calendrier.';
$labels['newerversionexists'] = 'Une nouvelle version de cet événement existe ! Abandon.';
$labels['nowritecalendarfound'] = 'Pas de calendrier trouvé pour enregistrer l\'événement';
$labels['importedsuccessfully'] = 'L\'événement a été ajouté à l\'agenda \'$calendar\'';
$labels['updatedsuccessfully'] = 'Cet événement a été modifié avec succès dans \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Le statut des participants a été modifié';
$labels['itipsendsuccess'] = 'Invitation envoyé aux participants.';
$labels['itipresponseerror'] = 'Échec de l\'envoi d\'une réponse à cette invitation.';
$labels['itipinvalidrequest'] = 'C\'est invitation n\'est plus valide.';
$labels['sentresponseto'] = 'La réponse à l\'invitation a été envoyé à $mailto';
$labels['localchangeswarning'] = 'Vous êtes sur le point de faire des changements uniquement visible sur votre agenda personnel.';
$labels['importsuccess'] = '$nr évènements importés.';
$labels['importnone'] = 'Pas d\'évènements à importer';
$labels['importerror'] = 'Une erreur est arrivée lors de l\'import';
$labels['aclnorights'] = 'Vous n\'avez pas les droits d\'administration sur cet agenda.';
// recurrence form
$labels['repeat'] = 'Répéter';
$labels['frequency'] = 'Répéter';
$labels['never'] = 'Jamais';
$labels['daily'] = 'Quotidienne';
$labels['weekly'] = 'Hebdomadaire';
$labels['monthly'] = 'Mensuelle';
$labels['yearly'] = 'Annuelle';
$labels['every'] = 'Tous les';
$labels['days'] = 'jour(s)';
$labels['weeks'] = 'semaine(s)';
$labels['months'] = 'mois';
$labels['years'] = 'année(s) en :';
$labels['bydays'] = 'Le';
$labels['untildate'] = 'le';
$labels['each'] = 'Chaque';
$labels['onevery'] = 'Tous les';
$labels['onsamedate'] = 'à la même date';
$labels['forever'] = 'Pour toujours';
$labels['recurrencend'] = 'Jusqu\'à';
$labels['forntimes'] = '$nr fois';
$labels['first'] = 'premier';
$labels['second'] = 'deuxième';
$labels['third'] = 'troisième';
$labels['fourth'] = 'quatrième';
$labels['last'] = 'dernier';
$labels['dayofmonth'] = 'Jour du mois';
$labels['changeeventconfirm'] = 'Modifier l\'évènement';
$labels['removeeventconfirm'] = 'Supprimer l\'évènement';
$labels['changerecurringeventwarning'] = 'Ceci est un évènement récurant. Voulez vous éditer seulement cette occurrence, celle-ci et toutes les suivantes, toutes les occurrences ou l\'enregistrer comme un nouvel évènement? ';
$labels['removerecurringeventwarning'] = 'Ceci est un évènement récurant. Voulez-vous supprimer seulement cette occurrence, celle-ci et toutes les suivantes ou toutes les occurrences de cet évènement?';
$labels['itipsendsuccess'] = 'Invitation envoyée aux participants.';
$labels['itipresponseerror'] = 'Échec de l\'envoi d\'une réponse à cette invitation';
$labels['itipinvalidrequest'] = 'C\'est invitation n\'est plus valide';
$labels['sentresponseto'] = 'La réponse à l\'invitation a été envoyée à $mailto';
$labels['localchangeswarning'] = 'Vous êtes sur le point d\'effectuer des modifications qui seront effectives dans votre calendrier mais qui ne seront pas envoyées à l\'organisateur de lévénement.';
$labels['importsuccess'] = '$nr événements importés.';
$labels['importnone'] = 'Pas d\'événement à importer';
$labels['importerror'] = 'Une erreur s\'est produite lors de l\'importation';
$labels['aclnorights'] = 'Vous ne disposez pas des droits d\'administrateur sur ce calendrier.';
$labels['changeeventconfirm'] = 'Modifier l\'événement';
$labels['removeeventconfirm'] = 'Supprimer l\'événement';
$labels['changerecurringeventwarning'] = 'Ceci est un événement récurrent. Voulez-vous éditer seulement cette occurrence, celle-ci et toutes les suivantes, toutes les occurrences ou l\'enregistrer comme un nouvel événement ? ';
$labels['removerecurringeventwarning'] = 'Ceci est un événement récurrent. Voulez-vous supprimer l\'événement courant uniquement, lévénement courant et toutes les occurrences futures, ou toutes les occurrences ?';
$labels['removerecurringallonly'] = 'Ceci est un événement récurrent. En tant que participant, vous pouvez seulement supprimer l\'événement entier avec toutes les occurrences.';
$labels['currentevent'] = 'Cette occurrence';
$labels['futurevents'] = 'Cette occurrence et toutes les suivantes';
$labels['allevents'] = 'Toutes les occurrences';
$labels['saveasnew'] = 'Enregistrer comme un nouvel évènement';
$labels['saveasnew'] = 'Enregistrer comme un nouvel événement';
$labels['birthdays'] = 'Anniversaires';
$labels['birthdayscalendar'] = 'Calendrier des anniversaires';
$labels['displaybirthdayscalendar'] = 'Afficher le calendrier des anniversaires';
$labels['birthdayscalendarsources'] = 'Depuis ces carnets d\'adresses';
$labels['birthdayeventtitle'] = 'Anniversaire de $name';
$labels['birthdayage'] = 'Âge $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['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['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['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['arialabelresourceselection'] = 'Ressources disponibles';
?>

24
localization/hr_HR.inc Normal file
View file

@ -0,0 +1,24 @@
<?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';
?>

View file

@ -1,38 +1,214 @@
<?php
/**
* RoundCube Calendar
* Localizations for Kolab Calendar plugin
*
* Plugin to add a calendar to RoundCube.
* Copyright (C) 2014, Kolab Systems AG
*
* @version 0.2 BETA 2
* @author Lazlo Westerhof
* @url http://rc-calendar.lazlo.me
* @licence GNU GPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
*
**/
$labels = array();
// config
$labels['default_view'] = 'Alap nézet';
$labels['time_format'] = 'Idõ formátum';
$labels['timeslots'] = 'Idõrés óránként';
$labels['first_day'] = 'A hét elsõ napja';
// calendar
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Alapnézett nézet';
$labels['time_format'] = 'Idő formátum';
$labels['timeslots'] = 'Órák felbontása időrésekre';
$labels['first_day'] = 'A hét első napja';
$labels['first_hour'] = 'Kezdő óra';
$labels['workinghours'] = 'Munkaidő';
$labels['add_category'] = 'Kategória hozzáadása';
$labels['remove_category'] = 'Kategória törlése';
$labels['defaultcalendar'] = 'Új események alapértelmezett helye';
$labels['eventcoloring'] = 'Események színezése';
$labels['coloringmode0'] = 'Naptár szerint';
$labels['coloringmode1'] = 'Kategória szerint';
$labels['coloringmode2'] = 'Naptár színe körvonal, kategória színe belsőrész';
$labels['coloringmode3'] = 'Kategória színe körvonal, naptár színe belsőrész';
$labels['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['name'] = 'Név';
$labels['color'] = 'Szín';
$labels['day'] = 'Nap';
$labels['week'] = 'Hét';
$labels['month'] = 'Hónap';
$labels['new_event'] = 'Új bejegyzés';
$labels['edit_event'] = 'Bejegyzés szerkesztése';
$labels['agenda'] = 'Napirend';
$labels['new'] = 'Új';
$labels['new_event'] = 'Új esemény';
$labels['edit_event'] = 'Esemény módosítása';
$labels['edit'] = 'Módosítás';
$labels['save'] = 'Mentés';
$labels['remove'] = 'Törlés';
$labels['removelist'] = 'Remove from list';
$labels['cancel'] = 'Mégse';
$labels['select'] = 'Jelölés';
$labels['print'] = 'Nyomtatás';
$labels['printtitle'] = 'Naptárak nyomtatása';
$labels['title'] = 'Tárgy';
$labels['description'] = 'Leírás';
$labels['all-day'] = 'Egész nap';
$labels['export'] = 'Exportálás ICS formátumba';
$labels['category'] = 'Kategória';
$labels['export'] = 'Exportálás';
$labels['exporttitle'] = 'Exportálás iCalendar-ba';
$labels['exportrange'] = 'Visszamenőleg';
$labels['exportattachments'] = 'Csatolmányokkal';
$labels['customdate'] = 'Megadott dátumig';
$labels['location'] = 'Hol';
$labels['url'] = 'URL';
$labels['date'] = 'Dátum';
$labels['start'] = 'Kezdet';
$labels['starttime'] = 'Start time';
$labels['end'] = 'Vég';
$labels['repeat'] = 'Ismétlődés';
$labels['selectdate'] = 'Válasszon dátumot';
$labels['freebusy'] = 'Foglaltság';
$labels['free'] = 'Szabad';
$labels['busy'] = 'Foglalt';
$labels['outofoffice'] = 'Házon kívűl';
$labels['tentative'] = 'Feltételes';
$labels['status'] = 'Stát.';
$labels['status-confirmed'] = 'Confirmed';
$labels['status-cancelled'] = 'Cancelled';
$labels['status-tentative'] = 'Feltételes';
$labels['priority'] = 'Prioritás';
$labels['sensitivity'] = 'Manánszféra';
$labels['public'] = 'publikus';
$labels['private'] = 'privát';
$labels['confidential'] = 'titkos';
$labels['links'] = 'Reference';
$labels['alarms'] = 'Emlékeztető';
$labels['comment'] = 'Megjegyzés';
$labels['created'] = 'Created';
$labels['changed'] = 'Last Modified';
$labels['unknown'] = 'Ismeretlen foglaltság';
$labels['generated'] = 'készítve:';
$labels['removelink'] = 'Remove email reference';
$labels['printdescriptions'] = 'Leírás nyomtatása';
$labels['parentcalendar'] = 'Szülőnaptár';
$labels['searchearlierdates'] = '< Korábbi események keresése';
$labels['searchlaterdates'] = 'Későbbi események keresése >';
$labels['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';
$labels['importevents'] = 'Események importálása';
$labels['importrange'] = 'Visszamenőleg';
$labels['onemonthback'] = '1 hónapra';
$labels['nmonthsback'] = '$nr hónapra';
$labels['showurl'] = 'Naptár URL címe';
$labels['showurldescription'] = 'Ezen a címen érhető el (csak olvasásra!) a naptár más alkalmazások számára, iCal formátumban.';
$labels['caldavurldescription'] = 'Másolja be ezt a címet egy <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a>-kompatibilis kliensbe (pl. Evolution vagy Mozilla Thunderbird) hogy kétirányú szinkronizációval tudjon a naptárához hozzáférni.';
$labels['searchterms'] = 'Search terms';
$labels['calendarsubscribe'] = 'List permanently';
$labels['listrange'] = 'Megjelenítés:';
$labels['listsections'] = 'Felosztás:';
$labels['smartsections'] = 'Áttekintve';
$labels['until'] = 'eddig';
$labels['today'] = 'Ma';
$labels['tomorrow'] = 'Holnap';
$labels['thisweek'] = 'Ezen a héten';
$labels['nextweek'] = 'Jövő héten';
$labels['thismonth'] = 'Ebben a hónapban';
$labels['nextmonth'] = 'Jövő hónapban';
$labels['weekofyear'] = 'Hét:';
$labels['pastevents'] = 'Múltban';
$labels['futureevents'] = 'Jövőben';
$labels['showalarms'] = 'Emlékeztetők megjelenítése';
$labels['defaultalarmtype'] = 'Alapértelmezett emlékeztető';
$labels['defaultalarmoffset'] = 'Alapértelmezett emlékeztető ideje';
$labels['attendee'] = 'Résztvevő';
$labels['role'] = 'Szerepkör';
$labels['availability'] = 'Elérh.';
$labels['confirmstate'] = 'Stát.';
$labels['addattendee'] = 'Résztvevő meghívása';
$labels['roleorganizer'] = 'Szervező';
$labels['rolerequired'] = 'Kötelező';
$labels['roleoptional'] = 'Opcionális';
$labels['rolechair'] = 'Elnöklő';
$labels['rolenonparticipant'] = 'Hiányzó';
$labels['cutypeindividual'] = 'Egyén';
$labels['cutypegroup'] = 'Csoport';
$labels['cutyperesource'] = 'Eszköz';
$labels['cutyperoom'] = 'Helyiség';
$labels['availfree'] = 'Szabad';
$labels['availbusy'] = 'Foglalt';
$labels['availunknown'] = 'Ismeretlen foglaltság';
$labels['availtentative'] = 'Feltételes';
$labels['availoutofoffice'] = 'Házon kívül';
$labels['scheduletime'] = 'Elérhetőség';
$labels['sendinvitations'] = 'Meghívók küldése';
$labels['sendnotifications'] = 'Résztvevők értesítése a változásokról';
$labels['sendcancellation'] = 'Résztvevők értesítése a lemondásról';
$labels['onlyworkinghours'] = 'Elérhetőség figyelembevétele csak az én munkaidőmben';
$labels['reqallattendees'] = 'Mindenki részére';
$labels['prevslot'] = 'Előző idősáv';
$labels['nextslot'] = 'Következő idősáv';
$labels['noslotfound'] = 'Nem sikerült szabad idősávot találni';
$labels['invitationsubject'] = '$title';
$labels['invitationattendlinks'] = "Amennyiben a levelezőben nem lát elfogadó/elutasító gombokat (a levelező program nem támogatja az iTip üzeneteket), kattintson ide a meghívó elfogadására, vagy elutasítására:\n\$url";
$labels['eventupdatesubject'] = '$title - módosítva';
$labels['eventupdatesubjectempty'] = 'Egy Önt érintő esemény módosítva lett';
$labels['eventupdatemailbody'] = "Módosítás érkezett '\$title' eseményre vonatkozóan.\n\nIdőpont: \$date\nSzervező: \$organizer\nRésztvevők: \$attendees\n\n\nMellékletben egy frissített iCalendar naptárbejegyzés, mely tetszőleges naptárprogramba importálható.";
$labels['eventcancelmailbody'] = "'\$title' eseményre \$organizer szervező visszavonta a meghívást.\n\nIdőpont: \$date\nRésztvevők: \$attendees\n\n\nMellékletben egy frissített iCalendar naptárbejegyzés, mely tetszőleges naptárprogramba importálható.";
$labels['itipobjectnotfound'] = 'Az üzenetben hivatkozott esemény nem található a naptárban.';
$labels['itipmailbodyaccepted'] = "\$sender elfogadta a meghívást '\$title' eseményre.\n\nIdőpont: \$date\nRésztvevők: \$attendees";
$labels['itipmailbodytentative'] = "\$sender feltételesen elfogadta a meghívást '\$title' eseményre.\n\nIdőpont: \$date\nRésztvevők: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender elutasította a meghívást '\$title' eseményre.\n\nIdőpont: \$date\nRésztvevők: \$attendees";
$labels['itipmailbodycancel'] = "\$sender elutasította a részvételét '\$title' eseményen, \$date időpontra";
$labels['itipdeclineevent'] = 'Biztos benne, hogy el szeretné utasítani ezt a meghívást?';
$labels['declinedeleteconfirm'] = 'Ki is szeretné törölni a saját naptárából ezt az időpontot?';
$labels['itipcomment'] = 'Invitation/notification comment';
$labels['notanattendee'] = 'Ön nem szerepel az esemény meghívottai között';
$labels['eventcancelled'] = 'Az esemény le lett mondva';
$labels['saveincalendar'] = 'Mentés naptárba';
$labels['updatemycopy'] = 'Naptárbejegyzés frissítése';
$labels['resource'] = 'Eszközök';
$labels['addresource'] = 'Eszköz foglalása';
$labels['findresources'] = 'Eszközök keresése';
$labels['resourcedetails'] = 'Részletek';
$labels['resourceavailability'] = 'Elérhetőség';
$labels['resourceowner'] = 'Tulajdonos';
$labels['resourceadded'] = 'Az eszköz le lett foglalva az eseményhez';
$labels['tabsummary'] = 'Részletek';
$labels['tabrecurrence'] = 'Ismétlődés';
$labels['tabattendees'] = 'Résztvevők';
$labels['tabresources'] = 'Eszközök';
$labels['tabattachments'] = 'Csatolmányok';
$labels['tabsharing'] = 'Megosztás';
$labels['deleteobjectconfirm'] = 'Biztos benne, hogy törölni szeretné ezt az eseményt?';
$labels['deleteventconfirm'] = 'Biztos benne, hogy törölni szeretné ezt az eseményt?';
$labels['deletecalendarconfirm'] = 'Biztos benne, hogy törölni szeretné ezt a naptárat, az összes benne lévő eseménnyel?';
$labels['deletecalendarconfirmrecursive'] = 'Biztos benne, hogy törölni szeretné ezt a naptárat, az összes benne lévő al-naptárral és eseménnyel?';
$labels['savingdata'] = 'Adatok mentése...';
$labels['errorsaving'] = 'A módosításokat nem sikerült elmenteni.';
$labels['operationfailed'] = 'A műveletet nem sikerült elvégezni.';
$labels['invalideventdates'] = 'Helytelen dátumokoat adott meg! Kérem, ellenörizze a bevírt adatokat.';
$labels['invalidcalendarproperties'] = 'Helytelen naptár tulajdonságok! Kérem, adjon meg egy helyes nevet.';
$labels['searchnoresults'] = 'Nem található esemény a kiválasztott naptárakban.';
$labels['successremoval'] = 'Az esemény törlése sikerült.';
$labels['successrestore'] = 'Az esemény sikeresen vissza lett állítva.';
$labels['errornotifying'] = 'Nem sikerült meghívókat küldeni a résztvevőknek.';
$labels['errorimportingevent'] = 'Az esemény importálása sikertelen volt.';
$labels['newerversionexists'] = 'Egy újabb verzió már van ebből az eseményből! Itt abbahagytam.';
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
$labels['importedsuccessfully'] = 'Az esemény a \'$calendar\' naptárhoz hozzá lett adva';
$labels['attendeupdateesuccess'] = 'A résztvevők adatai sikeresen frissítve';
$labels['itipsendsuccess'] = 'Értesítés küldve a résztvevőknek';
$labels['itipresponseerror'] = 'Nem sikerült választ küldeni erre a meghívásra';
$labels['itipinvalidrequest'] = 'Ez a meghívás már érvénytelen';
$labels['sentresponseto'] = 'Értesítésre válasz küldve: $mailto';
$labels['localchangeswarning'] = 'Ezek a változások csak az ön naptárában fognak megjelenni, az esemény szervezőjénél nem.';
$labels['importsuccess'] = '$nr esemény sikeresen importálva lett';
$labels['importnone'] = 'Nem található importálható esemény.';
$labels['importerror'] = 'Hiba importálás közben';
$labels['aclnorights'] = 'Nincs adminisztrátori joga ehhez a naptárhoz';
$labels['changeeventconfirm'] = 'Bejegyzés módosítása';
$labels['changerecurringeventwarning'] = 'Ez egy ismétlődő esemény. Csak ezt az előfordulást szeretné módosítani, esetleg ezt az előfordulást az összes következővel, netán a teljes sorozatot, vagy új eseményként legyen mentve?';
$labels['currentevent'] = 'Csak ezt';
$labels['futurevents'] = 'Ezt és a következőeket';
$labels['allevents'] = 'Egész sorozatot';
$labels['saveasnew'] = 'Mentés újként';
$labels['birthdays'] = 'Születésnapok';
$labels['birthdayscalendar'] = 'Születésnapi naptár';
$labels['displaybirthdayscalendar'] = 'Születésnapok megjelenítése';
$labels['birthdayscalendarsources'] = 'Alábbi címjegyzékekből:';
$labels['birthdayeventtitle'] = '$name születésnapja';
$labels['birthdayage'] = '$age éves';
?>

View file

@ -1,38 +1,262 @@
<?php
/**
* RoundCube Calendar
* Localizations for Kolab Calendar plugin
*
* Plugin to add a calendar to RoundCube.
* Copyright (C) 2014, Kolab Systems AG
*
* @version 0.2 BETA 2
* @author Lazlo Westerhof
* @url http://rc-calendar.lazlo.me
* @licence GNU GPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
*
**/
$labels = array();
// config
$labels['default_view'] = 'Visualizzazine di default';
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Visualizzazione predefinita';
$labels['time_format'] = 'Formato ora';
$labels['timeslots'] = 'Timeslots per ora';
$labels['first_day'] = 'Inizio settimana';
// calendar
$labels['first_hour'] = 'Prima ora da mostrare';
$labels['workinghours'] = 'Orario lavorativo';
$labels['add_category'] = 'Aggiungi categoria';
$labels['remove_category'] = 'Rimuovi categoria';
$labels['defaultcalendar'] = 'Crea nuovi eventi in';
$labels['eventcoloring'] = 'Colorazione evento';
$labels['coloringmode0'] = 'Secondo il calendario';
$labels['coloringmode1'] = 'Secondo la categoria';
$labels['coloringmode2'] = 'Calendar for outline, category for content';
$labels['coloringmode3'] = 'Category for outline, calendar for content';
$labels['afternothing'] = 'Nessuna azione';
$labels['aftertrash'] = 'Sposta nel cestino';
$labels['afterdelete'] = 'Cancella il messaggio';
$labels['afterflagdeleted'] = 'Segna come cancellato';
$labels['aftermoveto'] = 'Sposta in...';
$labels['itipoptions'] = 'Inviti all\'evento';
$labels['afteraction'] = 'Dopo un invito o un aggiornamento il messaggio è processato';
$labels['weeknonone'] = 'una volta';
$labels['calendar'] = 'Calendario';
$labels['calendars'] = 'Calendari';
$labels['category'] = 'Categoria';
$labels['categories'] = 'Categorie';
$labels['createcalendar'] = 'Crea nuovo calendario';
$labels['name'] = 'Nome';
$labels['color'] = 'Colore';
$labels['day'] = 'Giorno';
$labels['week'] = 'Settimana';
$labels['month'] = 'Mese';
$labels['agenda'] = 'Agenda';
$labels['new'] = 'Nuovo';
$labels['new_event'] = 'Nuovo evento';
$labels['edit_event'] = 'Modifica evento';
$labels['edit'] = 'Modifica';
$labels['save'] = 'Salva';
$labels['remove'] = 'Elimina';
$labels['removelist'] = 'Rimuovi dalla lista';
$labels['cancel'] = 'Annulla';
$labels['select'] = 'Seleziona';
$labels['print'] = 'Stampa';
$labels['printtitle'] = 'Stampa calendari';
$labels['title'] = 'Oggetto';
$labels['description'] = 'Descrizione';
$labels['all-day'] = 'Giorno intero';
$labels['export'] = 'Esporta in ICS';
$labels['category'] = 'Categoria';
?>
$labels['all-day'] = 'Tutto il giorno';
$labels['export'] = 'Esporta';
$labels['exporttitle'] = 'Esporta come iCalendar';
$labels['exportrange'] = 'Eventi di';
$labels['exportattachments'] = 'Con allegati';
$labels['customdate'] = 'Data personalizzata';
$labels['location'] = 'Luogo';
$labels['url'] = 'URL';
$labels['date'] = 'Data';
$labels['start'] = 'Inizio';
$labels['starttime'] = 'Ora di inizio';
$labels['end'] = 'Fine';
$labels['endtime'] = 'Ora di fine';
$labels['repeat'] = 'Ricorrenza';
$labels['selectdate'] = 'Scegliere la data';
$labels['freebusy'] = 'Mostrami come';
$labels['free'] = 'Libero';
$labels['busy'] = 'Occupato';
$labels['outofoffice'] = 'Fuori Ufficio';
$labels['tentative'] = 'Provvisorio';
$labels['mystatus'] = 'Il mio stato';
$labels['status'] = 'Stato';
$labels['status-confirmed'] = 'Confermato';
$labels['status-cancelled'] = 'Cancellato';
$labels['status-tentative'] = 'Provvisorio';
$labels['priority'] = 'Priorità';
$labels['sensitivity'] = 'Privacy';
$labels['public'] = 'pubblico';
$labels['private'] = 'privato';
$labels['confidential'] = 'confidenziale';
$labels['links'] = 'Riferimento';
$labels['alarms'] = 'Promemoria';
$labels['comment'] = 'Commento';
$labels['created'] = 'Creato';
$labels['changed'] = 'Ultima modifica';
$labels['unknown'] = 'Sconosciuto';
$labels['eventoptions'] = 'Opzioni';
$labels['generated'] = 'generato il';
$labels['eventhistory'] = 'Storico';
$labels['removelink'] = 'Rimuovi riferimento email';
$labels['printdescriptions'] = 'Stampa descrizioni';
$labels['parentcalendar'] = 'Inserisci dentro';
$labels['searchearlierdates'] = '« Cerca eventi precedenti';
$labels['searchlaterdates'] = 'Cerca eventi successivi »';
$labels['laterevents'] = 'Dopo';
$labels['andnmore'] = 'Altri $nr...';
$labels['togglerole'] = 'Fare clic per cambiare il ruolo';
$labels['createfrommail'] = 'Salva come evento';
$labels['importevents'] = 'Importa eventi';
$labels['importrange'] = 'Eventi di';
$labels['onemonthback'] = '1 mese prima';
$labels['nmonthsback'] = '$nr mesi prima';
$labels['showurl'] = 'Mostra URL calendario';
$labels['showurldescription'] = 'Usare il seguente indirizzo per accedere (in sola lettura) al calendario da altre applicazioni. È possibile copiarlo e incollarlo in qualsiasi software che supporta il formato iCal.';
$labels['caldavurldescription'] = 'Copiare questo indirizzo in un\'applicazione client <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (es. Evolution o Mozilla Thunderbird) per sincronizzare completamente questo specifico calendario con il proprio computer o dispositivo mobile.';
$labels['findcalendars'] = 'Trova calendari...';
$labels['searchterms'] = 'Cerca elemento';
$labels['calsearchresults'] = 'Calendari disponibili';
$labels['calendarsubscribe'] = 'Elenca sempre';
$labels['nocalendarsfound'] = 'Nessun calendario trovato';
$labels['nrcalendarsfound'] = '$nr calendari trovati';
$labels['quickview'] = 'Visualizza solo questo calendario';
$labels['invitationspending'] = 'Inviti in sospeso';
$labels['invitationsdeclined'] = 'Inviti scartati';
$labels['changepartstat'] = 'Cambia lo stato del partecipante';
$labels['rsvpcomment'] = 'Testo dell\'invito';
$labels['listrange'] = 'Intervallo da visualizzare:';
$labels['listsections'] = 'Dividi in:';
$labels['smartsections'] = 'Sezioni intelligenti';
$labels['until'] = 'fino a';
$labels['today'] = 'Oggi';
$labels['tomorrow'] = 'Domani';
$labels['thisweek'] = 'Questa settimana';
$labels['nextweek'] = 'Prossima settimana';
$labels['prevweek'] = 'Settimana precedente';
$labels['thismonth'] = 'Questo mese';
$labels['nextmonth'] = 'Prossimo mese';
$labels['weekofyear'] = 'Settimana';
$labels['pastevents'] = 'Passato';
$labels['futureevents'] = 'Futuro';
$labels['showalarms'] = 'Mostra promemoria';
$labels['defaultalarmtype'] = 'Impostazioni predefinite dei promemoria';
$labels['defaultalarmoffset'] = 'Tempo predefinito per i promemoria';
$labels['attendee'] = 'Partecipante';
$labels['role'] = 'Ruolo';
$labels['availability'] = 'Dispon.';
$labels['confirmstate'] = 'Stato';
$labels['addattendee'] = 'Aggiungi partecipante';
$labels['roleorganizer'] = 'Organizzatore';
$labels['rolerequired'] = 'Necessario';
$labels['roleoptional'] = 'Facoltativo';
$labels['rolechair'] = 'Presidente';
$labels['rolenonparticipant'] = 'Assente';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Gruppo';
$labels['cutyperesource'] = 'Risorsa';
$labels['cutyperoom'] = 'Stanza';
$labels['availfree'] = 'Libero';
$labels['availbusy'] = 'Occupato';
$labels['availunknown'] = 'Sconosciuto';
$labels['availtentative'] = 'Provvisorio';
$labels['availoutofoffice'] = 'Fuori sede';
$labels['scheduletime'] = 'Trova disponibilità';
$labels['sendinvitations'] = 'Manda inviti';
$labels['sendnotifications'] = 'Notifica le modifiche ai partecipanti';
$labels['sendcancellation'] = 'Notifica ai partecipanti la cancellazione dell\'evento';
$labels['onlyworkinghours'] = 'Trova disponibilità durante le ore lavorative';
$labels['reqallattendees'] = 'Necessario/tutti i partecipanti';
$labels['prevslot'] = 'Spazio precedente';
$labels['nextslot'] = 'Spazio successivo';
$labels['suggestedslot'] = 'Spazio suggerito';
$labels['noslotfound'] = 'Impossibile trovare uno spazio di tempo libero';
$labels['invitationsubject'] = 'Sei stato invitato a "$title"';
$labels['invitationattendlinks'] = "Se il tuo client di posta elettronica non supporta le richieste iTip, puoi seguire il seguente collegamento per accettare o rifiutare l'invito:\n\$url";
$labels['eventupdatesubject'] = '"$title" è stato aggiornato';
$labels['eventupdatesubjectempty'] = 'Un evento che ti riguarda è stato aggiornato';
$labels['eventupdatemailbody'] = "*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees\n\nIn allegato un file iCalendar con i dettagli aggiornati dell'evento che puoi importare nella tua applicazione calendario.";
$labels['eventcancelmailbody'] = "*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees\n\nL'evento è stato cancellato da \$organizer.\n\nIn allegato un file iCalendar con i dettagli aggiornati dell'evento .";
$labels['itipobjectnotfound'] = 'L\'evento al quale questo messaggio fa riferimento non è stato trovato nel tuo calendario.';
$labels['itipmailbodyaccepted'] = "\$sender ha accettato l'invito al seguente evento:\n\n*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees";
$labels['itipmailbodytentative'] = "\$sender ha accettato con riserva l'invito al seguente evento:\n\n*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender ha rifiutato l'invito al seguente evento:\n\n*\$title*\n\nQuando: \$date\n\nInvitati: \$attendees";
$labels['itipmailbodycancel'] = "\$Il mittente ha rifiutato la tua partecipazione nel seguente evento:\n\n*\$title*\n\nQuando: \$date";
$labels['itipmailbodydelegated'] = "\$Il mittente ha delegato la partecipazione nel seguente evento:\n\n*\$title*\n\nQuando: \$date";
$labels['itipmailbodydelegatedto'] = "\$Il mittente ha delegato a te la partecipazione nel seguente evento:\n\n*\$title*\n\nQuando:\$date";
$labels['itipdeclineevent'] = 'Vuoi rifiutare l\'invito a questo evento?';
$labels['declinedeleteconfirm'] = 'Vuoi anche cancellare dal calendario l\'evento rifiutato?';
$labels['itipcomment'] = 'Commento all\'invito/notifica';
$labels['itipcommenttitle'] = 'Questo commento verrà allegato al messaggio di invito/notifica spedito ai partecipanti';
$labels['notanattendee'] = 'Non sei elencato tra i partecipanti a questo evento';
$labels['eventcancelled'] = 'L\'evento è stato annullato';
$labels['saveincalendar'] = 'salva in';
$labels['updatemycopy'] = 'Aggiorna nel mio calendario';
$labels['savetocalendar'] = 'Salva sul calendario';
$labels['openpreview'] = 'Controlla calendario';
$labels['noearlierevents'] = 'Non ci sono eventi precedenti';
$labels['nolaterevents'] = 'Non ci sono eventi successivi';
$labels['resource'] = 'Risorsa';
$labels['addresource'] = 'Prenota risorsa';
$labels['findresources'] = 'Trova risorse';
$labels['resourcedetails'] = 'Dettagli';
$labels['resourceavailability'] = 'Disponibilità';
$labels['resourceowner'] = 'Proprietario';
$labels['resourceadded'] = 'La risorsa è stata aggiunta al tuo evento';
$labels['tabsummary'] = 'Riepilogo';
$labels['tabrecurrence'] = 'Ricorrenza';
$labels['tabattendees'] = 'Partecipanti';
$labels['tabresources'] = 'Risorse';
$labels['tabattachments'] = 'Allegati';
$labels['tabsharing'] = 'Condivisione';
$labels['deleteobjectconfirm'] = 'Cancellare davvero questo evento?';
$labels['deleteventconfirm'] = 'Cancellare davvero questo evento?';
$labels['deletecalendarconfirm'] = 'Cancellare davvero questo calendario con tutti i suoi eventi?';
$labels['deletecalendarconfirmrecursive'] = 'Vuoi veramente eliminare questo calendario con tutti i suoi eventi e i suoi sotto-calendari?';
$labels['savingdata'] = 'Salvataggio dati...';
$labels['errorsaving'] = 'Impossibile salvare le modifiche.';
$labels['operationfailed'] = 'L\'operazione richiesta è fallita.';
$labels['invalideventdates'] = 'Le date inserite non sono valide. Controllare l\'inserimento.';
$labels['invalidcalendarproperties'] = 'Proprietà del calendario non valide. Impostare un nome valido.';
$labels['searchnoresults'] = 'Nessun evento trovato nel calendario selezionato.';
$labels['successremoval'] = 'L\'evento è stato cancellato correttamente.';
$labels['successrestore'] = 'L\'evento è stato ripristinato correttamente.';
$labels['errornotifying'] = 'Spedizione delle notifiche ai partecipanti dell\'evento fallita';
$labels['errorimportingevent'] = 'Importazione evento fallita';
$labels['importwarningexists'] = 'Una copia di questo evento esiste già nel tuo calendario';
$labels['newerversionexists'] = 'Esiste già una versione più recente di questo evento. Abortito.';
$labels['nowritecalendarfound'] = 'Non c\'è nessun calendario dove salvare l\'evento';
$labels['importedsuccessfully'] = 'Evento aggiunto correttamente a \'$calendar\'';
$labels['updatedsuccessfully'] = 'L\'evento è stato aggiornato con successo su \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Stato dei partecipanti aggiornato correttamente';
$labels['itipsendsuccess'] = 'Invito spedito ai partecipanti.';
$labels['itipresponseerror'] = 'Spedizione della risposta all\'invito fallita';
$labels['itipinvalidrequest'] = 'Questo invito non è più valido';
$labels['sentresponseto'] = 'Risposta all\'invito inviata correttamente a $mailto';
$labels['localchangeswarning'] = 'Stai per fare dei cambiamenti che compariranno solo nel tuo calendario e non saranno spediti all\'organizzatore dell\'evento.';
$labels['importsuccess'] = '$nr eventi importati correttamente';
$labels['importnone'] = 'Nessun evento trovato da importare';
$labels['importerror'] = 'Si è verificato un errore durante l\'importazione';
$labels['aclnorights'] = 'Non hai i diritti di amministratore per questo calendario.';
$labels['changeeventconfirm'] = 'Cambia evento';
$labels['removeeventconfirm'] = 'Cancella evento';
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
$labels['removerecurringeventwarning'] = 'Questo è un evento ricorrente. Vuoi cancellare solamente l\'evento corrente, quest\'ultimo e tutte le future ricorrenze oppure tutte le ricorrenze di questo evento?';
$labels['currentevent'] = 'Current';
$labels['futurevents'] = 'Futuro';
$labels['allevents'] = 'Tutto';
$labels['saveasnew'] = 'Salva come nuovo';
$labels['birthdays'] = 'Compleanni';
$labels['birthdayscalendar'] = 'Calendario compleanni';
$labels['displaybirthdayscalendar'] = 'Mostra il calendario compleanni';
$labels['birthdayscalendarsources'] = 'Da queste rubriche';
$labels['birthdayeventtitle'] = 'Compleanno di $name';
$labels['birthdayage'] = 'Età: $age anni';
$labels['objectchangelog'] = 'Storico modifiche';
$labels['objectnotfound'] = 'Caricamento dati dell\'evento fallito';
$labels['objectchangelognotavailable'] = 'Lo storico modifiche non è disponibile per questo evento';
$labels['objectdiffnotavailable'] = 'Nessun confronto possibile tra le revisioni selezionate';
$labels['revisionrestoreconfirm'] = 'Vuoi veramente ripristinare la revisione $rev di questo evento? L\'evento corrente verrà sostituito dalla vecchia versione.';
$labels['arialabelminical'] = 'Selezione della data del calendario';
$labels['arialabelcalendarview'] = 'Vista calendario';
$labels['arialabelsearchform'] = 'Modulo ricerca evento';
$labels['arialabelquicksearchbox'] = 'Inserimento ricerca evento';
$labels['arialabelcalsearchform'] = 'Modulo ricerca calendari';
$labels['calendaractions'] = 'Azione calendari';
$labels['arialabeleventattendees'] = 'Lista partecipanti all\'evento';
$labels['arialabeleventresources'] = 'Lista risorse dell\'evento';
$labels['arialabelresourcesearchform'] = 'Modulo ricerca risorse';
$labels['arialabelresourceselection'] = 'Risorse disponibili';
?>

View file

@ -1,230 +1,266 @@
<?php
$labels = array();
// preferences
$labels['default_view'] = 'Default view';
$labels['time_format'] = 'Time format';
$labels['timeslots'] = 'Timeslots per hour';
$labels['first_day'] = 'First weekday';
$labels['first_hour'] = 'First hour to show';
$labels['workinghours'] = 'Working hours';
$labels['add_category'] = 'Add category';
$labels['remove_category'] = 'Remove category';
$labels['defaultcalendar'] = 'Create new events in';
$labels['eventcoloring'] = 'Event coloring';
$labels['coloringmode0'] = 'According to calendar';
$labels['coloringmode1'] = 'According to category';
$labels['coloringmode2'] = 'Calendar for outline, category for content';
$labels['coloringmode3'] = 'Category for outline, calendar for content';
// calendar
$labels['calendar'] = 'Calendar';
$labels['calendars'] = 'Calendars';
$labels['category'] = 'Category';
$labels['categories'] = 'Categories';
$labels['createcalendar'] = 'Create new calendar';
$labels['editcalendar'] = 'Edit calendar properties';
$labels['name'] = 'Name';
$labels['color'] = 'Color';
$labels['day'] = 'Day';
$labels['week'] = 'Week';
$labels['month'] = 'Month';
$labels['agenda'] = 'Agenda';
$labels['new'] = 'New';
$labels['new_event'] = 'New event';
$labels['edit_event'] = 'Edit event';
$labels['edit'] = 'Edit';
$labels['save'] = 'Save';
$labels['remove'] = 'Remove';
$labels['cancel'] = 'Cancel';
$labels['select'] = 'Select';
$labels['print'] = 'Print';
$labels['printtitle'] = 'Print calendars';
$labels['title'] = 'Summary';
$labels['description'] = 'Description';
$labels['all-day'] = 'all-day';
$labels['export'] = 'Export';
$labels['exporttitle'] = 'Export to iCalendar';
$labels['location'] = 'Location';
$labels['date'] = 'Date';
$labels['start'] = 'Start';
$labels['end'] = 'End';
$labels['selectdate'] = 'Choose date';
$labels['freebusy'] = 'Show me as';
$labels['free'] = 'Free';
$labels['busy'] = 'Busy';
$labels['outofoffice'] = 'Out of Office';
$labels['tentative'] = 'Tentative';
$labels['priority'] = 'Priority';
$labels['sensitivity'] = 'Privacy';
$labels['public'] = 'public';
$labels['private'] = 'private';
$labels['confidential'] = 'confidential';
$labels['alarms'] = 'Reminder';
$labels['generated'] = 'generated at';
$labels['printdescriptions'] = 'Print descriptions';
$labels['parentcalendar'] = 'Insert inside';
$labels['searchearlierdates'] = '« Search for earlier events';
$labels['searchlaterdates'] = 'Search for later events »';
$labels['andnmore'] = '$nr more...';
$labels['togglerole'] = 'Click to toggle role';
$labels['createfrommail'] = 'Save as event';
$labels['importevents'] = 'Import events';
$labels['importrange'] = 'Events from';
$labels['onemonthback'] = '1 month back';
$labels['nmonthsback'] = '$nr months back';
$labels['showurl'] = 'Show calendar URL';
$labels['showurldescription'] = 'Use the following address to access (read only) your calendar from other applications. You can copy and paste this into any calendar software that supports the iCal format.';
// agenda view
$labels['listrange'] = 'Range to display:';
$labels['listsections'] = 'Divide into:';
$labels['smartsections'] = 'Smart sections';
$labels['until'] = 'until';
$labels['today'] = 'Today';
$labels['tomorrow'] = 'Tomorrow';
$labels['thisweek'] = 'This week';
$labels['nextweek'] = 'Next week';
$labels['thismonth'] = 'This month';
$labels['nextmonth'] = 'Next month';
$labels['weekofyear'] = 'Week';
$labels['pastevents'] = 'Past';
$labels['futureevents'] = 'Future';
// alarm/reminder settings
$labels['showalarms'] = 'Show alarms';
$labels['defaultalarmtype'] = 'Default reminder setting';
$labels['defaultalarmoffset'] = 'Default reminder time';
// attendees
$labels['attendee'] = 'Participant';
$labels['role'] = 'Role';
$labels['availability'] = 'Avail.';
$labels['confirmstate'] = 'Status';
$labels['addattendee'] = 'Add participant';
$labels['roleorganizer'] = 'Organizer';
$labels['rolerequired'] = 'Required';
$labels['roleoptional'] = 'Optional';
$labels['roleresource'] = 'Resource';
$labels['availfree'] = 'Free';
$labels['availbusy'] = 'Busy';
$labels['availunknown'] = 'Unknown';
$labels['availtentative'] = 'Tentative';
$labels['availoutofoffice'] = 'Out of Office';
$labels['scheduletime'] = 'Find availability';
$labels['sendinvitations'] = 'Send invitations';
$labels['sendnotifications'] = 'Notify participants about modifications';
$labels['sendcancellation'] = 'Notify participants about event cancellation';
$labels['onlyworkinghours'] = 'Find availability within my working hours';
$labels['reqallattendees'] = 'Required/all participants';
$labels['prevslot'] = 'Previous Slot';
$labels['nextslot'] = 'Next Slot';
$labels['noslotfound'] = 'Unable to find a free time slot';
$labels['invitationsubject'] = 'You\'ve been invited to "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with all the event details which you can import to your calendar application.";
$labels['invitationattendlinks'] = "In case your email client doesn't support iTip requests you can use the following link to either accept or decline this invitation:\n\$url";
$labels['eventupdatesubject'] = '"$title" has been updated';
$labels['eventupdatesubjectempty'] = 'An event that concerns you has been updated';
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nPlease find attached an iCalendar file with the updated event details which you can import to your calendar application.";
$labels['eventcancelsubject'] = '"$title" has been canceled';
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nThe event has been cancelled by \$organizer.\n\nPlease find attached an iCalendar file with the updated event details.";
// invitation handling
$labels['itipinvitation'] = 'Invitation to';
$labels['itipupdate'] = 'Update of';
$labels['itipcancellation'] = 'Cancelled:';
$labels['itipreply'] = 'Reply to';
$labels['itipaccepted'] = 'Accept';
$labels['itiptentative'] = 'Maybe';
$labels['itipdeclined'] = 'Decline';
$labels['itipsubjectaccepted'] = '"$title" has been accepted by $name';
$labels['itipsubjecttentative'] = '"$title" has been tentatively accepted by $name';
$labels['itipsubjectdeclined'] = '"$title" has been declined by $name';
$labels['itipmailbodyaccepted'] = "\$sender has accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodytentative'] = "\$sender has tentatively accepted the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender has declined the invitation to the following event:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipdeclineevent'] = 'Do you want to decline your invitation to this event?';
$labels['importtocalendar'] = 'Save to my calendar';
$labels['removefromcalendar'] = 'Remove from my calendar';
$labels['updateattendeestatus'] = 'Update the participant\'s status';
$labels['acceptinvitation'] = 'Do you accept this invitation?';
$labels['youhaveaccepted'] = 'You have accepted this invitation';
$labels['youhavetentative'] = 'You have tentatively accepted this invitation';
$labels['youhavedeclined'] = 'You have declined this invitation';
$labels['notanattendee'] = 'You\'re not listed as an attendee of this event';
$labels['eventcancelled'] = 'The event has been cancelled';
$labels['saveincalendar'] = 'save in';
// event dialog tabs
$labels['tabsummary'] = 'Summary';
$labels['tabrecurrence'] = 'Recurrence';
$labels['tabattendees'] = 'Participants';
$labels['tabattachments'] = 'Attachments';
$labels['tabsharing'] = 'Sharing';
// messages
$labels['deleteventconfirm'] = 'Do you really want to delete this event?';
$labels['deletecalendarconfirm'] = 'Do you really want to delete this calendar with all its events?';
$labels['savingdata'] = 'Saving data...';
$labels['errorsaving'] = 'Failed to save changes.';
$labels['operationfailed'] = 'The requested operation failed.';
$labels['invalideventdates'] = 'Invalid dates entered! Please check your input.';
$labels['invalidcalendarproperties'] = 'Invalid calendar properties! Please set a valid name.';
$labels['searchnoresults'] = 'No events found in the selected calendars.';
$labels['successremoval'] = 'The event has been deleted successfully.';
$labels['successrestore'] = 'The event has been restored successfully.';
$labels['errornotifying'] = 'Failed to send notifications to event participants';
$labels['errorimportingevent'] = 'Failed to import the event';
$labels['newerversionexists'] = 'A newer version of this event already exists! Aborted.';
$labels['nowritecalendarfound'] = 'No calendar found to save the event';
$labels['importedsuccessfully'] = 'The event was successfully added to \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Successfully updated the participant\'s status';
$labels['itipsendsuccess'] = 'Invitation sent to participants.';
$labels['itipresponseerror'] = 'Failed to send the response to this event invitation';
$labels['itipinvalidrequest'] = 'This invitation is no longer valid';
$labels['sentresponseto'] = 'Successfully sent invitation response to $mailto';
$labels['localchangeswarning'] = 'You are about to make changes that will only be reflected on your personal calendar';
$labels['importsuccess'] = 'Successfully imported $nr events';
$labels['importnone'] = 'No events found to be imported';
$labels['importerror'] = 'An error occured while importing';
$labels['aclnorights'] = 'You do not have administrator rights on this calendar.';
// recurrence form
$labels['repeat'] = 'Repeat';
$labels['frequency'] = 'Repeat';
$labels['never'] = 'never';
$labels['daily'] = 'daily';
$labels['weekly'] = 'weekly';
$labels['monthly'] = 'monthly';
$labels['yearly'] = 'annually';
$labels['every'] = 'Every';
$labels['days'] = 'day(s)';
$labels['weeks'] = 'week(s)';
$labels['months'] = 'month(s)';
$labels['years'] = 'year(s) in:';
$labels['bydays'] = 'On';
$labels['untildate'] = 'the';
$labels['each'] = 'Each';
$labels['onevery'] = 'On every';
$labels['onsamedate'] = 'On the same date';
$labels['forever'] = 'forever';
$labels['recurrencend'] = 'until';
$labels['forntimes'] = 'for $nr time(s)';
$labels['first'] = 'first';
$labels['second'] = 'second';
$labels['third'] = 'third';
$labels['fourth'] = 'fourth';
$labels['last'] = 'last';
$labels['dayofmonth'] = 'Day of month';
$labels['changeeventconfirm'] = 'Change event';
$labels['removeeventconfirm'] = 'Remove event';
$labels['changerecurringeventwarning'] = 'This is a recurring event. Would you like to edit the current event only, this and all future occurences, all occurences or save it as a new event?';
$labels['removerecurringeventwarning'] = 'This is a recurring event. Would you like to remove the current event only, this and all future occurences or all occurences of this event?';
$labels['currentevent'] = 'Current';
$labels['futurevents'] = 'Future';
$labels['allevents'] = 'All';
$labels['saveasnew'] = 'Save as new';
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'デフォルトビュー';
$labels['time_format'] = '時刻表示形式';
$labels['timeslots'] = '一時間毎のタイムスロット';
$labels['first_day'] = '最初の平日';
$labels['first_hour'] = '最初の時間を表示';
$labels['workinghours'] = '労働時間';
$labels['add_category'] = 'カテゴリ追加';
$labels['remove_category'] = 'カテゴリ削除';
$labels['defaultcalendar'] = '新しいイベントの作成';
$labels['eventcoloring'] = 'イベントカラー';
$labels['coloringmode0'] = 'カレンダーの説明';
$labels['coloringmode1'] = 'カテゴリの説明';
$labels['coloringmode2'] = 'アウトライン用カレンダー、コンテンツ用カテゴリ';
$labels['coloringmode3'] = 'アウトライン用カレンダー、コンテンツ用カテゴリ';
$labels['afternothing'] = '何もしない';
$labels['aftertrash'] = 'ゴミ箱へ移動';
$labels['afterdelete'] = 'メッセージを削除';
$labels['afterflagdeleted'] = '削除フラグ';
$labels['aftermoveto'] = '移動...';
$labels['itipoptions'] = 'イベント招待';
$labels['afteraction'] = '招待もしくは更新の後にメッセージは送達されます';
$labels['weeknonone'] = '繰返さない';
$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'] = 'iカレンダーへエクスポート';
$labels['exportrange'] = 'イベント元';
$labels['exportattachments'] = '添付する';
$labels['customdate'] = 'カスタム日時';
$labels['location'] = '場所';
$labels['url'] = 'URL';
$labels['date'] = '期日';
$labels['start'] = '開始';
$labels['starttime'] = '開始時間';
$labels['end'] = '終了';
$labels['endtime'] = '終了日';
$labels['repeat'] = '繰返し';
$labels['selectdate'] = '日付選択';
$labels['freebusy'] = '表示する';
$labels['free'] = '空';
$labels['busy'] = 'ビジー';
$labels['outofoffice'] = '外出';
$labels['tentative'] = '仮';
$labels['mystatus'] = 'マイ ステータス';
$labels['status'] = '状態';
$labels['status-confirmed'] = '確認済';
$labels['status-cancelled'] = 'キャンセル済';
$labels['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['removelink'] = 'Eメール引用文の削除';
$labels['printdescriptions'] = '説明印刷';
$labels['parentcalendar'] = '内に挿入';
$labels['searchearlierdates'] = '<< 以前のイベントを検索';
$labels['searchlaterdates'] = '今後のイベントの検索 >>';
$labels['laterevents'] = '後で';
$labels['andnmore'] = '$nr さらに…';
$labels['togglerole'] = 'クリックでロールをトグル';
$labels['createfrommail'] = 'イベントとして保存';
$labels['importevents'] = 'イベントのインポート';
$labels['importrange'] = 'イベント元';
$labels['onemonthback'] = '1 ヶ月戻る';
$labels['nmonthsback'] = '$nr ヶ月戻る';
$labels['showurl'] = 'カレンダーURL表示';
$labels['showurldescription'] = '以下のアドレスを使用して他のアプリケーションからカレンダーにアクセス(読込のみ)できます。iCal形式をサポートしたカレンダーソフトウェアへコピーアンドペーストができます。';
$labels['caldavurldescription'] = 'この指定したカレンダーをコンピュータもしくはモバイルデバイスと全同期するためにはこのアドレスを <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> クライアントアプリケーション(たとえばエボリューションやMozilla サンダーバード)へコピーしてください。';
$labels['findcalendars'] = 'カレンダーの検索';
$labels['searchterms'] = '用語検索';
$labels['calsearchresults'] = '有効なカレンダー';
$labels['calendarsubscribe'] = '持続的なもののリスト';
$labels['nocalendarsfound'] = 'カレンダーが見つかりませんでした';
$labels['nrcalendarsfound'] = '$nr カレンダーが見つかりました';
$labels['quickview'] = 'このカレンダーは閲覧のみ';
$labels['invitationspending'] = '保留中の招待';
$labels['invitationsdeclined'] = '断った招待';
$labels['changepartstat'] = '参加者のステータス変更';
$labels['rsvpcomment'] = '招待テキスト';
$labels['listrange'] = '表示範囲:';
$labels['listsections'] = '分割:';
$labels['smartsections'] = 'スマートセクション';
$labels['until'] = 'いつまでに';
$labels['today'] = '今日';
$labels['tomorrow'] = '明日';
$labels['thisweek'] = '今週';
$labels['nextweek'] = '来週';
$labels['prevweek'] = '前週';
$labels['thismonth'] = '今月';
$labels['nextmonth'] = '来月';
$labels['weekofyear'] = '週';
$labels['pastevents'] = '以前';
$labels['futureevents'] = '以降';
$labels['showalarms'] = 'リマインド表示';
$labels['defaultalarmtype'] = 'デフォルト通知設定';
$labels['defaultalarmoffset'] = 'デフォルト通知時間';
$labels['attendee'] = '参加者';
$labels['role'] = 'ロール';
$labels['availability'] = '利用可';
$labels['confirmstate'] = '状態';
$labels['addattendee'] = '参加者追加';
$labels['roleorganizer'] = '編成者';
$labels['rolerequired'] = '要件';
$labels['roleoptional'] = 'オプション';
$labels['rolechair'] = '議長';
$labels['rolenonparticipant'] = '欠席';
$labels['cutypeindividual'] = '個人';
$labels['cutypegroup'] = 'グループ';
$labels['cutyperesource'] = 'リソース';
$labels['cutyperoom'] = 'ルーム';
$labels['availfree'] = '空';
$labels['availbusy'] = 'ビジー';
$labels['availunknown'] = '不明';
$labels['availtentative'] = '仮';
$labels['availoutofoffice'] = '外出';
$labels['scheduletime'] = '利用可検索';
$labels['sendinvitations'] = '招待を送る';
$labels['sendnotifications'] = '変更を参加者へ通知する';
$labels['sendcancellation'] = '中止を参加者へ通知する';
$labels['onlyworkinghours'] = '労働時間内の利用可検索';
$labels['reqallattendees'] = '要件/全参加者';
$labels['prevslot'] = '前のスロット';
$labels['nextslot'] = '次のスロット';
$labels['suggestedslot'] = '指示されたスロット';
$labels['noslotfound'] = '空スロットを見つけられません';
$labels['invitationsubject'] = '"$title" に招待されました';
$labels['invitationattendlinks'] = "この場合あなたのメールクライアントはiTip リクエストをサポートしてません、以下のリンクからこの招待を承諾もしくは辞退してください:\n\$url";
$labels['eventupdatesubject'] = '"$title" はアップデートされました';
$labels['eventupdatesubjectempty'] = 'あなたに関連するイベントが更新されました';
$labels['eventupdatemailbody'] = "*\$title*\n\nいつ: \$date\n\n招待者: \$attendees\n\nあなたのカレンダーアプリケーションにインポートできるアップデートされた全イベントの詳細が添付されたiカレンダーファイルを見つけてください。";
$labels['eventcancelmailbody'] = "*\$title*\n\nいつ: \$date\n\n招待者: \$attendees\n\nイベントが \$organizer によってキャンセルされました。\n\n更新されたイベントの詳細とともに添付されたiカレンダーファイルを見つけてください。";
$labels['itipobjectnotfound'] = 'このメッセージから参照されるイベントはカレンダーには見つかりません。';
$labels['itipmailbodyaccepted'] = "\$sender は以下のイベントへの招待を承諾しました:\n\n*\$title*\n\nいつ: \$date\n\n招待者: \$attendees";
$labels['itipmailbodytentative'] = "\$sender は以下のイベントへの招待を仮承諾しました:\n\n*\$title*\n\nいつ: \$date\n\n招待者: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender は以下のイベントへの招待を辞退しました:\n\n*\$title*\n\nいつ: \$date\n\n招待者: \$attendees";
$labels['itipmailbodycancel'] = "\$sender は以下のイベントへの参加を断りました:\n\n*\$title*\n\nいつ: \$date";
$labels['itipmailbodydelegated'] = "\$sender は以下のイベントへの参加を委任しました:\n\n*\$title*\n\nいつ: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender は以下のイベントへの参加をあなたへ委任しました:\n\n*\$title*\n\nいつ: \$date";
$labels['itipdeclineevent'] = 'このイベントへの招待を辞退しますか?';
$labels['declinedeleteconfirm'] = 'この断ったイベントもカレンダーから削除しますか?';
$labels['itipcomment'] = '招待/通知コメント';
$labels['itipcommenttitle'] = 'このコメントは参加者へ送られた招待/通知メッセージへ添付されます';
$labels['notanattendee'] = 'このイベントの出席者として一覧にありません';
$labels['eventcancelled'] = 'このイベントはキャンセルされました';
$labels['saveincalendar'] = '保存';
$labels['updatemycopy'] = 'マイカレンダーの更新';
$labels['savetocalendar'] = 'カレンダーへ保存';
$labels['openpreview'] = 'カレンダーにチェック';
$labels['noearlierevents'] = '以前のイベントはありません';
$labels['nolaterevents'] = '以降のイベントはありません';
$labels['resource'] = 'リソース';
$labels['addresource'] = 'リソースの記帳';
$labels['findresources'] = 'リソースの検索';
$labels['resourcedetails'] = '詳細';
$labels['resourceavailability'] = '利用可';
$labels['resourceowner'] = '所有者';
$labels['resourceadded'] = 'リソースはイベントへ追加されました';
$labels['tabsummary'] = '要約';
$labels['tabrecurrence'] = '繰返し';
$labels['tabattendees'] = '参加者';
$labels['tabresources'] = 'リソース';
$labels['tabattachments'] = '添付';
$labels['tabsharing'] = '共有';
$labels['deleteobjectconfirm'] = '本当にこのイベントを削除しますか?';
$labels['deleteventconfirm'] = '本当にこのイベントを削除しますか?';
$labels['deletecalendarconfirm'] = '本当にこのカレンダーを全イベントとともに削除しますか?';
$labels['deletecalendarconfirmrecursive'] = 'このカレンダーとカレンダー内のすべてのイベントやサブカレンダーを削除しますか?';
$labels['savingdata'] = 'データを保存中…';
$labels['errorsaving'] = '変更が保存できませんでした。';
$labels['operationfailed'] = '要求された操作ができませんでした。';
$labels['invalideventdates'] = '無効な日付が入力されました! 入力を確認してください。';
$labels['invalidcalendarproperties'] = '無効なカレンダーのプロパティです! 有効な名前を設定してください。';
$labels['searchnoresults'] = '選択されたカレンダーにイベントは見つかりません。';
$labels['successremoval'] = 'イベントを削除しました';
$labels['successrestore'] = 'イベントを復旧しました';
$labels['errornotifying'] = 'イベント参加者への通知が送信できませんでした';
$labels['errorimportingevent'] = 'イベントのインポートができませんでした';
$labels['importwarningexists'] = 'このイベントのコピーはすでにカレンダーにあります。';
$labels['newerversionexists'] = 'このイベントのより新しいヴァージョンがすでにあります。中断されました。';
$labels['nowritecalendarfound'] = 'イベントを保存するカレンダーが見つかりません';
$labels['importedsuccessfully'] = '\'$calendar\' へイベントを追加しました';
$labels['updatedsuccessfully'] = '\'$calendar\' 内のイベントの更新に成功しました';
$labels['attendeupdateesuccess'] = '出席者状況を更新しました';
$labels['itipsendsuccess'] = '出席者へ招待を送信しました。';
$labels['itipresponseerror'] = 'この招待の返信できませんでした';
$labels['itipinvalidrequest'] = 'この招待は間もなく無効になります';
$labels['sentresponseto'] = '$mailto への招待の返信しました';
$labels['localchangeswarning'] = 'あなたのカレンダーにのみ反映されイベントのまとめ役に通知されない変更を行おうとしています';
$labels['importsuccess'] = '$nr イベントをインポートしました';
$labels['importnone'] = 'インポートされたイベントはありません';
$labels['importerror'] = 'インポート中にエラーが発生しました。';
$labels['aclnorights'] = 'このカレンダーの管理権限がありません。';
$labels['changeeventconfirm'] = 'イベント変更';
$labels['removeeventconfirm'] = 'イベントを削除';
$labels['changerecurringeventwarning'] = 'これは繰返しイベントです。現在のイベントのみ、このイベントと今後の全イベント、全イベント、編集したい、もしくは新しいイベントとして保存したい?';
$labels['removerecurringeventwarning'] = 'これは繰返しのイベントです。現在のイベントのみ削除しますか? これと将来のすべてのイベントを削除しますか? または全てを削除しますか?';
$labels['removerecurringallonly'] = 'これは繰返しイベントです。参加者は全ての出来事に対して参加のみを取り消せます。';
$labels['currentevent'] = '現在';
$labels['futurevents'] = '今後';
$labels['allevents'] = '全て';
$labels['saveasnew'] = '新規保存';
$labels['birthdays'] = '誕生日';
$labels['birthdayscalendar'] = '誕生日カレンダー';
$labels['displaybirthdayscalendar'] = '誕生日をカレンダーに表示';
$labels['birthdayscalendarsources'] = 'これらのアドレス帳から';
$labels['birthdayeventtitle'] = '$name さんの誕生日';
$labels['birthdayage'] = '年齢 $age';
$labels['objectchangelog'] = '変更履歴';
$labels['objectdiff'] = '$rev1 から $rev2 への変更';
$labels['objectnotfound'] = 'イベントデータのロードに失敗しました';
$labels['objectchangelognotavailable'] = 'このイベントの更新履歴は利用できません';
$labels['objectdiffnotavailable'] = '選択されたリビジョンでは比較できません';
$labels['revisionrestoreconfirm'] = '本当にリビジョン $rev のイベントを復旧しますか? 現在のイベントは古いバージョンのイベントに置換えられます。';
$labels['objectrestoresuccess'] = 'リビジョン $rev は復旧されました';
$labels['objectrestoreerror'] = '古いバージョンの復旧に失敗しました';
$labels['arialabelminical'] = 'カレンダー日付選択';
$labels['arialabelcalendarview'] = 'カレンダー表示';
$labels['arialabelsearchform'] = 'イベント検索元';
$labels['arialabelquicksearchbox'] = 'イベント検索入力';
$labels['arialabelcalsearchform'] = 'カレンダー検索元';
$labels['calendaractions'] = '行事カレンダー';
$labels['arialabeleventattendees'] = 'イベント参加者リスト';
$labels['arialabeleventresources'] = 'イベントリソースリスト';
$labels['arialabelresourcesearchform'] = 'リソース検索元';
$labels['arialabelresourceselection'] = '利用可能なリソース';
?>

201
localization/ko_KR.inc Normal file
View file

@ -0,0 +1,201 @@
<?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'] = '캘린더 검색 폼';
?>

266
localization/lv.inc Normal file
View file

@ -0,0 +1,266 @@
<?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';
?>

View file

@ -1,39 +1,267 @@
<?php
/**
* RoundCube Calendar
* Localizations for Kolab Calendar plugin
*
* Plugin to add a calendar to RoundCube.
* Copyright (C) 2014, Kolab Systems AG
*
* @version 0.2 BETA 2
* @author Lazlo Westerhof
* @url http://rc-calendar.lazlo.me
* @licence GNU GPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
*
**/
$labels = array();
// config
$labels['default_view'] = 'Standaard agenda';
$labels['time_format'] = 'Tijdsformaat';
$labels['timeslots'] = 'Timeslots per uur';
* 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['first_day'] = 'Eerste weekdag';
// calendar
$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['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['category'] = 'Categorie';
$labels['categories'] = 'Categorieën';
$labels['createcalendar'] = 'Nieuwe agenda maken';
$labels['name'] = 'Naam';
$labels['color'] = 'Kleur';
$labels['day'] = 'Dag';
$labels['week'] = 'Week';
$labels['month'] = 'Maand';
$labels['new_event'] = 'Nieuw evenement';
$labels['edit_event'] = 'Wijzig evenement';
$labels['save'] = 'Bewaar';
$labels['remove'] = 'Verwijder';
$labels['cancel'] = 'Terug';
$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['print'] = 'Afdrukken';
$labels['printtitle'] = 'Agenda\'s afdrukken';
$labels['title'] = 'Samenvatting';
$labels['description'] = 'Beschrijving';
$labels['all-day'] = 'hele dag';
$labels['export'] = 'Exporteer naar ICS';
$labels['category'] = 'Categorie';
$labels['export'] = 'Exporteren';
$labels['exporttitle'] = 'Exporteren naar iCalendar';
$labels['exportrange'] = 'Activiteiten uit';
$labels['exportattachments'] = 'Met bijlagen';
$labels['customdate'] = 'Aangepaste datum';
$labels['location'] = 'Locatie';
?>
$labels['url'] = 'URL';
$labels['date'] = 'Datum';
$labels['start'] = 'Begin';
$labels['starttime'] = 'Begintijd';
$labels['end'] = 'Einde';
$labels['endtime'] = 'Eindtijd';
$labels['repeat'] = 'Herhalen';
$labels['selectdate'] = 'Datum kiezen';
$labels['freebusy'] = 'Toon mij als';
$labels['free'] = 'Beschikbaar';
$labels['busy'] = 'Bezet';
$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['priority'] = 'Prioriteit';
$labels['sensitivity'] = 'Privacy';
$labels['public'] = 'openbaar';
$labels['private'] = 'privé';
$labels['confidential'] = 'vertrouwelijk';
$labels['links'] = 'Referentie';
$labels['alarms'] = 'Herinnering';
$labels['comment'] = 'Opmerking';
$labels['created'] = 'Gemaakt op';
$labels['changed'] = 'Laatst gewijzigd op';
$labels['unknown'] = 'Onbekend';
$labels['eventoptions'] = 'Opties';
$labels['generated'] = 'gegenereerd op';
$labels['eventhistory'] = 'Geschiedenis';
$labels['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['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['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['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['attendee'] = 'Deelnemer';
$labels['role'] = 'Rol';
$labels['availability'] = 'Beschikbaar';
$labels['confirmstate'] = 'Status';
$labels['addattendee'] = 'Deelnemer toevoegen';
$labels['roleorganizer'] = 'Organisator';
$labels['rolerequired'] = 'Verplicht';
$labels['roleoptional'] = 'Optioneel';
$labels['rolechair'] = 'Voorzitter';
$labels['rolenonparticipant'] = 'Afwezig';
$labels['cutypeindividual'] = 'Persoon';
$labels['cutypegroup'] = 'Groep';
$labels['cutyperesource'] = 'Resource';
$labels['cutyperoom'] = 'Ruimte';
$labels['availfree'] = 'Beschikbaar';
$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['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['resourcedetails'] = 'Details';
$labels['resourceavailability'] = 'Beschikbaarheid';
$labels['resourceowner'] = 'Eigenaar';
$labels['resourceadded'] = 'De resource is toegevoegd aan uw activiteit';
$labels['tabsummary'] = 'Samenvatting';
$labels['tabrecurrence'] = 'Herhaling';
$labels['tabattendees'] = 'Deelnemers';
$labels['tabresources'] = 'Resources';
$labels['tabattachments'] = 'Bijlagen';
$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['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['currentevent'] = 'Huidige';
$labels['futurevents'] = 'Toekomstige';
$labels['allevents'] = 'Alle';
$labels['saveasnew'] = 'Opslaan als nieuw';
$labels['birthdays'] = 'Verjaardagen';
$labels['birthdayscalendar'] = 'Verjaardagskalender';
$labels['displaybirthdayscalendar'] = 'Verjaardagskalender weergeven';
$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';
?>

267
localization/pl.inc Normal file
View file

@ -0,0 +1,267 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = '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['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['afterdelete'] = 'Usuń wiadomość';
$labels['afterflagdeleted'] = 'Oznacz jako usunięta';
$labels['aftermoveto'] = 'Przenieś do...';
$labels['itipoptions'] = 'Zaproszenia';
$labels['afteraction'] = 'Wiadomość jest przetwarzana po zaproszeniu lub aktualizacji';
$labels['calendar'] = 'Kalendarz';
$labels['calendars'] = 'Kalendarze';
$labels['category'] = 'Kategoria';
$labels['categories'] = 'Kategorie';
$labels['createcalendar'] = 'Utwórz nowy kalendarz';
$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';
$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['date'] = 'Data';
$labels['start'] = 'Początek';
$labels['starttime'] = 'Początek';
$labels['end'] = 'Koniec';
$labels['endtime'] = 'Koniec';
$labels['repeat'] = 'Powtórz';
$labels['selectdate'] = 'Wybierz datę';
$labels['freebusy'] = '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['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['changed'] = 'Ostatnia modyfikacja';
$labels['unknown'] = 'Nieznany';
$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['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['nextweek'] = 'Następny tydzień';
$labels['prevweek'] = 'Poprzedni tydzień';
$labels['thismonth'] = 'Bieżący 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['availfree'] = 'Wolny';
$labels['availbusy'] = 'Zajęty';
$labels['availunknown'] = 'Nieznany';
$labels['availtentative'] = 'Niepewny';
$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['openpreview'] = 'Sprawdź kalendarz';
$labels['noearlierevents'] = 'Brak wcześniejszych zdarzeń';
$labels['nolaterevents'] = '« Brak póżniejszych zdarzeń';
$labels['resource'] = 'Zasób';
$labels['addresource'] = 'Rezerwuj zasób';
$labels['findresources'] = 'Wyszukaj zasoby';
$labels['resourcedetails'] = 'Szczegóły';
$labels['resourceavailability'] = 'Dostępność';
$labels['resourceowner'] = 'Właściciel';
$labels['resourceadded'] = 'Zasób został dodany do twojego zdarzenia';
$labels['tabsummary'] = 'Podsumowanie';
$labels['tabrecurrence'] = 'Powtarzalność';
$labels['tabattendees'] = 'Uczestnicy';
$labels['tabresources'] = 'Zasoby';
$labels['tabattachments'] = 'Załączniki';
$labels['tabsharing'] = 'Udostępnianie';
$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['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['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';
?>

View file

@ -1,224 +1,288 @@
<?php
$labels = array();
// preferences
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Domyślny widok';
$labels['time_format'] = 'Format czasu';
$labels['timeslots'] = 'Okienka na godzinę';
$labels['timeslots'] = 'Przedziały czasowe w ciągu godziny';
$labels['first_day'] = 'Pierwszy dzień tygodnia';
$labels['first_hour'] = 'Pierwsza godzina do wyświetlenia';
$labels['workinghours'] = 'Godziny pracy';
$labels['first_hour'] = 'Pierwsza godzina';
$labels['workinghours'] = 'Godziny robocze';
$labels['add_category'] = 'Dodaj kategorię';
$labels['remove_category'] = 'Usuń kategorię';
$labels['defaultcalendar'] = 'Utwórz nowe zdarzenia w';
$labels['eventcoloring'] = 'Kolorowanie zdarzeń';
$labels['coloringmode0'] = 'zależnie od kalendarza';
$labels['coloringmode1'] = 'zależnie od kategorii';
$labels['coloringmode2'] = 'Kalendarz - obramowanie, kategoria - tło';
$labels['coloringmode3'] = 'Kategoria - obramowanie, kalendarz - tło';
// calendar
$labels['defaultcalendar'] = 'Twórz nowe zdarzenia w';
$labels['eventcoloring'] = 'Kolor zdarzenia';
$labels['coloringmode0'] = 'Zgodnie z kalendarzem';
$labels['coloringmode1'] = 'Zgodnie z kategorią';
$labels['coloringmode2'] = 'Kalendarz dla obramowania, kategoria dla środka';
$labels['coloringmode3'] = 'Kategoria dla obramowania, kalendarz dla środka';
$labels['afternothing'] = 'Nie rób nic';
$labels['aftertrash'] = 'Przenieś do Kosza';
$labels['afterdelete'] = 'Usuń wiadomość';
$labels['afterflagdeleted'] = 'Oznacz jako usunięta';
$labels['aftermoveto'] = 'Przenieś do...';
$labels['itipoptions'] = 'Zaproszenia';
$labels['afteraction'] = 'Wiadomość jest przetwarzana po zaproszeniu lub aktualizacji';
$labels['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 właściwości kalendarza';
$labels['editcalendar'] = 'Edytuj/Udostępnij kalendarz';
$labels['deletecalendar'] = 'Usuń kalendarz';
$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';
$labels['edit'] = 'Edytuj';
$labels['save'] = 'Zapisz';
$labels['remove'] = 'Usuń';
$labels['removelist'] = 'Usuń z listy';
$labels['cancel'] = 'Anuluj';
$labels['select'] = 'Wybierz';
$labels['print'] = 'Drukuj kalendarze';
$labels['print'] = 'Drukuj';
$labels['printtitle'] = 'Drukuj kalendarze';
$labels['title'] = 'Podsumowanie';
$labels['description'] = 'Opis';
$labels['all-day'] = 'cały dzień';
$labels['export'] = 'Eksport do iCalendarza';
$labels['export'] = 'Eksport';
$labels['exporttitle'] = 'Eksport w formacie iCalendar';
$labels['exportrange'] = 'Zdarzenia z';
$labels['exportattachments'] = 'Z załącznikami';
$labels['customdate'] = 'Własna data';
$labels['location'] = 'Położenie';
$labels['url'] = 'Adres URL';
$labels['date'] = 'Data';
$labels['start'] = 'Początek';
$labels['starttime'] = 'Początek';
$labels['end'] = 'Koniec';
$labels['endtime'] = 'Koniec';
$labels['repeat'] = 'Powtórz';
$labels['selectdate'] = 'Wybierz datę';
$labels['freebusy'] = 'Pokazuj mnie jako';
$labels['freebusy'] = 'Pokaż mnie jako';
$labels['free'] = 'Wolny';
$labels['busy'] = 'Zajęty';
$labels['outofoffice'] = 'Poza buirem';
$labels['outofoffice'] = 'Poza biurem';
$labels['tentative'] = 'Niepewny';
$labels['mystatus'] = 'Mój status';
$labels['status'] = 'Status';
$labels['status-confirmed'] = 'Potwierdzony';
$labels['status-cancelled'] = 'Anulowany';
$labels['status-tentative'] = 'Niepewny';
$labels['priority'] = 'Priorytet';
$labels['sensitivity'] = 'Dostępność';
$labels['sensitivity'] = 'Poufność';
$labels['public'] = 'publiczny';
$labels['private'] = 'prywatny';
$labels['confidential'] = 'zastrzeżony';
$labels['confidential'] = 'poufny';
$labels['links'] = 'Reference';
$labels['alarms'] = 'Przypomnienie';
$labels['comment'] = 'Komentarz';
$labels['created'] = 'Utworzono';
$labels['changed'] = 'Ostatnia modyfikacja';
$labels['unknown'] = 'Nieznany';
$labels['eventoptions'] = 'Opcje';
$labels['generated'] = 'wygenerowano';
$labels['eventhistory'] = 'Historia';
$labels['removelink'] = 'Usuń odnośnik e-mail';
$labels['printdescriptions'] = 'Drukuj opisy';
$labels['parentcalendar'] = 'Nadrzędny kalendarz';
$labels['searchearlierdates'] = '« Wyszukaj wcześniejsze zdarzenia';
$labels['searchlaterdates'] = 'Wyszukaj późniejsze zdarzenia »';
$labels['parentcalendar'] = 'Wstaw wewnątrz';
$labels['searchearlierdates'] = '« Szukaj wcześniejszych zdarzeń';
$labels['searchlaterdates'] = 'Szukaj późniejszych zdarzeń »';
$labels['earlierevents'] = 'Wcześniej';
$labels['laterevents'] = 'Późniejsze';
$labels['andnmore'] = '$nr więcej...';
$labels['showmore'] = 'Pokaż więcej...';
$labels['togglerole'] = 'Kliknij aby zmienić rolę';
$labels['togglerole'] = 'Kliknuj aby przestawić rolę';
$labels['createfrommail'] = 'Zapisz jako zdarzenie';
$labels['importevents'] = 'Import zdarzeń';
$labels['importevents'] = 'Importuj zdarzenia';
$labels['importrange'] = 'Zdarzenia z';
$labels['onemonthback'] = '1 miesiąc wstecz';
$labels['nmonthsback'] = '$nr miesiące wstecz';
// agenda view
$labels['listrange'] = 'Zakres do wyświetlenia:';
$labels['nmonthsback'] = '$nr miesięcy wstecz';
$labels['showurl'] = 'Pokaż adres URL kalendarza';
$labels['showurldescription'] = 'Używaj tego adresu aby dostać się do kalendarza z innych programów (w trybie tylko-do-odczytu). Możesz wkleić go do dowolnej aplikacji obsługującej format iCal.';
$labels['caldavurldescription'] = 'Skopiuj ten adres do aplikacji obsługującej format <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (np. Evolution lub Mozilla Thunderbird) aby zsynchronizować wybrany kalendarz z twoim komputerem lub urządzeniem przenośnym.';
$labels['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';
$labels['nrcalendarsfound'] = 'znaleziono $nr kalendarzy';
$labels['quickview'] = 'Pokaż tylko ten kalendarz';
$labels['invitationspending'] = 'Oczekujące zaproszenia';
$labels['invitationsdeclined'] = 'Odrzucone zaproszenia';
$labels['changepartstat'] = 'Zmień status uczestnika';
$labels['rsvpcomment'] = 'Treść zaproszenia';
$labels['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';
$labels['until'] = 'do';
$labels['until'] = 'dopóki';
$labels['today'] = 'Dzisiaj';
$labels['tomorrow'] = 'Jutro';
$labels['thisweek'] = 'Ten tydzień';
$labels['thisweek'] = 'Bieżący tydzień';
$labels['nextweek'] = 'Następny tydzień';
$labels['thismonth'] = 'Ten miesiąc';
$labels['prevweek'] = 'Poprzedni tydzień';
$labels['thismonth'] = 'Bieżący miesiąc';
$labels['nextmonth'] = 'Następny miesiąc';
$labels['weekofyear'] = 'Tydzień';
$labels['pastevents'] = 'Przeszłość';
$labels['futureevents'] = 'Przyszłość';
// alarm/reminder settings
$labels['showalarms'] = 'Wyświetlaj alarmy';
$labels['defaultalarmtype'] = 'Domyślne ustawienia przypomnienia';
$labels['defaultalarmoffset'] = 'Domyślny czas przypomnienia';
// attendees
$labels['pastevents'] = 'Przeszłe';
$labels['futureevents'] = 'Przyszłe';
$labels['showalarms'] = 'Pokaż powiadomienia';
$labels['defaultalarmtype'] = 'Domyślne powiadomienie';
$labels['defaultalarmoffset'] = 'Domyślny czas powiadomienia';
$labels['attendee'] = 'Uczestnik';
$labels['role'] = 'Rola';
$labels['availability'] = 'Dostępn.';
$labels['availability'] = 'Dostępny';
$labels['confirmstate'] = 'Status';
$labels['addattendee'] = 'Dodaj uczestnika';
$labels['roleorganizer'] = 'Organizator';
$labels['rolerequired'] = 'Wymagany';
$labels['roleoptional'] = 'Opcjonalny';
$labels['roleresource'] = 'Żródło';
$labels['rolechair'] = 'Przewodniczący';
$labels['rolenonparticipant'] = 'Nieobecny';
$labels['cutypeindividual'] = 'Osoba';
$labels['cutypegroup'] = 'Grupa';
$labels['cutyperesource'] = 'Zasób';
$labels['cutyperoom'] = 'Pokój';
$labels['availfree'] = 'Wolny';
$labels['availbusy'] = 'Zajęty';
$labels['availunknown'] = 'Nieznany';
$labels['availtentative'] = 'Niepewny';
$labels['availoutofoffice'] = 'Poza buirem';
$labels['availoutofoffice'] = 'Poza biurem';
$labels['scheduletime'] = 'Sprawdź dostępność';
$labels['sendinvitations'] = 'Wyślij zaproszenia';
$labels['sendnotifications'] = 'Informuj uczestników o zmianach';
$labels['sendcancellation'] = 'Informuj uczestników o odwołaniu zdarzenia';
$labels['onlyworkinghours'] = 'Sprawdź dostępność podczas moich godzin pracy';
$labels['reqallattendees'] = 'Wymagani/wszyscy uczestnicy';
$labels['prevslot'] = 'Poprzednie okienko';
$labels['nextslot'] = 'Następne okienko';
$labels['noslotfound'] = 'Nie można znaleźć wolnego okienka';
$labels['invitationsubject'] = 'Zostałeś zaproszony na "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees\n\nW załączeniu plik w formacie iCalendar zawierający szczegóły zdarzenia, który można zaimportować do Pana/Pani kalendarza.";
$labels['invitationattendlinks'] = "W przypadku gdy Pana/Pani program pocztowy nie obsługuje żądań iTip można użyć następującego łącza w celu akceptacji lub odrzucenia tego zdarzenia:\n\$url";
$labels['sendnotifications'] = 'Powiadom uczestników o zmianach';
$labels['sendcancellation'] = 'Powiadom uczestników o anulowaniu zdarzenia';
$labels['onlyworkinghours'] = 'Sprawdź dostępność w moich godzinach pracy';
$labels['reqallattendees'] = 'Wymagany/wszyscy uczestnicy';
$labels['prevslot'] = 'Poprzedni przedział';
$labels['nextslot'] = 'Następny przedział';
$labels['suggestedslot'] = 'Sugerowany przedział';
$labels['noslotfound'] = 'Nie znaleziono wolnego przedziału czasu';
$labels['invitationsubject'] = 'Zostałeś zaproszony do "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees\n\n\$description\n\nW załączeniu plik w formacie iCalendar ze szczegółami zdarzenia, który możesz zaimportować do twojego kalendarza.";
$labels['invitationattendlinks'] = "W przypadku gdy klient poczty elektronicznej nie obsługuje rządań w formacie iTip, aby zaakceptować lub odrzucić to zaproszenie, można skorzystać z następującego linku:\n\$url ";
$labels['eventupdatesubject'] = '"$title" zostało zaktualizowane';
$labels['eventupdatesubjectempty'] = 'Zdarzenie, które ciebie dotyczy zostało zaktualizowane';
$labels['eventupdatemailbody'] = "*\$title*\n\nKiedy: \$date\n\nUczestnicy: \$attendees\n\n.W załączeniu plik w formacie iCalendar zawierający zaktualizowane szczegóły zdarzenia, który można zaimportować do Pana/Pani kalendarza.";
$labels['eventupdatesubjectempty'] = 'Zdarzenie które cię dotyczy zostało zaktualizowane';
$labels['eventupdatemailbody'] = "*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees\n\nW załączeniu plik w formacie iCalendar zawierający zaktualizowane szczegóły zdarzenia, które możesz zaimportować do swojej aplikacji kalendarza.";
$labels['eventcancelsubject'] = '"$title" zostało anulowane';
$labels['eventcancelmailbody'] = "*\$title*\n\nKiedy: \$date\n\nUczestnicy: \$attendees\n\nZdarzenie zostało anulowane przez \$organizer.\n\n.W załączeniu plik w formacie iCalendar zawierający zaktualizowane szczegóły zdarzenia.";
// invitation handling
$labels['itipinvitation'] = 'Zaproszenie dla';
$labels['itipupdate'] = 'Aktualizacja do';
$labels['itipcancellation'] = 'Anulowano:';
$labels['itipreply'] = 'Odpowiedź do';
$labels['itipaccepted'] = 'Akceptuj';
$labels['itiptentative'] = 'Może';
$labels['itipdeclined'] = 'Odrzuć';
$labels['itipsubjectaccepted'] = '"$title" zostało zaakceptowane przez $name';
$labels['itipsubjecttentative'] = '"$title" zostało warunkowo zaakceptowane $name';
$labels['itipsubjectdeclined'] = '"$title" zostało odrzucone przez $name';
$labels['itipmailbodyaccepted'] = "\$sender zaakceptował zaproszenie na następującego zdarzenie:\n\n*\$title*\n\nKiedy: \$date\n\nUczestnicy: \$attendees";
$labels['itipmailbodytentative'] = "\$sender warunkowo zaakceptował zaproszenie na następujące zdarzenie:\n\n*\$title*\n\nKiedy: \$date\n\nUczestnicy: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender odrzucił zaproszenie na następujące zdarzenie:\n\n*\$title*\n\nKiedy: \$date\n\nUczestnicy: \$attendees";
$labels['eventcancelmailbody'] = "*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees\n\nZdarzenie zostało anulowane przez \$organizer.\n\nW załączeniu plik w formacie iCalendar ze zaktualizowanymi szczegółami zdarzenia.";
$labels['itipobjectnotfound'] = 'W twoim kalendarzu nie znaleziono zdarzenia związanego z tą wiadomością.';
$labels['itipmailbodyaccepted'] = "\$sender zaakceptował zaproszenie do następującego zdarzenia:\n\n*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees";
$labels['itipmailbodytentative'] = "\$sender warunkowo zaakceptował zaproszenie do następującego zdarzenia:\n\n*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender odrzucił zaproszenie na następujące zdarzenie:\n\n*\$title*\n\nKiedy: \$date\n\nZaproszeni: \$attendees";
$labels['itipmailbodycancel'] = "\$sender odrzucił twój udział w zastępującym zdarzeniu:\n\n*\$title*\n\nKiedy: \$date";
$labels['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['itipdeclineevent'] = 'Czy chcesz odrzucić zaproszenie na to zdarzenie?';
$labels['importtocalendar'] = 'Zapisz w moim kalendarzu';
$labels['removefromcalendar'] = 'Usuń z mojego kalendarza';
$labels['updateattendeestatus'] = 'Aktualizuj status uczestników';
$labels['acceptinvitation'] = 'Czy akceptujesz to zaproszenie?';
$labels['youhaveaccepted'] = 'Zaakceptowałeś to zaproszenie';
$labels['youhavetentative'] = 'Zaakceptowałeś warunkowo to zaproszenie';
$labels['youhavedeclined'] = 'Odrzuciłeś to zaproszenie';
$labels['notanattendee'] = 'Nie znajdujesz się na liście uczestników tego zdarzenia';
$labels['declinedeleteconfirm'] = 'Czy chcesz także usunąć to odrzucone zdarzenie ze swojego kalendarza?';
$labels['itipcomment'] = 'Komentarz zaproszenia/powiadomienia';
$labels['itipcommenttitle'] = 'Komentarz ten będzie dołączony do wiadomości wysłanej do uczestników zdarzenia';
$labels['notanattendee'] = 'Nie jesteś na liście uczestników tego zdarzenia';
$labels['eventcancelled'] = 'Zdarzenie zostało anulowane';
$labels['saveincalendar'] = 'zapisz w';
// event dialog tabs
$labels['updatemycopy'] = 'Uaktualnij w moim kalendarzu';
$labels['savetocalendar'] = 'Zapisz do kalendarza';
$labels['openpreview'] = 'Sprawdź kalendarz';
$labels['noearlierevents'] = 'Brak wcześniejszych zdarzeń';
$labels['nolaterevents'] = 'Brak póżniejszych zdarzeń';
$labels['legend'] = 'Legenda';
$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';
$labels['tabrecurrence'] = 'Powtarzalność';
$labels['tabattendees'] = 'Uczestnicy';
$labels['tabresources'] = 'Zasoby';
$labels['tabattachments'] = 'Załączniki';
$labels['tabsharing'] = 'Udostępnianie';
// messages
$labels['deleteobjectconfirm'] = 'Czy na pewno chcesz usunąć to zdarzenie?';
$labels['deleteventconfirm'] = 'Czy na pewno chcesz usunąć to zdarzenie?';
$labels['deletecalendarconfirm'] = 'Czy na pewno chcesz usunąć ten kalendarz wraz z wszystkimi zdarzeniami?';
$labels['savingdata'] = 'Zapisywanie danych...';
$labels['errorsaving'] = 'Nie udało się zapisanie zmian.';
$labels['deletecalendarconfirm'] = 'Czy na pewno chcesz usunąć ten kalendarz z wszystkimi zadaniami?';
$labels['deletecalendarconfirmrecursive'] = 'Czy na pewno chcesz usunąć ten kalendarz ze wszystkimi zdarzeniami i pod-kalendarzami?';
$labels['savingdata'] = 'Zapisuję dane...';
$labels['errorsaving'] = 'Błąd podczas zapisu danych.';
$labels['operationfailed'] = 'Żądana operacja nie powiodła się.';
$labels['invalideventdates'] = 'Wprowadzono błędne daty! Sprawdź dane w formularzu.';
$labels['invalidcalendarproperties'] = 'Błędne właściwości kalendarza! Proszę podać poprawną datę.';
$labels['invalideventdates'] = 'Błędna data! Proszę sprawdzić wprowadzone dane.';
$labels['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 pomyślnie.';
$labels['successrestore'] = 'Zdarzenie zostało odtworzone pomyślnie.';
$labels['errornotifying'] = 'Nie udało się wysłać powiadomień do uczestników';
$labels['errorimportingevent'] = 'Nie powódł się import zdarzenia';
$labels['newerversionexists'] = 'Nowsza wersja tego zdarzenia już istnieje! Przerwano.';
$labels['nowritecalendarfound'] = 'Nie znaleziono kalendarza do zapisu zdarzenia';
$labels['importedsuccessfully'] = 'Zdarzenie zostało pomyślnie zapisane w \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Pomyślnie zaktualizowano status uczestnika';
$labels['itipresponseerror'] = 'Nie udało się wysłać odpowiedzi na to zaproszenie';
$labels['itipinvalidrequest'] = 'To zaproszenie nie jest już aktualne';
$labels['sentresponseto'] = 'Pomyślnie wysłano odpowiedź na zaproszenie do $mailto';
$labels['localchangeswarning'] = 'Próbujesz dokonać zmian, które będą widoczne tylko w twoim prywatnym kalendarzu';
$labels['importsuccess'] = 'Pomyślnie zaimportowano $nr zdarzeń';
$labels['importnone'] = 'Nie znaleziono zdarzeń do importu';
$labels['importerror'] = 'Wystąpił błąd podczas operacji importu.';
// recurrence form
$labels['repeat'] = 'Powtórz';
$labels['frequency'] = 'Częstotliwość';
$labels['never'] = 'nigdy';
$labels['daily'] = 'codziennie';
$labels['weekly'] = 'co tydzień';
$labels['monthly'] = 'co miesiąc';
$labels['yearly'] = 'co rok';
$labels['every'] = 'Każdego';
$labels['days'] = 'dni(a)';
$labels['weeks'] = 'tygodni(a)';
$labels['months'] = 'miesięcy';
$labels['years'] = 'lat w:';
$labels['bydays'] = 'W';
$labels['untildate'] = 'Do';
$labels['each'] = 'Każdy';
$labels['onevery'] = 'W każdy';
$labels['onsamedate'] = 'W tej samej dacie';
$labels['forever'] = 'zawsze';
$labels['recurrencend'] = 'aż do';
$labels['forntimes'] = '$nr raz(y)';
$labels['first'] = 'pierwszy';
$labels['second'] = 'drugi';
$labels['third'] = 'trzeci';
$labels['fourth'] = 'czwarty';
$labels['last'] = 'ostatni';
$labels['dayofmonth'] = 'Dzień miesiąca';
$labels['successremoval'] = 'Zdarzenie zostało usunięte.';
$labels['successrestore'] = 'Zdarzenie zostało przywrócone.';
$labels['errornotifying'] = 'Nie udało się wysłać powiadomień do uczestników zdarzenia';
$labels['errorimportingevent'] = 'Nie udało się zaimportować zdarzenia';
$labels['importwarningexists'] = 'Kopia tego zdarzenia już istnieje w twoim kalendarzu.';
$labels['newerversionexists'] = 'Istnieje nowsza wersja tego zdarzenia ! Przerwano.';
$labels['nowritecalendarfound'] = 'Nie znaleziono kalendarza aby zapisać zdarzenie.';
$labels['importedsuccessfully'] = 'Zdarzenie dodano do \'$calendar\'';
$labels['updatedsuccessfully'] = 'Zdarzenie zostało pomyślnie zaktualizowane w \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Zaktualizowano status uczestnika.';
$labels['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.';
$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['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 powtarzające się. Czy chesz zmienić tylko bieżące wystąpienie, to i wszystkie przyszłe wystąpienia, czy wszystkie wystąpienia i zapisać je jako nowe zdarzenie?';
$labels['removerecurringeventwarning'] = 'To jest zdarzenie powtarzające się. Czy chesz usunąć tylko bieżące wystąpienie, to i wszystkie przyszłe wystąpienia, czy wszystkie wystąpienia tego zdarzenie?';
$labels['changerecurringeventwarning'] = 'To jest zdarzenie powtarzalne. Czy chcesz zmienić bieżące zdarzenie, bieżące i przyszłe, wszystkie, a może zapisać je jako nowe zdarzenie?';
$labels['removerecurringeventwarning'] = 'Jest to zdarzenie cykliczne. Czy chcesz usunąć wyłącznie bieżące zdarzenie i jego przyszłe wystąpienia, czy wszystkie wystąpienia tego zdarzenia?';
$labels['removerecurringallonly'] = 'Jest to zdarzenie cykliczne. Jako uczestnik, możesz jedynie usunąć całe zdarzenie ze wszystkimi jego wystąpieniami.';
$labels['currentevent'] = 'Bieżące';
$labels['futurevents'] = 'Przyszłe';
$labels['allevents'] = 'Wszystkie';
$labels['saveasnew'] = 'Zapisz jako nowy';
$labels['saveasnew'] = 'Zapisz jako nowe';
$labels['recurrenceerror'] = 'Nie można ustalić reguły powtarzalności dla podanej daty początkowej.';
$labels['birthdays'] = 'Urodziny';
$labels['birthdayscalendar'] = 'Kalendarz Urodzin';
$labels['displaybirthdayscalendar'] = 'Wyświetl kalendarz urodzin';
$labels['birthdayscalendarsources'] = 'Z tych książek adresowych';
$labels['birthdayeventtitle'] = 'Urodziny $name';
$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 poprawnie przywrócona';
$labels['objectrestoreerror'] = 'Błąd przywracania 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';
?>

View file

@ -1,38 +1,269 @@
<?php
/**
* RoundCube Calendar
* Localizations for Kolab Calendar plugin
*
* Plugin to add a calendar to RoundCube.
* Copyright (C) 2014, Kolab Systems AG
*
* @version 0.2 BETA 2
* @author Lazlo Westerhof
* @url http://rc-calendar.lazlo.me
* @licence GNU GPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
*
**/
$labels = array();
// config
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Visualização padrão';
$labels['time_format'] = 'Formato da hora';
$labels['timeslots'] = 'Caixas de tempo por hora';
$labels['timeslots'] = 'Faixa de tempo por hora';
$labels['first_day'] = 'Primeiro dia da semana';
// calendar
$labels['first_hour'] = 'Primeira hora a mostrar';
$labels['workinghours'] = 'Horário de trabalho';
$labels['add_category'] = 'Adicionar categoria';
$labels['remove_category'] = 'Remover categoria';
$labels['defaultcalendar'] = 'Criar novos eventos em';
$labels['eventcoloring'] = 'Coloração de evento';
$labels['coloringmode0'] = 'De acordo com o calendário';
$labels['coloringmode1'] = 'De acordo com a categoria';
$labels['coloringmode2'] = 'Calendário para esboço, categoria para conteúdo';
$labels['coloringmode3'] = 'Categoria para esboço, calendário para conteúdo';
$labels['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['name'] = 'Nome';
$labels['color'] = 'Cor';
$labels['day'] = 'Dia';
$labels['week'] = 'Semana';
$labels['month'] = 'Mês';
$labels['agenda'] = 'Agenda';
$labels['new'] = 'Novo';
$labels['new_event'] = 'Novo evento';
$labels['edit_event'] = 'Editar evento';
$labels['edit'] = 'Editar';
$labels['save'] = 'Gravar';
$labels['remove'] = 'Remover';
$labels['removelist'] = 'Remover da lista';
$labels['cancel'] = 'Cancelar';
$labels['select'] = 'Selecionar';
$labels['print'] = 'Imprimir';
$labels['printtitle'] = 'Imprimir calendários';
$labels['title'] = 'Sumário';
$labels['description'] = 'Descrição';
$labels['all-day'] = 'dia-a-dia';
$labels['export'] = 'Exportar para ICS';
$labels['category'] = 'Categoria';
$labels['all-day'] = 'dia todo';
$labels['export'] = 'Exportar';
$labels['exporttitle'] = 'Exportar para iCalendar';
$labels['exportrange'] = 'Eventos de';
$labels['exportattachments'] = 'Com anexos';
$labels['customdate'] = 'Data personalizada';
$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';
$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';
$labels['private'] = 'privado';
$labels['confidential'] = 'confidencial';
$labels['links'] = 'Reference';
$labels['alarms'] = 'Lembrete';
$labels['comment'] = 'Comentário';
$labels['created'] = 'Criado';
$labels['changed'] = 'Última modificação';
$labels['unknown'] = 'Desconhecido';
$labels['eventoptions'] = 'Opções';
$labels['generated'] = 'gerado em';
$labels['eventhistory'] = 'História';
$labels['removelink'] = 'Remover referência do email';
$labels['printdescriptions'] = 'Descrições de impressão';
$labels['parentcalendar'] = 'Inserir dentro';
$labels['searchearlierdates'] = '« Procurar por eventos anteriores';
$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';
$labels['importevents'] = 'Importar eventos';
$labels['importrange'] = 'Eventos de';
$labels['onemonthback'] = '1 mês atrás';
$labels['nmonthsback'] = '$nr meses atrás';
$labels['showurl'] = 'Mostrar URL do calendário';
$labels['showurldescription'] = 'Use o seguinte endereço para acessar (somente leitura) seu calendário em outras aplicações. Você pode copiar e colar este endereço em qualquer software de calendário que suporte o formato iCal.';
$labels['caldavurldescription'] = '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['findcalendars'] = 'Buscar calendários...';
$labels['searchterms'] = 'Buscar termos';
$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';
$labels['until'] = 'até';
$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';
$labels['role'] = 'Papel';
$labels['availability'] = 'Disp.';
$labels['confirmstate'] = 'Situação';
$labels['addattendee'] = 'Adicionar participante';
$labels['roleorganizer'] = 'Organizador';
$labels['rolerequired'] = 'Obrigatório';
$labels['roleoptional'] = 'Opcional';
$labels['rolechair'] = '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['scheduletime'] = 'Procurar disponibilidade';
$labels['sendinvitations'] = 'Enviar convites';
$labels['sendnotifications'] = 'Avisar os participantes sobre as modificações';
$labels['sendcancellation'] = 'Avisar os participantes sobre o cancelamento do evento';
$labels['onlyworkinghours'] = 'Procurar disponibilidade dentro do meu horário de trabalho';
$labels['reqallattendees'] = 'Obrigatório/todos os participantes';
$labels['prevslot'] = 'Espaço anterior';
$labels['nextslot'] = 'Próximo espaço';
$labels['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.";
$labels['invitationattendlinks'] = "No caso do seu cliente de e-mail não suportar requisições iTIP você pode usar o link a seguir para aceitar ou recusar este convite:\n\$url";
$labels['eventupdatesubject'] = '"$title" foi atualizado';
$labels['eventupdatesubjectempty'] = 'Um evento do seu interesse foi atualizado';
$labels['eventupdatemailbody'] = "*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees\n\nSegue em anexo um arquivo iCalendar com os detalhes atualizados do evento na qual você pode importar para sua aplicação de calendário.";
$labels['eventcancelsubject'] = '"$title" foi cancelado.';
$labels['eventcancelmailbody'] = "*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees\n\nO evento foi cancelado por \$organizer.\n\nSegue em anexo um arquivo iCalendar com os detalhes atualizados do evento.";
$labels['itipobjectnotfound'] = 'O evento referenciado por esta mensagem não foi encontrado em seu calendário.';
$labels['itipmailbodyaccepted'] = "\$sender aceitou o convite para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
$labels['itipmailbodytentative'] = "\$sender aceitou como tentativa o convite para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender recusou o convite para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
$labels['itipmailbodycancel'] = "\$sender rejeitou sua participação no seguinte evento:\n\n*\$title*\n\nQuando: \$date";
$labels['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['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';
$labels['resourcedetails'] = 'Detalhes';
$labels['resourceavailability'] = 'Disponibilidade';
$labels['resourceowner'] = 'Dono';
$labels['resourceadded'] = 'O recurso foi adicionado ao seu evento';
$labels['tabsummary'] = 'Sumário';
$labels['tabrecurrence'] = 'Repetição';
$labels['tabattendees'] = 'Participantes';
$labels['tabresources'] = 'Recursos';
$labels['tabattachments'] = 'Anexos';
$labels['tabsharing'] = 'Compartilhamento';
$labels['deleteobjectconfirm'] = 'Você realmente deseja remover este evento?';
$labels['deleteventconfirm'] = 'Você realmente deseja remover este evento?';
$labels['deletecalendarconfirm'] = 'Você realmente deseja excluir este calendário com todos os seus eventos?';
$labels['deletecalendarconfirmrecursive'] = 'Tem a certeza que quer eliminar este calendário com todos os seus eventos e sub-calendários?';
$labels['savingdata'] = 'Salvando dados...';
$labels['errorsaving'] = 'Falha ao salvar as modificações.';
$labels['operationfailed'] = 'A operação requisitada falhou.';
$labels['invalideventdates'] = 'Datas inválidas inseridas! Por favor verifique a inserção.';
$labels['invalidcalendarproperties'] = 'Propriedades de calendário inválidas! Por favor defina um nome válido.';
$labels['searchnoresults'] = 'Nenhum evento encontrado nos calendários selecionados.';
$labels['successremoval'] = 'O evento foi excluído com sucesso.';
$labels['successrestore'] = 'O evento foi restaurado com sucesso.';
$labels['errornotifying'] = 'Falha ao enviar notificações para os participantes do evento.';
$labels['errorimportingevent'] = 'Falha ao importar evento';
$labels['importwarningexists'] = 'Uma cópia deste evento já existe em seu calendário.';
$labels['newerversionexists'] = 'Já existe uma nova versão deste evento! Abortado.';
$labels['nowritecalendarfound'] = 'Nenhum calendário encontrado para salvar o evento';
$labels['importedsuccessfully'] = 'O evento foi adicionado com sucesso em \'$calendar\'';
$labels['updatedsuccessfully'] = 'O evento foi atualizado com sucesso em \'$calendar\'.';
$labels['attendeupdateesuccess'] = 'O status do participante foi atualizado com sucesso.';
$labels['itipsendsuccess'] = 'Convite enviado aos participantes.';
$labels['itipresponseerror'] = 'Falha ao enviar a resposta para este convite de evento';
$labels['itipinvalidrequest'] = 'Este convite não é mais válido';
$labels['sentresponseto'] = 'Resposta de convite enviada com sucesso para $mailto';
$labels['localchangeswarning'] = '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['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';
?>

265
localization/pt_PT.inc Normal file
View file

@ -0,0 +1,265 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Visualização predefinida';
$labels['time_format'] = 'Formato da hora';
$labels['timeslots'] = 'Entradas por hora';
$labels['first_day'] = 'Primeiro dia da semana';
$labels['first_hour'] = 'Primeira hora a mostrar';
$labels['workinghours'] = 'Horário de trabalho';
$labels['add_category'] = 'Adicionar categoria';
$labels['remove_category'] = 'Remover categoria';
$labels['defaultcalendar'] = 'Criar novos eventos em';
$labels['eventcoloring'] = 'Cores dos eventos';
$labels['coloringmode0'] = 'De acordo com o calendário';
$labels['coloringmode1'] = 'De acordo com a categoria';
$labels['coloringmode2'] = 'Calendário para esboço, categoria para conteúdo';
$labels['coloringmode3'] = 'Categoria para esboço, calendário para conteúdo';
$labels['afternothing'] = 'Manter';
$labels['aftertrash'] = 'Enviar para o lixo';
$labels['afterdelete'] = 'Eliminar a mensagem';
$labels['afterflagdeleted'] = 'Marcar como eliminada';
$labels['aftermoveto'] = 'Mover para...';
$labels['itipoptions'] = 'Convites de eventos';
$labels['afteraction'] = 'Depois do processamento de um convite ou mensagem de alteração';
$labels['calendar'] = 'Calendário';
$labels['calendars'] = 'Calendários';
$labels['category'] = 'Categoria';
$labels['categories'] = 'Categorias';
$labels['createcalendar'] = 'Criar um novo calendário';
$labels['name'] = 'Nome';
$labels['color'] = 'Cor';
$labels['day'] = 'Dia';
$labels['week'] = 'Semana';
$labels['month'] = 'Mês';
$labels['agenda'] = 'Agenda';
$labels['new'] = 'Novo';
$labels['new_event'] = 'Novo evento';
$labels['edit_event'] = 'Alterar evento';
$labels['edit'] = 'Alterar';
$labels['save'] = 'Guardar';
$labels['removelist'] = 'Remover da lista';
$labels['cancel'] = 'Cancelar';
$labels['select'] = 'Selecionar';
$labels['print'] = 'Imprimir';
$labels['printtitle'] = 'Imprimir calendários';
$labels['title'] = 'Sumário';
$labels['description'] = 'Descrição';
$labels['all-day'] = 'dia todo';
$labels['export'] = 'Exportar';
$labels['exporttitle'] = 'Exportar para iCalendar';
$labels['exportrange'] = 'Eventos de';
$labels['exportattachments'] = 'Incluir anexos';
$labels['customdate'] = 'Definir data';
$labels['location'] = 'Local';
$labels['url'] = 'Endereço web';
$labels['date'] = 'Data';
$labels['start'] = 'Início';
$labels['starttime'] = 'Hora de início';
$labels['end'] = 'Fim';
$labels['endtime'] = 'Hora de fim';
$labels['repeat'] = 'Repetir';
$labels['selectdate'] = 'Escolher data';
$labels['freebusy'] = 'Mostrar-me como';
$labels['free'] = 'Livre';
$labels['busy'] = 'Ocupado';
$labels['outofoffice'] = 'Ausente';
$labels['tentative'] = 'Tentativa';
$labels['mystatus'] = 'O meu estado';
$labels['status'] = 'Estado';
$labels['status-confirmed'] = 'Confirmado';
$labels['status-cancelled'] = 'Cancelado';
$labels['status-tentative'] = 'Tentativa';
$labels['priority'] = 'Prioridade';
$labels['sensitivity'] = 'Privacidade';
$labels['public'] = 'público';
$labels['private'] = 'privado';
$labels['confidential'] = 'confidencial';
$labels['links'] = 'Referência';
$labels['alarms'] = 'Lembrete';
$labels['comment'] = 'Comentário';
$labels['created'] = 'Criado em';
$labels['changed'] = 'Alterado em';
$labels['unknown'] = 'Desconhecido';
$labels['eventoptions'] = 'Opções';
$labels['generated'] = 'produzido a';
$labels['eventhistory'] = 'Histórico';
$labels['removelink'] = 'Remover referência de email ';
$labels['printdescriptions'] = 'Descrições de impressão';
$labels['parentcalendar'] = 'Inserir dentro';
$labels['searchearlierdates'] = '« Procurar eventos anteriores';
$labels['searchlaterdates'] = 'Procurar eventos posteriores »';
$labels['andnmore'] = '$nr mais...';
$labels['togglerole'] = 'Clique para alternar o papel';
$labels['createfrommail'] = 'Salvar como evento';
$labels['importevents'] = 'Importar eventos';
$labels['importrange'] = 'Eventos de';
$labels['onemonthback'] = '1 mês atrás';
$labels['nmonthsback'] = '$nr meses atrás';
$labels['showurl'] = 'Mostrar URL do calendário';
$labels['showurldescription'] = 'Use o seguinte endereço para obter acesso (somente leitura) ao seu calendário com outras aplicações. Para isso pode copiar e colar este endereço em qualquer software que suporte o formato iCal.';
$labels['caldavurldescription'] = 'Para sincronizar este calendário com o seu computador ou dispositivos móveis deverá copiar este endereço <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> para a aplicação cliente. (ex. Evolution ou Mozilla Thunderbird)';
$labels['findcalendars'] = 'Procurar calendários...';
$labels['searchterms'] = 'Procurar termos';
$labels['calsearchresults'] = 'Calendários disponíveis';
$labels['calendarsubscribe'] = 'Listar sempre';
$labels['nocalendarsfound'] = 'Não foram encontrados calendários';
$labels['nrcalendarsfound'] = '$nr calendários encontrados';
$labels['quickview'] = 'Só mostrar este calendário';
$labels['invitationspending'] = 'Convites pendentes';
$labels['invitationsdeclined'] = 'Convites recusados';
$labels['changepartstat'] = 'Mudar estado de participante';
$labels['rsvpcomment'] = 'Mensagem de convite';
$labels['listrange'] = 'Intervalo para exibir:';
$labels['listsections'] = 'Dividir em:';
$labels['smartsections'] = 'Seções inteligentes';
$labels['until'] = 'até';
$labels['today'] = 'Hoje';
$labels['tomorrow'] = 'Amanhã';
$labels['thisweek'] = 'Esta semana';
$labels['nextweek'] = 'Próxima semana';
$labels['prevweek'] = 'Semana anterior';
$labels['thismonth'] = 'Este mês';
$labels['nextmonth'] = 'Próximo mês';
$labels['weekofyear'] = 'Semana';
$labels['pastevents'] = 'Passado';
$labels['futureevents'] = 'Futuro';
$labels['showalarms'] = 'Mostrar lembretes';
$labels['defaultalarmtype'] = 'Notificação predefinida dos lembretes';
$labels['defaultalarmoffset'] = 'Agendamento predefinido das notificações';
$labels['attendee'] = 'Participante';
$labels['role'] = 'Papel';
$labels['availability'] = 'Disp.';
$labels['confirmstate'] = 'Estado';
$labels['addattendee'] = 'Adicionar participante';
$labels['roleorganizer'] = 'Organizador';
$labels['rolerequired'] = 'Obrigatório';
$labels['roleoptional'] = 'Facultativo';
$labels['rolechair'] = 'Responsável';
$labels['rolenonparticipant'] = 'Ausente';
$labels['cutypeindividual'] = 'Individual';
$labels['cutypegroup'] = 'Grupo';
$labels['cutyperesource'] = 'Recurso';
$labels['cutyperoom'] = 'Sala';
$labels['availfree'] = 'Disponível';
$labels['availbusy'] = 'Ocupado';
$labels['availunknown'] = 'Desconhecido';
$labels['availtentative'] = 'Tentativa';
$labels['availoutofoffice'] = 'Ausente';
$labels['scheduletime'] = 'Procurar disponibilidade';
$labels['sendinvitations'] = 'Enviar convites';
$labels['sendnotifications'] = 'Avisar os participantes sobre as alterações';
$labels['sendcancellation'] = 'Avisar os participantes sobre o cancelamento do evento';
$labels['onlyworkinghours'] = 'Procurar disponibilidade dentro do meu horário de trabalho';
$labels['reqallattendees'] = 'Necessário/todos os participantes';
$labels['prevslot'] = 'Espaço anterior';
$labels['nextslot'] = 'Próximo espaço';
$labels['suggestedslot'] = 'Espaço sugerido';
$labels['noslotfound'] = 'Incapaz de encontrar um horário disponível';
$labels['invitationsubject'] = 'Foi convidado para "$title"';
$labels['invitationattendlinks'] = "No caso do seu cliente de e-mail não suportar pedidos do tipo iTIP, pode usar o seguinte link para aceitar ou recusar este convite:\n\$url";
$labels['eventupdatesubject'] = '"$title" foi atualizado.';
$labels['eventupdatesubjectempty'] = 'Um evento do seu interesse foi atualizado';
$labels['eventupdatemailbody'] = "*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees\n\nSegue em anexo um arquivo iCalendar atualizado com os detalhes de um evento, o qual pode importar para o seu calendário.";
$labels['eventcancelsubject'] = '"$title" foi cancelado';
$labels['eventcancelmailbody'] = "*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees\n\nO evento foi cancelado por \$organizer.\n\nSegue em anexo um arquivo iCalendar com os detalhes atualizados do evento.";
$labels['itipobjectnotfound'] = 'O evento citado nesta mensagem não foi encontrado no seu calendário.';
$labels['itipmailbodyaccepted'] = "\$sender aceitou o convite para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
$labels['itipmailbodytentative'] = "\$sender aceitou o convite como \"tentativa\" para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender recusou o convite para o seguinte evento:\n\n*\$title*\n\nQuando: \$date\n\nConvidados: \$attendees";
$labels['itipmailbodycancel'] = "\$sender rejeitou a sua participação no seguinte evento:\n\n*\$title*\n\nQuando: \$date";
$labels['itipmailbodydelegated'] = "\$sender delegou a participação no seguinte evento:\n\n*\$title*\n\nWhen: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender delegou a sua participação no seguinte evento:\n\n*\$title*\n\nWhen: \$date";
$labels['itipdeclineevent'] = 'Deseja recusar o convite para este evento?';
$labels['declinedeleteconfirm'] = 'Também deseja apagar o evento recusado do seu calendário?';
$labels['itipcomment'] = 'Observações — Convite/notificação';
$labels['itipcommenttitle'] = 'Estas observações serão enviadas com o convite/notificação aos participantes.';
$labels['notanattendee'] = 'Não está listado como participante neste evento';
$labels['eventcancelled'] = 'O evento foi cancelado';
$labels['saveincalendar'] = 'guardar em';
$labels['updatemycopy'] = 'Atualizar no meu calendário';
$labels['savetocalendar'] = 'Guardar no calendário';
$labels['openpreview'] = 'Verificar calendário';
$labels['noearlierevents'] = 'Sem eventos anteriores';
$labels['nolaterevents'] = 'Sem eventos posteriores';
$labels['resource'] = 'Recurso';
$labels['addresource'] = 'Livro de recursos';
$labels['findresources'] = 'Encontrar recursos';
$labels['resourcedetails'] = 'Detalhes';
$labels['resourceavailability'] = 'Disponibilidade';
$labels['resourceowner'] = 'Dono';
$labels['resourceadded'] = 'O recurso foi adicionado ao seu evento';
$labels['tabsummary'] = 'Sumário';
$labels['tabrecurrence'] = 'Repetição';
$labels['tabattendees'] = 'Participantes';
$labels['tabresources'] = 'Recursos';
$labels['tabattachments'] = 'Anexos';
$labels['tabsharing'] = 'Partilha';
$labels['deleteobjectconfirm'] = 'Tem a certeza que quer eliminar este evento?';
$labels['deleteventconfirm'] = 'Tem a certeza que quer eliminar este evento?';
$labels['deletecalendarconfirm'] = 'Tem a certeza que quer eliminar este calendário e todos os seus eventos?';
$labels['deletecalendarconfirmrecursive'] = 'Tem a certeza que quer eliminar este calendário com todos os seus eventos e sub-calendários?';
$labels['savingdata'] = 'A guardar os dados...';
$labels['errorsaving'] = 'Falha ao guardar as alterações.';
$labels['operationfailed'] = 'A operação pedida falhou.';
$labels['invalideventdates'] = 'As datas são inválidas! Por favor, verifique novamente.';
$labels['invalidcalendarproperties'] = 'Propriedades de calendário inválidas! Por favor defina um nome válido.';
$labels['searchnoresults'] = 'Nenhum evento encontrado nos calendários selecionados.';
$labels['successremoval'] = 'O evento foi excluído com sucesso.';
$labels['successrestore'] = 'O evento foi restaurado com sucesso.';
$labels['errornotifying'] = 'Falha ao enviar notificações para os participantes do evento.';
$labels['errorimportingevent'] = 'Falha ao importar evento';
$labels['importwarningexists'] = 'Uma cópia deste evento já existe em seu calendário.';
$labels['newerversionexists'] = 'Já existe uma nova versão deste evento! Abortado.';
$labels['nowritecalendarfound'] = 'Nenhum calendário encontrado para salvar o evento';
$labels['importedsuccessfully'] = 'O evento foi adicionado com sucesso em \'$calendar\'';
$labels['updatedsuccessfully'] = 'O evento foi atualizado com sucesso em \'$calendar\'.';
$labels['attendeupdateesuccess'] = 'O status do participante foi atualizado com sucesso.';
$labels['itipsendsuccess'] = 'Convite enviado aos participantes.';
$labels['itipresponseerror'] = 'Falha ao enviar a resposta para este convite de evento';
$labels['itipinvalidrequest'] = 'Este convite já não é válido';
$labels['sentresponseto'] = 'Resposta de convite enviada com sucesso para $mailto';
$labels['localchangeswarning'] = 'As alterações que pretende efetuar só serão válidas no seu calendário e não serão enviadas ao organizador do evento.';
$labels['importsuccess'] = 'Importado com sucesso $nr eventos';
$labels['importnone'] = 'Não há eventos a serem importados';
$labels['importerror'] = 'Ocorreu um erro na importação';
$labels['aclnorights'] = 'Não tem permissão de administrador neste calendário.';
$labels['changeeventconfirm'] = 'Alterar evento';
$labels['removeeventconfirm'] = 'Eliminar evento';
$labels['changerecurringeventwarning'] = 'Este evento é recorrente. Deseja alterar a ocorrência atual, esta e todas as futuras ocorrências ou guardar como um novo evento?';
$labels['removerecurringeventwarning'] = 'Este evento é recorrente. Deseja eliminar a ocorrência atual, esta e todas as futuras ocorrências ou todas as ocorrências do evento?';
$labels['removerecurringallonly'] = 'Este evento é recorrente. Como participante, só pode apagar apagar o evento com todas as ocorrências.';
$labels['currentevent'] = 'Atual';
$labels['futurevents'] = 'Futuro';
$labels['allevents'] = 'Todos';
$labels['saveasnew'] = 'Guardar como';
$labels['birthdays'] = 'Aniversários';
$labels['birthdayscalendar'] = 'Calendário de aniversários';
$labels['displaybirthdayscalendar'] = 'Mostrar calendário de aniversários';
$labels['birthdayscalendarsources'] = 'Agendas a incluir:';
$labels['birthdayeventtitle'] = 'Aniversário de $name';
$labels['birthdayage'] = 'Idade $age';
$labels['objectchangelog'] = 'Alterar histórico';
$labels['objectdiff'] = 'Diferenças entre $rev1 e $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 versões selecionadas';
$labels['revisionrestoreconfirm'] = 'Confirma a reposição das alterações $rev deste evento? Os dados atuais serão substituídos pela versão anterior.';
$labels['objectrestoresuccess'] = 'A versão $rev foi reposta com sucesso.';
$labels['objectrestoreerror'] = 'Não foi possível repor a versão anterior.';
$labels['arialabelminical'] = 'Seleção da data do calendário';
$labels['arialabelcalendarview'] = 'Vista do calendário';
$labels['arialabelsearchform'] = 'Quadro de pesquisa de eventos';
$labels['arialabelquicksearchbox'] = 'Pesquisa de eventos';
$labels['arialabelcalsearchform'] = 'Quadro de pesquisa de calendários';
$labels['calendaractions'] = 'Ações do calendário';
$labels['arialabeleventattendees'] = 'Lista de participantes do evento';
$labels['arialabeleventresources'] = 'Lista de recursos para eventos';
$labels['arialabelresourcesearchform'] = 'Quadro de pesquisa de recursos';
$labels['arialabelresourceselection'] = 'Recursos disponíveis';
?>

View file

@ -1,116 +1,151 @@
<?php
/**
* RoundCube Calendar
* Localizations for Kolab Calendar plugin
*
* Plugin to add a calendar to RoundCube.
* Copyright (C) 2014, Kolab Systems AG
*
* @version 0.2 BETA 2
* @author Lazlo Westerhof
* @url http://rc-calendar.lazlo.me
* @licence GNU GPL
* @copyright (c) 2010 Lazlo Westerhof - Netherlands
*
**/
$labels = array();
// config
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Вид по умолчанию';
$labels['time_format'] = 'Формат времени';
$labels['timeslots'] = 'Промежутков в час';
$labels['first_day'] = 'Первый день недели';
$labels['default_view'] = 'Вид по умолчанию';
$labels['first_hour'] = 'Показывать начиная с';
$labels['workinghours'] = 'Рабочие часы';
$labels['add_category'] = 'Добавить категорию';
$labels['remove_category'] = 'Удалить категорию';
$labels['defaultcalendar'] = 'Создать новое событие в';
$labels['defaultcalendar'] = 'Создавать новое событие в';
$labels['eventcoloring'] = 'Цвет события';
$labels['coloringmode0'] = 'Согласно цвета календаря';
$labels['coloringmode1'] = 'Согласно цвета категории';
$labels['coloringmode2'] = 'Календарь для внешних, категория для внутренних цветов';
$labels['coloringmode3'] = 'Категория для внешних, календарь для внутренних цветов';
// calendar
$labels['coloringmode2'] = 'Цвет календаря для рамки, цвет категории для фона';
$labels['coloringmode3'] = 'Цвет категории для рамки, цвет календаря для фона';
$labels['afternothing'] = 'Ничего не делать';
$labels['aftertrash'] = 'Переместить в корзину';
$labels['afterdelete'] = 'Удалить сообщение';
$labels['afterflagdeleted'] = 'Пометить как удалённое';
$labels['aftermoveto'] = 'Переместить в...';
$labels['itipoptions'] = 'Приглашения на события';
$labels['afteraction'] = 'После того, как приглашение или сообщение о его изменении обработано';
$labels['showweekno'] = 'Показать номера недели';
$labels['weeknonone'] = 'никогда';
$labels['weeknodatepicker'] = 'только в режиме выбора даты';
$labels['weeknoall'] = 'посмотреть в режиме выбора даты и календаря';
$labels['calendar'] = 'Календарь';
$labels['day'] = 'День';
$labels['week'] = 'Неделя';
$labels['month'] = 'Месяц';
$labels['new_event'] = 'Новое событие';
$labels['edit_event'] = 'Изменить событие';
$labels['save'] = 'Сохранить';
$labels['remove'] = 'Удалить';
$labels['cancel'] = 'Завершить';
$labels['calendars'] = 'Календари';
$labels['category'] = 'Категория';
$labels['categories'] = 'Категории';
$labels['addcalendar'] = 'Добавить календарь';
$labels['createcalendar'] = 'Создать новый календарь';
$labels['editcalendar'] = 'Редактировать свойства календаря';
$labels['editcalendar'] = 'Редактировать/Поделиться календарь';
$labels['deletecalendar'] = 'Удалить календарь';
$labels['name'] = 'Имя';
$labels['color'] = 'Цвет';
$labels['day'] = 'День';
$labels['week'] = 'Неделя';
$labels['month'] = 'Месяц';
$labels['agenda'] = 'Список';
$labels['new'] = 'Новый';
$labels['new_event'] = 'Новое событие';
$labels['edit_event'] = 'Изменить событие';
$labels['edit'] = 'Редактировать';
$labels['save'] = 'Сохранить';
$labels['removelist'] = 'Удалить из списка';
$labels['cancel'] = 'Отмена';
$labels['select'] = 'Выбрать';
$labels['print'] = 'Распечатать';
$labels['printtitle'] = 'Распечатать календарь';
$labels['title'] = 'Название мероприятия';
$labels['title'] = 'Сводка';
$labels['description'] = 'Описание';
$labels['all-day'] = 'целый день';
$labels['all-day'] = 'весь день';
$labels['export'] = 'Экспорт';
$labels['exporttitle'] = 'Экспорт в iCalendar';
$labels['exportrange'] = 'События начиная с';
$labels['exportattachments'] = 'С вложениями';
$labels['customdate'] = 'Специальная дата';
$labels['location'] = 'Место';
$labels['url'] = 'URL';
$labels['date'] = 'Дата';
$labels['start'] = 'Начало';
$labels['starttime'] = 'Время начала';
$labels['end'] = 'Конец';
$labels['endtime'] = 'Время окончания';
$labels['repeat'] = 'Повторить';
$labels['selectdate'] = 'Выберите дату';
$labels['freebusy'] = 'Показать как';
$labels['free'] = 'Свободен';
$labels['busy'] = 'Занят';
$labels['outofoffice'] = 'Вне офиса';
$labels['tentative'] = 'Предварительно';
$labels['tentative'] = 'Неопределённо';
$labels['mystatus'] = 'Мой статус';
$labels['status'] = 'Статус';
$labels['status-confirmed'] = 'Подтвеждённый';
$labels['status-cancelled'] = 'Отмененные';
$labels['status-tentative'] = 'Неопределённо';
$labels['priority'] = 'Приоритет';
$labels['sensitivity'] = 'Секретность';
$labels['public'] = 'Общедоступная';
$labels['private'] = 'Личная';
$labels['confidential'] = 'Конфиденциальная';
$labels['public'] = 'общедоступная';
$labels['private'] = 'личная';
$labels['confidential'] = 'конфиденциальная';
$labels['links'] = 'Ссылка';
$labels['alarms'] = 'Напоминание';
$labels['generated'] = 'generated at';
$labels['printdescriptions'] = 'Распечатать описание';
$labels['comment'] = 'Комментарий';
$labels['created'] = 'Создана';
$labels['changed'] = 'Изменена';
$labels['unknown'] = 'Неизвестно';
$labels['eventoptions'] = 'Опции';
$labels['generated'] = 'создан';
$labels['eventhistory'] = 'История';
$labels['removelink'] = 'Удалить ссылку на письмо';
$labels['printdescriptions'] = 'Печатать описания';
$labels['parentcalendar'] = 'Вставить внутри';
$labels['searchearlierdates'] = 'В« Искать для ранних событий';
$labels['searchlaterdates'] = 'Искать для поздних событий В»';
$labels['searchearlierdates'] = '« Искать события раньше';
$labels['searchlaterdates'] = 'Искать события позже »';
$labels['earlierevents'] = 'Ранее';
$labels['laterevents'] = 'Позднее';
$labels['andnmore'] = '$nr больше...';
$labels['showmore'] = 'Показать больше...';
$labels['togglerole'] = 'Кликните для переключения роли';
$labels['createfrommail'] = 'Сохранить как событие';
$labels['importevents'] = 'Импортировать события';
$labels['importrange'] = 'События с';
$labels['importrange'] = 'События начиная с';
$labels['onemonthback'] = '1 месяц назад';
$labels['nmonthsback'] = '$nr месяцев назад';
$labels['nmonthsback'] = '$nr месяца(ев) назад';
$labels['showurl'] = 'Показать URL календаря';
$labels['showurldescription'] = 'Используйте следующий адрес для доступа к Вашему календарю из других приложений. Вы можете скопировать и вставить это в любое приложение которое поддерживает формат iCal.';
// agenda view
$labels['showurldescription'] = 'Используйте следующий адрес для просмотра Вашего календаря из других приложений. Вы можете скопировать и вставить это в любое приложение которое поддерживает формат iCal.';
$labels['caldavurldescription'] = 'Скопируйте этот адрес в клиент, <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">поддерживающий CalDAV</a> (например, Evolution или Mozilla Thunderbird) для полной синхронизации данного календаря со своим компьютером или мобильным устройством.';
$labels['showfburl'] = 'Показать свободный-занятый URL';
$labels['fburldescription'] = 'Используйте следующий адрес для доступа к информации свободе-занятости из других приложений. Вы можете скопировать и вставить это в любое программное обеспечение календаря, которое поддерживает информацию о свободе-занятости в формате iCal. Для этого URL аутентификация не требуется.';
$labels['findcalendars'] = 'Найти календари...';
$labels['searchterms'] = 'Условия поиска';
$labels['findevents'] = 'Найти события';
$labels['calsearchresults'] = 'Доступные календари';
$labels['calendarsubscribe'] = 'Всегда показывать';
$labels['nocalendarsfound'] = 'Календарей не найдено';
$labels['nrcalendarsfound'] = '$nr календарей найдено';
$labels['quickview'] = 'Просмотреть только этот календарь';
$labels['invitationspending'] = 'Ожидающие приглашения';
$labels['invitationsdeclined'] = 'Отклонённые приглашения';
$labels['changepartstat'] = 'Изменить статус участника';
$labels['rsvpcomment'] = 'Текст приглашения';
$labels['eventstartsync'] = 'Переместить дату начала события к первому случаю';
$labels['weekshort'] = 'Нд';
$labels['listrange'] = 'Диапазон:';
$labels['listsections'] = 'Разделитесь на:';
$labels['listsections'] = 'Разделить на:';
$labels['smartsections'] = 'Умные секции';
$labels['until'] = 'до';
$labels['today'] = 'Сегодня';
$labels['tomorrow'] = 'Завтра';
$labels['thisweek'] = 'Текущая неделя';
$labels['nextweek'] = 'Следующая неделя';
$labels['prevweek'] = 'Предыдущая неделя';
$labels['thismonth'] = 'Этот месяц';
$labels['nextmonth'] = 'Следующий месяц';
$labels['weekofyear'] = 'Неделя';
$labels['pastevents'] = 'Прошлое';
$labels['futureevents'] = 'Будующее';
// alarm/reminder settings
$labels['showalarms'] = 'Показать уведомление';
$labels['pastevents'] = 'Прошедшее';
$labels['futureevents'] = 'Будущее';
$labels['showalarms'] = 'Показывать напоминания';
$labels['defaultalarmtype'] = 'Настройки напоминания по умолчанию';
$labels['defaultalarmoffset'] = 'Время напоминания по умолчанию';
// attendees
$labels['attendee'] = 'Участник';
$labels['role'] = 'Роль';
$labels['availability'] = 'Доступность';
@ -118,125 +153,136 @@ $labels['confirmstate'] = 'Статус';
$labels['addattendee'] = 'Добавить участника';
$labels['roleorganizer'] = 'Организатор';
$labels['rolerequired'] = 'Обязательный';
$labels['roleoptional'] = 'Опциональный';
$labels['rolechair'] = 'Наблюдатель';
$labels['roleoptional'] = 'Необязательный';
$labels['rolechair'] = 'Место';
$labels['rolenonparticipant'] = 'Absent';
$labels['cutypeindividual'] = 'Индивидуум';
$labels['cutypegroup'] = 'Группа';
$labels['cutyperesource'] = 'Ресурс';
$labels['cutyperoom'] = 'Комната';
$labels['availfree'] = 'Свободен';
$labels['availbusy'] = 'Занят';
$labels['availunknown'] = 'Неизвестно';
$labels['availtentative'] = 'Предварительно';
$labels['availoutofoffice'] = 'Вне офиса';
$labels['scheduletime'] = 'Найти доступность';
$labels['sendinvitations'] = 'Отправить приглашение';
$labels['sendinvitations'] = 'Отправить приглашения';
$labels['sendnotifications'] = 'Уведомить участников об изменениях';
$labels['sendcancellation'] = 'Уведомить участников об отмене события';
$labels['onlyworkinghours'] = 'Найти возможность в мои рабочие часы';
$labels['onlyworkinghours'] = 'Найти доступность в мои рабочие часы';
$labels['reqallattendees'] = 'Необходимые/все участники';
$labels['prevslot'] = 'Предыдущее время';
$labels['nextslot'] = 'Следующее время';
$labels['suggestedslot'] = 'Предлагаемое время';
$labels['noslotfound'] = 'Невозможно найти свободное время';
$labels['invitationsubject'] = 'Вы приглашены на "$title"';
$labels['invitationmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nПожалуйста найдите вложения в iCalendar файл со всеми деталями события которое Вы можете импортировать в вашу программу календаря.";
$labels['invitationattendlinks'] = "В случае, если Ваш почтовый клиент не поддерживает запросы iTip, Вы можете использовать ссылку, чтобы принять или отклонить это приглашение:\n\$url";
$labels['invitationmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nВо вложении вы найдёте файл iCalendar со всеми деталями события, который вы можете импортировать в приложение календаря.";
$labels['invitationattendlinks'] = "В случае, если Ваш почтовый клиент не поддерживает запросы iTip, Вы можете использовать ссылку данную ниже, чтобы принять или отклонить это приглашение:\n\$url";
$labels['eventupdatesubject'] = '"$title" было обновлено';
$labels['eventupdatesubjectempty'] = 'Событие, которое касается Вас было обновлено';
$labels['eventupdatemailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nПожалуйста найдите вложения в iCalendar файл со всеми деталями события которое Вы можете импортировать в вашу программу календаря.";
$labels['eventupdatesubjectempty'] = 'Событие, которое касается Вас, было обновлено';
$labels['eventupdatemailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nВо вложении вы найдёте файл iCalendar со всеми изменениями в событии, который Вы можете импортировать в Вашу программу-ежедневник.";
$labels['eventcancelsubject'] = '"$title" было отменено';
$labels['eventcancelmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nЭто событие отменено \$organizer.\n\nПожалуйста посмотрите вложение в iCalendar файл которое обновит детали события.";
// invitation handling
$labels['itipinvitation'] = 'Приглашение на';
$labels['itipupdate'] = 'Обновление';
$labels['itipcancellation'] = 'Отмененный:';
$labels['itipreply'] = 'Ответить';
$labels['itipaccepted'] = 'Принять';
$labels['itiptentative'] = 'Может быть';
$labels['itipdeclined'] = 'Отклонить';
$labels['itipsubjectaccepted'] = '"$title" принято $name';
$labels['itipsubjecttentative'] = '"$title" предварительно принято $name';
$labels['itipsubjectdeclined'] = '"$title" отклонено $name';
$labels['itipmailbodyaccepted'] = "\$sender принял приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
$labels['itipmailbodytentative'] = "\$sender предварительно принял приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender отклонил приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
$labels['eventcancelmailbody'] = "*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees\n\nЭто событие отменено \$organizer.\n\nВо вложении вы найдёте файл iCalendar со всеми изменениями в событии.";
$labels['itipobjectnotfound'] = 'Событие, упомянутое в этом сообщении, не найдено в вашем календаре.';
$labels['itipmailbodyaccepted'] = "\$sender принял(а) приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
$labels['itipmailbodytentative'] = "\$sender предварительно принял(а) приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender отклонил(а) приглашение на следующее событие:\n\n*\$title*\n\nКогда: \$date\n\nПриглашенные: \$attendees";
$labels['itipmailbodycancel'] = "\$sender отклонил ваше участие в событии:\n\n*\$title*\n\nДата: \$date";
$labels['itipmailbodydelegated'] = "\$sender перепоручил(а) учестие в событии:\n\n*\$title*\n\nДата: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender перепоручил(а) Вам участие в событии:\n\n*\$title*\n\nДата: \$date";
$labels['itipdeclineevent'] = 'Вы хотите отклонить приглашение на это событие?';
$labels['importtocalendar'] = 'Сохранить в мой календарь';
$labels['removefromcalendar'] = 'Удалить из моего календаря';
$labels['updateattendeestatus'] = 'Обновить статус участника';
$labels['acceptinvitation'] = 'Вы принимаете это приглашение?';
$labels['youhaveaccepted'] = 'Вы приняли это приглашение';
$labels['youhavetentative'] = 'Вы предварительно приняли это приглашение';
$labels['youhavedeclined'] = 'Вы отклонили это приглашение';
$labels['notanattendee'] = 'Вы не в списке этого события';
$labels['declinedeleteconfirm'] = 'Хотите ли вы так же удалить это отклонённое событие из вашего календаря?';
$labels['itipcomment'] = 'Комментарий к приглашению/извещению';
$labels['itipcommenttitle'] = 'Этот комментарий будет прикреплён к приглашению/оповещению, отправленному участникам';
$labels['notanattendee'] = 'Вы не в списке участников этого события';
$labels['eventcancelled'] = 'Это событие отменено';
$labels['saveincalendar'] = 'сохранить в';
// event dialog tabs
$labels['updatemycopy'] = 'Обновить в моём календаре';
$labels['savetocalendar'] = 'Сохранить в календарь';
$labels['openpreview'] = 'Проверить календарь';
$labels['noearlierevents'] = 'Нет предыдущих событий';
$labels['nolaterevents'] = 'Нет последующих событий';
$labels['legend'] = 'Легенда';
$labels['resource'] = 'Ресурс';
$labels['addresource'] = 'Зарезервировать ресурс';
$labels['findresources'] = 'Найти ресурсы';
$labels['resourcedetails'] = 'Подробнее';
$labels['resourceavailability'] = 'Доступность';
$labels['resourceprops'] = 'Свойства ресурса';
$labels['resourceowner'] = 'Владелец';
$labels['resourceadded'] = 'Ресурс добавлен в ваше событие';
$labels['tabsummary'] = 'Сводка';
$labels['tabrecurrence'] = 'Повторение';
$labels['tabattendees'] = 'Участники';
$labels['tabresources'] = 'Ресурсы';
$labels['tabattachments'] = 'Вложения';
$labels['tabsharing'] = 'Совместное использование';
// messages
$labels['deleteobjectconfirm'] = 'Вы действительно хотите удалить это событие?';
$labels['deleteventconfirm'] = 'Вы действительно хотите удалить это событие?';
$labels['deletecalendarconfirm'] = 'Вы действительно хотите удалить этот календарь со всеми его событиями?';
$labels['deletecalendarconfirmrecursive'] = 'Вы действительно хотите удалить этот календарь со всеми его событиями и вложенными календарями?';
$labels['savingdata'] = 'Сохранение данных...';
$labels['errorsaving'] = 'Ошибка сохранения изменений.';
$labels['operationfailed'] = 'Ошибка запрошенной операции.';
$labels['operationfailed'] = 'Не удалось выполнить запрошенную операцию.';
$labels['invalideventdates'] = 'Неверная дата! Пожалуйста проверьте данные.';
$labels['emptyeventtitle'] = 'Сводка событий не может быть пустой.';
$labels['invalidcalendarproperties'] = 'Неверные свойства календаря! Пожалуйста введите допустимые данные.';
$labels['searchnoresults'] = 'Событие не найдено в выбранном календаре.';
$labels['successremoval'] = 'Это событие успешно удалено.';
$labels['successrestore'] = 'Это событие успешно восстановлено.';
$labels['errornotifying'] = 'Ошибка в отправке уведомления участникам событий';
$labels['errorimportingevent'] = 'Ошибка при импорте события';
$labels['newerversionexists'] = 'Новая версия этого события уже существует! Отменено.';
$labels['searchnoresults'] = 'Событие не найдено в выбранных календарях.';
$labels['successremoval'] = 'Событие успешно удалено.';
$labels['successrestore'] = 'Событие успешно восстановлено.';
$labels['errornotifying'] = 'Не удалось отправить уведомления участникам событий';
$labels['errorimportingevent'] = 'Не удалось импортировать событие';
$labels['importwarningexists'] = 'Копия этого события уже есть в вашем календаре.';
$labels['newerversionexists'] = 'Обновлённая версия этого события уже существует! Отменено.';
$labels['nowritecalendarfound'] = 'Не найден календарь для записи этого события';
$labels['importedsuccessfully'] = 'Это событие успешно добавлено в \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Успешно обновлен статус участников';
$labels['itipresponseerror'] = 'Невозможно послать ответ на это приглашение';
$labels['importedsuccessfully'] = 'Событие успешно добавлено в \'$calendar\'';
$labels['updatedsuccessfully'] = 'Событие успешно обновлено в \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Успешно обновлен статус участника';
$labels['errorunknownattendee'] = 'Не удалось найти информацию об участнике.';
$labels['itipsendsuccess'] = 'Приглашания отправлены участникам.';
$labels['itipresponseerror'] = 'Не удалось послать ответ на это приглашение';
$labels['itipinvalidrequest'] = 'Это приглашение больше не действительно';
$labels['sentresponseto'] = 'Успешно отправлен ответ на приглашение на $mailto';
$labels['localchangeswarning'] = 'Вы собираетесь внести изменения, которые будут только отражены на Вашем личном календаре';
$labels['importsuccess'] = 'Успешно импортированы $nr событий';
$labels['localchangeswarning'] = 'Вы собираетесь внести изменения, которые отразятся только на Вашем личном календаре и не будут отправлены организатору события.';
$labels['importsuccess'] = 'Успешно импортировано $nr событий';
$labels['importnone'] = 'Не найдено событий для импорта';
$labels['importerror'] = 'Ошибка при импорте';
$labels['aclnorights'] = 'Вы не имеете прав администратора для этого календаря.';
// recurrence form
$labels['repeat'] = 'Повторить';
$labels['frequency'] = 'Повторить';
$labels['never'] = 'никогда';
$labels['daily'] = 'ежедневно';
$labels['weekly'] = 'еженедельно';
$labels['monthly'] = 'ежемесячно';
$labels['yearly'] = 'ежегодно';
$labels['every'] = 'Каждый';
$labels['days'] = 'дней';
$labels['weeks'] = 'недели';
$labels['months'] = 'месяцы';
$labels['years'] = 'годы в:';
$labels['bydays'] = 'На';
$labels['untildate'] = 'до числа';
$labels['each'] = 'Каждый';
$labels['onevery'] = 'На каждом';
$labels['onsamedate'] = 'В ту же самую дату';
$labels['forever'] = 'всегда';
$labels['recurrencend'] = 'продолжительность';
$labels['forntimes'] = '$nr дней';
$labels['first'] = 'первое';
$labels['second'] = 'второе';
$labels['third'] = 'третье';
$labels['fourth'] = 'четвертое';
$labels['last'] = 'последнее';
$labels['dayofmonth'] = 'День месяца';
$labels['importtext'] = 'Вы можете загружать события в формате <a href="https://wikipedia.org/wiki/ICalendar">iCalendar</a> (.ics).';
$labels['changeeventconfirm'] = 'Изменить событие';
$labels['removeeventconfirm'] = 'Удалить событие';
$labels['changerecurringeventwarning'] = 'Это - повторяющееся событие. Хотели бы Вы редактировать только текущее событие, это и все будущие повторения, все события или сохранять его как новое событие?';
$labels['removerecurringeventwarning'] = 'Это - повторяющееся событие. Хотели бы Вы удалить только текущее событие, это и все будущие события или все эти события?';
$labels['removerecurringallonly'] = 'Это - повторяющееся событие. Как участник, Вы можете удалить всё событие вместе с всеми повторениями.';
$labels['currentevent'] = 'Текущее';
$labels['futurevents'] = 'Будущие';
$labels['allevents'] = 'Все';
$labels['saveasnew'] = 'Сохранить как новое';
$labels['recurrenceerror'] = 'Не удалось разрешить правило повторения для указанной даты начала.';
$labels['birthdays'] = 'Дни рождения';
$labels['birthdayscalendar'] = 'Календарь Дней Рождения';
$labels['displaybirthdayscalendar'] = 'Показывать календарь Дней Рождения';
$labels['birthdayscalendarsources'] = 'Из этих адресных книг';
$labels['birthdayeventtitle'] = 'День рождения $name';
$labels['birthdayage'] = 'Возраст $age';
$labels['objectchangelog'] = 'История изменений';
$labels['objectdiff'] = 'Изменения с $rev1 до $rev2';
$labels['objectnotfound'] = 'Не удалось загрузить информацию о мероприятиях';
$labels['objectchangelognotavailable'] = 'История изменений для этого события недоступна';
$labels['objectdiffnotavailable'] = 'Невозможно провести сравнение выбранных ревизий ';
$labels['revisionrestoreconfirm'] = 'Вы уверенны, что хотите восстановить это событие из ревизии $rev? Оно заменит текущее событие старой версией. ';
$labels['objectrestoresuccess'] = 'Ревизия $rev успешно восстановлена';
$labels['objectrestoreerror'] = 'Не удалось восстановить старую ревизию';
$labels['arialabelminical'] = 'Выбор даты';
$labels['arialabelcalendarview'] = 'Вид календаря';
$labels['arialabelsearchform'] = 'Форма поиска событий';
$labels['arialabelquicksearchbox'] = 'Поиск событий';
$labels['arialabelcalsearchform'] = 'Форма поиска календарей';
$labels['calendaractions'] = 'Действия с календарями';
$labels['calendarprops'] = 'Свойства календаря';
$labels['arialabeleventattendees'] = 'Участники события';
$labels['arialabeleventresources'] = 'Ресурсы события';
$labels['arialabelresourcesearchform'] = 'Форма поиска ресурсов';
$labels['arialabelresourceselection'] = 'Доступные ресурсы';
$labels['arialabeleventform'] = 'Форма редактирования события';
?>

82
localization/sk_SK.inc Normal file
View file

@ -0,0 +1,82 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Prednastavené zobrazenie';
$labels['time_format'] = 'Formát času';
$labels['timeslots'] = 'Časových úsekov za hodinu';
$labels['first_day'] = 'Prvý deň v týždni';
$labels['first_hour'] = 'Prvá hodina na zobrazenie';
$labels['workinghours'] = 'Pracovný čas';
$labels['add_category'] = 'Pridať kategóriu';
$labels['remove_category'] = 'Odstrániť kategóriu';
$labels['defaultcalendar'] = 'Vytvoriť novú udalosť v';
$labels['eventcoloring'] = 'Farba udalosti';
$labels['afternothing'] = 'Neurobiť nič';
$labels['aftertrash'] = 'Presunúť do koša';
$labels['afterdelete'] = 'Vymazať správu';
$labels['afterflagdeleted'] = 'Označiť ako vymazané';
$labels['aftermoveto'] = 'Presunúť do...';
$labels['itipoptions'] = 'Pozvánky na udalosť';
$labels['calendar'] = 'Kalendár';
$labels['calendars'] = 'Kalendáre';
$labels['category'] = 'Kategória';
$labels['categories'] = 'Kategórie';
$labels['createcalendar'] = 'Vytvoriť nový kalendár';
$labels['name'] = 'Meno';
$labels['color'] = 'Farba';
$labels['day'] = 'Deň';
$labels['week'] = 'Týždeň';
$labels['month'] = 'Mesiac';
$labels['agenda'] = 'Agenda';
$labels['new'] = 'Nový';
$labels['new_event'] = 'Nová udalosť';
$labels['edit_event'] = 'Upraviť udalosť';
$labels['edit'] = 'Upraviť';
$labels['save'] = 'Uložiť';
$labels['removelist'] = 'Odstrániť zo zoznamu';
$labels['cancel'] = 'Zrušiť';
$labels['select'] = 'Vybrať';
$labels['print'] = 'Vytlačiť';
$labels['printtitle'] = 'Vytlačiť kalendáre';
$labels['title'] = 'Sumár';
$labels['description'] = 'Popis';
$labels['all-day'] = 'celý deň';
$labels['export'] = 'Exportovať';
$labels['exporttitle'] = 'Exportovať do iCalendar';
$labels['exportrange'] = 'Udalosti z';
$labels['exportattachments'] = 'S prílohami';
$labels['customdate'] = 'Používateľský dátum';
$labels['location'] = 'Poloha';
$labels['url'] = 'URL';
$labels['date'] = 'Dátum';
$labels['start'] = 'Začiatok';
$labels['starttime'] = 'Čas začiatku';
$labels['end'] = 'Koniec';
$labels['endtime'] = 'Čas konca';
$labels['repeat'] = 'Opakovať';
$labels['selectdate'] = 'Vyberte dátum';
$labels['freebusy'] = 'Zobraziť ako';
$labels['free'] = 'Voľný';
$labels['busy'] = 'Zaneprázdnený';
$labels['outofoffice'] = 'Mimo kancelárie';
$labels['tentative'] = 'Nezáväzne';
$labels['mystatus'] = 'Môj stav';
$labels['status'] = 'Stav';
$labels['status-confirmed'] = 'Potvrdené';
$labels['status-cancelled'] = 'Zrušené';
$labels['status-tentative'] = 'Nezáväzne';
$labels['priority'] = 'Priorita';
$labels['importrange'] = 'Udalosti z';
$labels['weekofyear'] = 'Týždeň';
$labels['confirmstate'] = 'Stav';
$labels['availfree'] = 'Voľný';
$labels['availbusy'] = 'Zaneprázdnený';
$labels['availtentative'] = 'Nezáväzne';
$labels['availoutofoffice'] = 'Mimo kancelárie';
$labels['tabsummary'] = 'Sumár';
?>

261
localization/sl_SI.inc Normal file
View file

@ -0,0 +1,261 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Privzeti pogled';
$labels['time_format'] = 'Format časa';
$labels['timeslots'] = 'Časovnih oken na uro';
$labels['first_day'] = 'Prvi dan v tednu';
$labels['first_hour'] = 'Prva ura za prikaz';
$labels['workinghours'] = 'Ure dela';
$labels['add_category'] = 'Dodaj kategorijo';
$labels['remove_category'] = 'Odstrani kategorijo';
$labels['defaultcalendar'] = 'Ustvari nove dogodke v';
$labels['eventcoloring'] = 'Barva dogodka';
$labels['coloringmode0'] = 'Po koledarju';
$labels['coloringmode1'] = 'Po kategoriji';
$labels['coloringmode2'] = 'Koledar za prikaz, kategorija za vsebino';
$labels['coloringmode3'] = 'Kategorija za prikaz, koledar za vsebino';
$labels['afternothing'] = 'Ne naredi ničesar';
$labels['aftertrash'] = 'Premakni v koš';
$labels['afterdelete'] = 'Izbriši sporočilo';
$labels['afterflagdeleted'] = 'Označi kot izbrisano';
$labels['aftermoveto'] = 'Premakni v...';
$labels['itipoptions'] = 'Vabila za dogodek';
$labels['afteraction'] = 'Po obdelavi vabila ali posodobljenega sporočila';
$labels['calendar'] = 'Koledar';
$labels['calendars'] = 'Koledarji';
$labels['category'] = 'Kategorija';
$labels['categories'] = 'Kategorije';
$labels['createcalendar'] = 'Ustvari nov koledar';
$labels['name'] = 'Ime';
$labels['color'] = 'Barva';
$labels['day'] = 'Dan';
$labels['week'] = 'Teden';
$labels['month'] = 'Mesec';
$labels['agenda'] = 'Urnik';
$labels['new'] = 'Nov';
$labels['new_event'] = 'Nov dogodek';
$labels['edit_event'] = 'Uredi dogodek';
$labels['edit'] = 'Uredi';
$labels['save'] = 'Shrani';
$labels['removelist'] = 'Odstrani iz seznama';
$labels['cancel'] = 'Prekliči';
$labels['select'] = 'Izberi';
$labels['print'] = 'Natisni';
$labels['printtitle'] = 'Natisni koledarje';
$labels['title'] = 'Pregled';
$labels['description'] = 'Opis';
$labels['all-day'] = 'cel dan';
$labels['export'] = 'Izvozi';
$labels['exporttitle'] = 'Izvozi v iCalendar';
$labels['exportrange'] = 'Dogodki od';
$labels['exportattachments'] = 'S priponkami';
$labels['customdate'] = 'Poljubni datum';
$labels['location'] = 'Lokacija';
$labels['url'] = 'URL';
$labels['date'] = 'Datum';
$labels['start'] = 'Začetek';
$labels['starttime'] = 'Čas začetka';
$labels['end'] = 'Konec';
$labels['endtime'] = 'Čas konca';
$labels['repeat'] = 'Ponovi';
$labels['selectdate'] = 'Izberi datum';
$labels['freebusy'] = 'Prikaži me kot';
$labels['free'] = 'Prost';
$labels['busy'] = 'Zaseden';
$labels['outofoffice'] = 'Izven pisarne';
$labels['tentative'] = 'Pogojno';
$labels['mystatus'] = 'Moj status';
$labels['status'] = 'Status';
$labels['status-confirmed'] = 'Potrjeno';
$labels['status-cancelled'] = 'Preklicano';
$labels['status-tentative'] = 'Pogojno';
$labels['priority'] = 'Prednost';
$labels['sensitivity'] = 'Zasebnost';
$labels['public'] = 'javno';
$labels['private'] = 'zasebno';
$labels['confidential'] = 'zaupno';
$labels['links'] = 'Sklic';
$labels['alarms'] = 'Opomnik';
$labels['comment'] = 'Komentar';
$labels['created'] = 'Ustvarjeno';
$labels['changed'] = 'Nazadnje urejeno';
$labels['unknown'] = 'Neznano';
$labels['eventoptions'] = 'Nastavitve';
$labels['generated'] = 'generirano ob';
$labels['eventhistory'] = 'Zgodovina';
$labels['removelink'] = 'Odstrani email povezavo';
$labels['printdescriptions'] = 'Opis za tisk';
$labels['parentcalendar'] = 'Vstavi';
$labels['searchearlierdates'] = '« Išči po prejšnjih dogodkih';
$labels['searchlaterdates'] = 'Išči po kasnejših dogodkih »';
$labels['laterevents'] = 'Kasneje';
$labels['andnmore'] = '$nr več...';
$labels['togglerole'] = 'Klikni za prikaz vloge';
$labels['createfrommail'] = 'Shrani kot dogodek';
$labels['importevents'] = 'Uvozi dogodke';
$labels['importrange'] = 'Dogodki od';
$labels['onemonthback'] = '1 mesec nazaj';
$labels['nmonthsback'] = '$nr mesecev nazaj';
$labels['showurl'] = 'Prikaži URL koledarja';
$labels['showurldescription'] = 'Za dostop do koledarja (samo za branje) iz drugih aplikacij uporabi naslednji naslov. Funkcija kopiraj in prilepi deluje z vsakim koledarjem v iCal formatu.';
$labels['caldavurldescription'] = 'Za sinhronizacijo tega koledarja z vašim računalnikom ali mobilno napravo, v podprto aplikacijo (npr. Evolution ali Mozilla Thunderbird) kopirajte ta naslov <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> .';
$labels['findcalendars'] = 'Išči koledarje...';
$labels['searchterms'] = 'Iskalni pogoji';
$labels['calsearchresults'] = 'Razpoložljivi koledarji';
$labels['calendarsubscribe'] = 'Označi za vedno';
$labels['nocalendarsfound'] = 'Ni najdenih koledarjev';
$labels['nrcalendarsfound'] = '$nr najdenih koledarjev';
$labels['quickview'] = 'Prikaži samo ta koledar';
$labels['invitationspending'] = 'Vabila za dogodek';
$labels['invitationsdeclined'] = 'Zavrnjena vabila';
$labels['changepartstat'] = 'Spremeni status sodelujočega';
$labels['rsvpcomment'] = 'Sporočilo vabila';
$labels['listrange'] = 'Prikaži v razponu:';
$labels['listsections'] = 'Razdeli v:';
$labels['smartsections'] = 'Pametni razdelki';
$labels['until'] = 'do';
$labels['today'] = 'Danes';
$labels['tomorrow'] = 'Jutri';
$labels['thisweek'] = 'Ta teden';
$labels['nextweek'] = 'Naslednji teden';
$labels['prevweek'] = 'Prejšnji teden';
$labels['thismonth'] = 'Ta mesec';
$labels['nextmonth'] = 'Naslednji mesec';
$labels['weekofyear'] = 'Teden';
$labels['pastevents'] = 'Pretekli';
$labels['futureevents'] = 'Prihodnji';
$labels['showalarms'] = 'Prikaži opomnike';
$labels['defaultalarmtype'] = 'Privzeta nastavitev opomnika';
$labels['defaultalarmoffset'] = 'Privzeti čas opomnika';
$labels['attendee'] = 'Udeleženec';
$labels['role'] = 'Vloga';
$labels['availability'] = 'Razpol.';
$labels['confirmstate'] = 'Status';
$labels['addattendee'] = 'Dodaj udeleženca';
$labels['roleorganizer'] = 'Organizator';
$labels['rolerequired'] = 'Zahtevano';
$labels['roleoptional'] = 'Neobvezno';
$labels['rolechair'] = 'Vodja sestanka';
$labels['rolenonparticipant'] = 'Odsoten';
$labels['cutypeindividual'] = 'Osebni';
$labels['cutypegroup'] = 'Skupina';
$labels['cutyperesource'] = 'Vir';
$labels['cutyperoom'] = 'Soba';
$labels['availfree'] = 'Prost';
$labels['availbusy'] = 'Zaseden';
$labels['availunknown'] = 'Neznano';
$labels['availtentative'] = 'Pogojno';
$labels['availoutofoffice'] = 'Izven pisarne';
$labels['scheduletime'] = 'Najdi razpoložljivost';
$labels['sendinvitations'] = 'Pošlji vabila';
$labels['sendnotifications'] = 'Sporoči udeležencem spremembe';
$labels['sendcancellation'] = 'Sporoči udeležencem odpoved dogodka';
$labels['onlyworkinghours'] = 'Najdi razpoložljivost med mojim delavnikom';
$labels['reqallattendees'] = 'Zahtevano/vsi udeleženci';
$labels['prevslot'] = 'Prejšnje mesto';
$labels['nextslot'] = 'Naslednje mesto';
$labels['suggestedslot'] = 'Predlagano mesto';
$labels['noslotfound'] = 'Ne najdem prostega mesta';
$labels['invitationsubject'] = 'Vabljeni ste v "$title"';
$labels['invitationattendlinks'] = "V kolikor vaš email klient ne podpira iTip zahtevkov lahko uporabite naslednjo povezavo za sprejem ali zavrnitev vabila:\n\$url";
$labels['eventupdatesubject'] = '"$title" je bil posodobljen';
$labels['eventupdatesubjectempty'] = 'Dogodek, ki vas zadeva je bil posodobljen';
$labels['eventupdatemailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nProsim preglejte pripeto iCalendar datoteko s posodobljenimi informacijami o dogodku. Datoteko lahko uvozite v vašo koledar aplikacijo.";
$labels['eventcancelmailbody'] = "*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees\n\nDogodek je bil preklican s strani \$organizer.\n\nProsim preglejte pripeto iCalendar datoteko s posodobljenimi informacijami o dogodku.";
$labels['itipobjectnotfound'] = 'Dogodek, na katerega se nanaša to sporočilo, ni bil najden v vašem koledarju.';
$labels['itipmailbodyaccepted'] = "\$sender je sprejel vabilo na dogodek:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodytentative'] = "\$sender je okvirno sprejel vabilo na dogodek:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender ni sprejel vabila na dogodek:\n\n*\$title*\n\nWhen: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodycancel'] = "\$sender je zavrnil vaše sodelovanje pri dogodku:\n\n*\$title*\n\nWhen: \$date";
$labels['itipmailbodydelegated'] = "\$sender je prenesel sodelovanje na dogodku:\n\n*\$title*\n\nWhen: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender je na vas prenesel sodelovanje na dogodku:\n\n*\$title*\n\nWhen: \$date";
$labels['itipdeclineevent'] = 'Želite zavrniti vabilo na ta dogodek?';
$labels['declinedeleteconfirm'] = 'Ali želite tudi izbrisati zavrnjeni dogodek iz vašega koledarja?';
$labels['itipcomment'] = 'Komentar vabila/obvestila';
$labels['itipcommenttitle'] = 'Komentar bo dodan k vabilu/obvestilu, ki bo poslano sodelujočim';
$labels['notanattendee'] = 'Niste označeni kot sodelujoči na tem sestanku';
$labels['eventcancelled'] = 'Ta dogodek je bil preklican';
$labels['saveincalendar'] = 'shrani v';
$labels['updatemycopy'] = 'Posodobi v mojem koledarju';
$labels['savetocalendar'] = 'Shrani v koledar';
$labels['openpreview'] = 'Preveri Koledar';
$labels['noearlierevents'] = 'Ni predhodnjih dogodkov';
$labels['nolaterevents'] = 'Ni kasnejših dogodkov';
$labels['resource'] = 'Vir';
$labels['addresource'] = 'Označi vir';
$labels['findresources'] = 'Poišči vire';
$labels['resourcedetails'] = 'Podrobnosti';
$labels['resourceavailability'] = 'Razpoložljivost';
$labels['resourceowner'] = 'Lastnik';
$labels['resourceadded'] = 'Vir je bil dodan v vašem dogodku';
$labels['tabsummary'] = 'Pregled';
$labels['tabrecurrence'] = 'Ponovitev';
$labels['tabattendees'] = 'Sodelujoči';
$labels['tabresources'] = 'Viri';
$labels['tabattachments'] = 'Priponke';
$labels['tabsharing'] = 'Deli z ostalimi';
$labels['deleteobjectconfirm'] = 'Ali želite potrditi brisanje tega dogodka?';
$labels['deleteventconfirm'] = 'Ali želite potrditi brisanje tega dogodka?';
$labels['deletecalendarconfirm'] = 'Ali želite izbrisati ta koledar z vsemi dogodki?';
$labels['deletecalendarconfirmrecursive'] = 'Ali želite izbrisati to koledar z vsemi dogodki in pod-koledarji?';
$labels['savingdata'] = 'Shranjujem...';
$labels['errorsaving'] = 'Napaka pri shranjevanju sprememb.';
$labels['operationfailed'] = 'Zahtevana operacija ni uspela.';
$labels['invalideventdates'] = 'Vnos datumov napačen! Prosim preverite vaš vnos.';
$labels['invalidcalendarproperties'] = 'Napačne nastavitve koledarja! Prosim nastavite pravilno ime.';
$labels['searchnoresults'] = 'V izbranih koledarjih ni dogodkov.';
$labels['successremoval'] = 'Dogodek je bil uspešno izbrisan.';
$labels['successrestore'] = 'Dogodek je bil uspešno obnovljen.';
$labels['errornotifying'] = 'Napaka. Pošiljanje obvestil sodelujočim ni bilo uspešno.';
$labels['errorimportingevent'] = 'Napaka pri uvozu dogodka';
$labels['importwarningexists'] = 'Različica tega dogodka že obstaja v vašem koledarju.';
$labels['newerversionexists'] = 'Obstaja novejša verzija tega dogodka!';
$labels['nowritecalendarfound'] = 'Za shranjevanje dogodka ni na voljo nobenega koledarja';
$labels['importedsuccessfully'] = 'Dogodek je bil uspešno dodan v \'$calendar\'';
$labels['updatedsuccessfully'] = 'Dogodek je bil uspešno posodobljen v \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Posodabljanje statusa sodelujočega uspešno';
$labels['itipsendsuccess'] = 'Vabilo sodelujočim poslano';
$labels['itipresponseerror'] = 'Napaka. Pošiljanje odgovora na vabilo ni bilo uspešno';
$labels['itipinvalidrequest'] = 'To vabilo ni več veljavno';
$labels['sentresponseto'] = 'Odgovor je bil uspešno poslan na naslov $mailto';
$labels['localchangeswarning'] = 'Spremembe bodo vidne samo v vašem koledarju in ne bodo poslane organizatorju dogodka';
$labels['importsuccess'] = 'Uspešno uvoženih $nr dogodkov';
$labels['importnone'] = 'Ne najdem dogodkov za uvoz';
$labels['importerror'] = 'Pri uvozu je prišlo do napake';
$labels['aclnorights'] = 'Na tem koledarju nimate administratorskih pravic';
$labels['changeeventconfirm'] = 'Spremeni dogodek';
$labels['removeeventconfirm'] = 'Izbriši dogodek';
$labels['changerecurringeventwarning'] = 'To je ponavljajoč dogodek. Ali želite urediti samo trenutni dogodek, trenutni in vse prihodnje dogodke, vse ponavljajoče dogodke ali shraniti kot nov dogodek?';
$labels['removerecurringeventwarning'] = 'To je ponavljajoč dogodek. Ali želite izbrisati trenutni dogodek, trenutni in vse prihodnje dogodke ali vsa ponavljanja tega dogodka?';
$labels['currentevent'] = 'Trenutni';
$labels['futurevents'] = 'Prihodnji';
$labels['allevents'] = 'Vsi';
$labels['saveasnew'] = 'Shrani kot nov';
$labels['birthdays'] = 'Rojstni dnevi';
$labels['birthdayscalendar'] = 'Koledar rojstnih dnevov';
$labels['displaybirthdayscalendar'] = 'Prikaži koledar rojstnih dnevov';
$labels['birthdayscalendarsources'] = 'Iz teh imenikov';
$labels['birthdayeventtitle'] = 'Rojstni dan osebe $name';
$labels['birthdayage'] = 'Starost $age';
$labels['objectchangelog'] = 'Spremeni Zgodovino';
$labels['objectnotfound'] = 'Napaka pri nalaganju podatkov o dogodku';
$labels['objectchangelognotavailable'] = 'Sprememba zgodovine za ta dogodek ni na voljo';
$labels['objectdiffnotavailable'] = 'Primerjava za izbrane verzije ni na voljo';
$labels['revisionrestoreconfirm'] = 'Ali želite obnoviti verzijo $rev tega dogodka? To bo nadomestilo trenutni dogodek s starejšo verzijo.';
$labels['arialabelminical'] = 'Izbira datuma v koledarju';
$labels['arialabelcalendarview'] = 'Prikaz koledarja';
$labels['arialabelsearchform'] = 'Obrazec za iskanje dogodkov';
$labels['arialabelquicksearchbox'] = 'Vnos iskanja dogodkov';
$labels['arialabelcalsearchform'] = 'Obrazec za iskanje koledarjev';
$labels['calendaractions'] = 'Dejanja koledarja';
$labels['arialabeleventattendees'] = 'Seznam sodelujočih na dogodku';
$labels['arialabeleventresources'] = 'Seznam virov za dogodek';
$labels['arialabelresourcesearchform'] = 'Obrazec za iskanje virov';
$labels['arialabelresourceselection'] = 'Viri na voljo';
?>

260
localization/sv.inc Normal file
View file

@ -0,0 +1,260 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Standardvy';
$labels['time_format'] = 'Tidformat';
$labels['timeslots'] = 'Tidsluckor per timme';
$labels['first_day'] = 'Första veckodag';
$labels['first_hour'] = 'Dagen börjar';
$labels['workinghours'] = 'Arbetstid';
$labels['add_category'] = 'Lägg till kategori';
$labels['remove_category'] = 'Ta bort kategori';
$labels['defaultcalendar'] = 'Skapa nya händelser i';
$labels['eventcoloring'] = 'Händelsefärg';
$labels['coloringmode0'] = 'Enligt kalender';
$labels['coloringmode1'] = 'Enligt kategori';
$labels['coloringmode2'] = 'Kalender för översikt, kategori för innehåll';
$labels['coloringmode3'] = 'Kategori för översikt, kalender för innehåll';
$labels['afternothing'] = 'Gör inget';
$labels['aftertrash'] = 'Flytta till papperskorgen';
$labels['afterdelete'] = 'Ta bort meddelandet';
$labels['afterflagdeleted'] = 'Märk som borttaget';
$labels['aftermoveto'] = 'Flytta till ...';
$labels['itipoptions'] = 'Händelseinbjudningar';
$labels['afteraction'] = 'Efter en inbjudan eller uppdatering bearbetats meddelande';
$labels['calendar'] = 'Kalender';
$labels['calendars'] = 'Kalendrar';
$labels['category'] = 'Kategori';
$labels['categories'] = 'Kategorier';
$labels['createcalendar'] = 'Skapa ny kalender';
$labels['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';
?>

266
localization/sv_SE.inc Normal file
View file

@ -0,0 +1,266 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Standardvy';
$labels['time_format'] = 'Tidformat';
$labels['timeslots'] = 'Tidsluckor per timme';
$labels['first_day'] = 'Första veckodag';
$labels['first_hour'] = 'Dagen börjar';
$labels['workinghours'] = 'Arbetstid';
$labels['add_category'] = 'Lägg till kategori';
$labels['remove_category'] = 'Ta bort kategori';
$labels['defaultcalendar'] = 'Skapa nya händelser i';
$labels['eventcoloring'] = 'Händelsefärg';
$labels['coloringmode0'] = 'Enligt kalender';
$labels['coloringmode1'] = 'Enligt kategori';
$labels['coloringmode2'] = 'Kalender för översikt, kategori för innehåll';
$labels['coloringmode3'] = 'Kategori för översikt, kalender för innehåll';
$labels['afternothing'] = 'Gör inget';
$labels['aftertrash'] = 'Flytta till papperskorgen';
$labels['afterdelete'] = 'Ta bort meddelandet';
$labels['afterflagdeleted'] = 'Märk som borttaget';
$labels['aftermoveto'] = 'Flytta till ...';
$labels['itipoptions'] = 'Händelseinbjudningar';
$labels['afteraction'] = 'Efter en inbjudan eller uppdatering bearbetats meddelande';
$labels['weeknonone'] = 'aldrig';
$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['laterevents'] = 'Senare';
$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['eventcancelsubject'] = '"$title" har ställts in';
$labels['eventcancelmailbody'] = "*\$title*\n\nNär: \$date\n\nInbjudna: \$attendees\n\nHändelsen har ställts in av \$organizer.\n\nHärmed bifogas en iCalendar-fil med uppdaterad information om händelsen.";
$labels['itipobjectnotfound'] = 'Den händelse som avses i detta meddelande hittades inte i din kalender.';
$labels['itipmailbodyaccepted'] = "\$sender har accepterat inbjudan till följande händelse:\n\n*\$title*\n\nNär: \$date\n\nInbjudna: \$attendees";
$labels['itipmailbodytentative'] = "\$sender har preliminärt accepterat inbjudan till följande evenemang:\n\n*\$title*\n\nNär: \$date\n\nInbjudna: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender har tackat nej till inbjudan till följande händelse:\n\n*\$title*\n\nNär: \$date\n\nIbjudna: \$attendees";
$labels['itipmailbodycancel'] = "\$sender har avvisat ditt deltagande i följande händelse:\n\n*\$title*\n\nNär: \$dat";
$labels['itipmailbodydelegated'] = "\$sender har delegerat deltagandet i följande händelse:\n\n*\$title*\n\nNär: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender har delegerat deltagandet i följande händelse till dig:\n\n*\$title*\n\nNär: \$date";
$labels['itipdeclineevent'] = 'Vill du tacka nej till inbjudan till denna händelse?';
$labels['declinedeleteconfirm'] = 'Vill du även ta bort denna händelse, som du tackat nej till, från din kalender?';
$labels['itipcomment'] = 'Kommentar till inbjudan/meddelande';
$labels['itipcommenttitle'] = 'Denna kommentar kommer att bifogas i inbjudan/meddelandet som skickas till deltagarna';
$labels['notanattendee'] = 'Du är inte listad som en deltagare i denna händelse';
$labels['eventcancelled'] = 'Händelsen har ställts in';
$labels['saveincalendar'] = 'Spara i';
$labels['updatemycopy'] = 'Uppdatera i min kalender';
$labels['savetocalendar'] = 'Spara till kalender';
$labels['openpreview'] = 'Kontrollera kalender';
$labels['noearlierevents'] = 'Inga tidigare händelser';
$labels['nolaterevents'] = 'Inga senare händelser';
$labels['resource'] = 'Resurs';
$labels['addresource'] = 'Boka resurs';
$labels['findresources'] = 'Hitta resurser';
$labels['resourcedetails'] = 'Detaljer';
$labels['resourceavailability'] = 'Tillgänglighet';
$labels['resourceowner'] = 'Ägare';
$labels['resourceadded'] = 'Resursen har kopplats till din händelser ';
$labels['tabsummary'] = 'Sammanfattning';
$labels['tabrecurrence'] = 'Återkommande';
$labels['tabattendees'] = 'Deltagare';
$labels['tabresources'] = 'Resurser';
$labels['tabattachments'] = 'Bilagor';
$labels['tabsharing'] = 'Delning';
$labels['deleteobjectconfirm'] = 'Vill du verkligen ta bort denna händelse';
$labels['deleteventconfirm'] = 'Vill du verkligen ta bort denna händelse';
$labels['deletecalendarconfirm'] = 'Vill du verkligen ta bort denna kalender med alla dess händelser?';
$labels['deletecalendarconfirmrecursive'] = 'Vill du verkligen ta bort denna kalender med alla händelser och delkalendrar?';
$labels['savingdata'] = 'Sparar data ...';
$labels['errorsaving'] = 'Misslyckades att spara ändringar.';
$labels['operationfailed'] = 'Den begärda åtgärden misslyckades.';
$labels['invalideventdates'] = 'Ogiltiga datum angivna! Kontrollera din inmatning.';
$labels['invalidcalendarproperties'] = 'Ogiltiga kalenderegenskaper! Var god ange ett giltigt namn.';
$labels['searchnoresults'] = 'Inga händelser hittades i de valda kalendrarna.';
$labels['successremoval'] = 'Händelsen har tagits bort.';
$labels['successrestore'] = 'Händelsen har återställts.';
$labels['errornotifying'] = 'Det gick inte att skicka meddelande till händelsens deltagare';
$labels['errorimportingevent'] = 'Det gick inte att importera händelsen';
$labels['importwarningexists'] = 'En kopia av denna händelse finns redan i din kalender.';
$labels['newerversionexists'] = 'En nyare version av denna händelse finns redan! Åtgärd avbruten.';
$labels['nowritecalendarfound'] = 'Ingen kalender hittades att spara händelsen i';
$labels['importedsuccessfully'] = 'Händelsen har lagts till i \'$calendar\'';
$labels['updatedsuccessfully'] = 'Händelsen uppdaterades i \'$calendar\'';
$labels['attendeupdateesuccess'] = 'Uppdaterade deltagarens status';
$labels['itipsendsuccess'] = 'Inbjudan har skickats till deltagare.';
$labels['itipresponseerror'] = 'Det gick inte att skicka ett svar på inbjudan till denna händelse';
$labels['itipinvalidrequest'] = 'Denna inbjudan är inte längre giltig';
$labels['sentresponseto'] = 'Skickade svar på inbjudan till $mailto';
$labels['localchangeswarning'] = 'Du är på väg att göra ändringar som endast kommer att återspeglas i din kalender och inte skickas till organisatören av händelsen.';
$labels['importsuccess'] = 'Importerade $nr händelser';
$labels['importnone'] = 'Hittade inga händelser att importera';
$labels['importerror'] = 'Ett fel uppstod vid import';
$labels['aclnorights'] = 'Du har inga administratörsrättigheter i denna kalender.';
$labels['changeeventconfirm'] = 'Ändra händelse';
$labels['removeeventconfirm'] = 'Ta bort händelse';
$labels['changerecurringeventwarning'] = 'Detta är en återkommande händelse. Vill du redigera endast den aktuella händelsen, denna och alla framtida händelser, alla händelser eller spara den som en ny händelse?';
$labels['removerecurringeventwarning'] = 'etta är en återkommande händelse. Vill du ta bort endast den aktuella händelsen, denna och alla framtida händelser eller alla förekomster av denna händelse';
$labels['currentevent'] = 'Nuvarande';
$labels['futurevents'] = 'Framtida';
$labels['allevents'] = 'Alla';
$labels['saveasnew'] = 'Spara som ny';
$labels['birthdays'] = 'Födelsedagar';
$labels['birthdayscalendar'] = 'Födelsedagskalender';
$labels['displaybirthdayscalendar'] = 'Visa födelsedagskalender';
$labels['birthdayscalendarsources'] = 'Från dessa adressböcker';
$labels['birthdayeventtitle'] = '$name\s födelsedag';
$labels['birthdayage'] = '$age år';
$labels['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';
$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';
?>

247
localization/th_TH.inc Normal file
View file

@ -0,0 +1,247 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'มุมมองเริ่มต้น';
$labels['time_format'] = 'รูปแบบของการแสดงเวลา';
$labels['timeslots'] = 'จำนวนช่องเวลาต่อชั่วโมง';
$labels['first_day'] = 'วันแรกของสัปดาห์';
$labels['first_hour'] = 'ชั่วโมงแรกที่เริ่มแสดงผล';
$labels['workinghours'] = 'ชั่วโมงทำงาน';
$labels['add_category'] = 'เพิ่มหมวดหมู่';
$labels['remove_category'] = 'ลบหมวดหมู่';
$labels['defaultcalendar'] = 'เพิ่มนัดหมายใหม่ใน';
$labels['eventcoloring'] = 'การให้สีเหตุการณ์ต่างๆ';
$labels['coloringmode0'] = 'ตามปฎิทิน';
$labels['coloringmode1'] = 'ตามหมวดหมู่';
$labels['afternothing'] = 'ไม่ต้องทำอะไร';
$labels['aftertrash'] = 'ย้ายลงถังขยะ';
$labels['afterdelete'] = 'ลบข้อความ';
$labels['afterflagdeleted'] = 'ติดธงว่าลบแล้ว';
$labels['aftermoveto'] = 'ย้ายไปยัง...';
$labels['itipoptions'] = 'เชิญเข้าร่วมนัดหมาย';
$labels['afteraction'] = 'ภายหลังการประมวลผลข้อความ คำเชิญ หรือ ปรับปรุงสถานภาพ';
$labels['weeknonone'] = 'ไม่มีทาง';
$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['exportattachments'] = 'พร้อมสิ่งที่แนบมาด้วย';
$labels['location'] = 'สถานที่';
$labels['date'] = 'วันที่';
$labels['start'] = 'เริ่ม';
$labels['starttime'] = 'เวลาเริ่ม';
$labels['end'] = 'จบ';
$labels['endtime'] = 'กำหนดเสร็จ';
$labels['repeat'] = 'เกิดซ้ำ';
$labels['selectdate'] = 'เลือกวันที่';
$labels['free'] = 'ว่าง';
$labels['busy'] = 'ติดธุระ';
$labels['outofoffice'] = 'อยู่นอกออฟฟิศ';
$labels['tentative'] = 'แนวโน้ม';
$labels['mystatus'] = 'สถานะของฉัน';
$labels['status'] = 'สถานะ';
$labels['status-confirmed'] = 'ยืนยัน';
$labels['status-cancelled'] = 'ยกเลิก';
$labels['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['eventhistory'] = 'ประวัติ';
$labels['printdescriptions'] = 'พิมพ์คำอธิบาย';
$labels['parentcalendar'] = 'เพิ่มเข้าภายใต้';
$labels['searchearlierdates'] = '« ค้นหากำหนดการณ์ที่เกิดชึ้นก่อนหน้า';
$labels['searchlaterdates'] = 'ค้นหากำหนดการณ์ที่เกิดขึ้นหลังจาก »';
$labels['laterevents'] = 'ภายหลัง';
$labels['andnmore'] = 'มีอีก $nr';
$labels['togglerole'] = 'กดเพื่อเปลี่ยนสลับบทบาท';
$labels['createfrommail'] = 'บันทึกเป็นเหตุการณ์';
$labels['importevents'] = 'นำเข้าเหตุการณ์';
$labels['importrange'] = 'เหตุการณ์จาก';
$labels['onemonthback'] = 'ย้อนหลัง 1 เดือน';
$labels['nmonthsback'] = 'ย้อนหลัง $nr เดือน';
$labels['showurl'] = 'แสดงลิงค์ปฎิทิน';
$labels['showurldescription'] = 'ใช้ลิงค์ที่อยู่ต่อไปนี้เพื่อเข้าถึง (อ่านเท่านั้น) ปฎิทินของคุณจากโปรแกรมอื่น คุณสามารถคัดลอกและนำไปวางไว้ในซอฟท์แวร์ปฎิทินที่รับรองรูปแบบ iCal';
$labels['caldavurldescription'] = 'คัดลอกลิงค์ที่อยู่นี้ไปยัง <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> โปรแกรมในเครื่องลูกข่าย (เช่น Evolution หรือ Mozilla Thunderbird) เพื่อซิงค์ข้อมูลปฎิทินฉบับนี้กับคอมพิวเตอร์หรืออุปกรณ์มือถือของคุณ';
$labels['findcalendars'] = 'ค้นหาปฎิทิน...';
$labels['searchterms'] = 'ข้อความที่ต้องการค้นหา';
$labels['calsearchresults'] = 'ปฎิทินที่มีให้เลือก';
$labels['calendarsubscribe'] = 'แสดงเป็นรายการถาวร';
$labels['nocalendarsfound'] = 'ไม่พบปฎิทิน';
$labels['nrcalendarsfound'] = 'พบปฎิทิน $nr ฉบับ';
$labels['quickview'] = 'ดูเฉพาะปฎิทินฉบับนี้';
$labels['invitationspending'] = 'จดหมายเชิญที่ยังค้างอยู่';
$labels['invitationsdeclined'] = 'ปฎิเสธคำเชิญ';
$labels['changepartstat'] = 'เปลี่ยนสถานะของผู้เข้าร่วม';
$labels['rsvpcomment'] = 'คำเชิญ';
$labels['listrange'] = 'ขอบเขตุที่แสดง';
$labels['listsections'] = 'แบ่งเป็น:';
$labels['until'] = 'จนถึง';
$labels['today'] = 'วันนี้';
$labels['tomorrow'] = 'พรุ่งนี้';
$labels['thisweek'] = 'สัปดาห์นี้';
$labels['nextweek'] = 'สัปดาห์หน้า';
$labels['prevweek'] = 'สัปดาห์ที่แล้ว';
$labels['thismonth'] = 'เดือนนี้';
$labels['nextmonth'] = 'เดือนหน้า';
$labels['weekofyear'] = 'สัปดาห์';
$labels['pastevents'] = 'อดีต';
$labels['futureevents'] = 'อนาคต';
$labels['showalarms'] = 'แสดงข้อความเตือน';
$labels['defaultalarmtype'] = 'ค่าการแจ้งเตือนเริ่มต้น';
$labels['attendee'] = 'ผู้เข้าร่วม';
$labels['role'] = 'บทบาท';
$labels['confirmstate'] = 'สถานะ';
$labels['addattendee'] = 'เพิ่มผู้เข้าร่วม';
$labels['roleorganizer'] = 'ผู้จัดงาน';
$labels['rolerequired'] = 'บังคับ';
$labels['roleoptional'] = 'เลือกได้';
$labels['rolenonparticipant'] = 'ขาด';
$labels['cutypeindividual'] = 'บุคคล';
$labels['cutypegroup'] = 'กลุ่ม';
$labels['cutyperesource'] = 'ทรัพยากร';
$labels['cutyperoom'] = 'ห้อง';
$labels['availfree'] = 'ว่าง';
$labels['availbusy'] = 'ติดธุระ';
$labels['availunknown'] = 'ไม่ทราบ';
$labels['availtentative'] = 'แนวโน้ม';
$labels['availoutofoffice'] = 'ไม่อยู่ออฟฟิศ';
$labels['scheduletime'] = 'ค้นหาส่วนที่ว่าง';
$labels['sendinvitations'] = 'ส่งคำเชิญ';
$labels['sendnotifications'] = 'แจ้งเตือนผู้เข้าร่วมสำหรับการแก้ไข';
$labels['sendcancellation'] = 'แจ้งเตือนผู้เข้าร่วมเกี่ยวกับการยกเลิก';
$labels['onlyworkinghours'] = 'ค้นหาเวลาว่างในช่วงชั่วโมงการทำงานของฉัน';
$labels['reqallattendees'] = 'บังคับ/ผู้เข้าร่วมทุกคน';
$labels['prevslot'] = 'ช่องว่างก่อนหน้านี้';
$labels['nextslot'] = 'ช่องว่า่งถัดจากนี้';
$labels['suggestedslot'] = 'แนะนำช่องว่าง';
$labels['noslotfound'] = 'ไม่สามารถหาช่วงเวลาที่ว่าง';
$labels['invitationsubject'] = 'คุณได้รับเชิญไปยัง "$title"';
$labels['invitationattendlinks'] = "ในกรณีที่โปรแกรมอีเมล์ของคุณไม่รองรับ 'การร้องขอ iTip' คุณสามารถใช้ลิงค์ต่อไปนี้ในการตอบรับหรือปฎิเสธจดหมายเชิญฉบับนี้ :\n\$url";
$labels['eventupdatesubject'] = '"$title" ได้รับการปรับปรุงสถานะ';
$labels['eventupdatesubjectempty'] = 'เหตุการณ์ที่คุณเป็นห่วงได้ถูกปรับปรุงสถานะแล้ว';
$labels['eventcancelmailbody'] = "*\$title*\n\nเมื่อ: \$date\n\nInvitees: \$attendees\n\n เหตุการณ์ได้ถูกยกเลิกโดย \$organizer.\n\n ไฟล์ iCalendar ที่แนบมาด้วย ได้รับการปรับปรุงรายละเอียดเรียบร้อยแล้ว";
$labels['itipobjectnotfound'] = 'เหตุการณ์ที่อ้างถึงโดยข้อความนี้ไม่ถูกตรวจพบในปฎิทินของคุณ';
$labels['itipmailbodyaccepted'] = "\$sender ได้ตอบรับคำเชิญสำหรับเหตุการณ์ต่อไปนี้:\n\n*\$title*\n\nเมื่อ: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodytentative'] = "\$sender มีแนวโน้มที่จะตอบรับคำเชิญสำหรับเหตุการณ์ต่อไปนี้:\n\n*\$title*\n\nเมื่อ: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodydeclined'] = "\$sender ได้ปฎิเสธคำเชิญสำหรับเหตุการณ์ต่อไปนี้ :\n\n*\$title*\n\nเมื่อ: \$date\n\nInvitees: \$attendees";
$labels['itipmailbodycancel'] = "\$sender ปฎิเสธการเข้าร่วมของคุณในเหตุการณ์ต่อไปนี้:\n\n*\$title*\n\nเมื่อ: \$date";
$labels['itipmailbodydelegated'] = "\$sender ได้มอบหมายการเข้าร่วมเหตุการณ์ต่อไปนี้:\n\n*\$title*\n\nเมื่อ: \$date";
$labels['itipmailbodydelegatedto'] = "\$sender ได้มอบหมายให้คุณเข้าร่วมเหตุการณ์ต่อไปนี้:\n\n*\$title*\n\nเมื่อ: \$date";
$labels['itipdeclineevent'] = 'คุณต้องการปฎิเสธคำเชิญสำหรับเหตุการณ์นี้หรือไม่';
$labels['declinedeleteconfirm'] = 'คุณต้องการลบเหตุการณ์ที่ปฎิเสธนี้ออกจากปฎิทินของคุณหรือไม่';
$labels['itipcomment'] = 'ความคิดเห็น คำเชิญ/คำแจ้งเตือน';
$labels['itipcommenttitle'] = 'ความคิดเห็นนี้จะถูกแนบไปพร้อมกับข้อความ คำเชิญ/คำแจ้งเตือน ไปยังผู้เข้าร่วม';
$labels['notanattendee'] = 'คุณไม่อยู่ในรายชื่อผุ้เข้าร่วมสำหรับเหตุการณ์นี้';
$labels['eventcancelled'] = 'เหตุการณ์ได้ถูกยกเลิก';
$labels['saveincalendar'] = 'บันทึกใน';
$labels['updatemycopy'] = 'ปรับปรุงปฎิทินของฉัน';
$labels['savetocalendar'] = 'บันทึกไปยังปฎิทินของฉัน';
$labels['openpreview'] = 'ตรวจสอบปฎิทิน';
$labels['noearlierevents'] = 'ไม่มีเหตุการณ์ก่อนหน้า';
$labels['nolaterevents'] = 'ไม่มีเหตุการณ์หลังจากนั้น';
$labels['resource'] = 'ทรัพยากร';
$labels['addresource'] = 'จองทรัพยากร';
$labels['findresources'] = 'ค้นหาทรัพยากร';
$labels['resourcedetails'] = 'รายละเอียด';
$labels['resourceavailability'] = 'ยังว่างอยู่';
$labels['resourceowner'] = 'เจ้าของ';
$labels['resourceadded'] = 'ทรัพยากรได้ถูกเพิ่มไปยังเหตุการณ์ของคุณ';
$labels['tabsummary'] = 'สรุป';
$labels['tabrecurrence'] = 'การเกิดซ้ำ';
$labels['tabattendees'] = 'ผู้เข้าร่วม';
$labels['tabresources'] = 'ทรัพยากร';
$labels['tabattachments'] = 'สิ่งที่แนบมาด้วย';
$labels['tabsharing'] = 'แบ่งปัน';
$labels['deleteobjectconfirm'] = 'คุณต้องการลบเหตุการณ์นี้หรือไม่';
$labels['deleteventconfirm'] = 'คุณต้องการลบเหตุการณ์นี้หรือไม่';
$labels['deletecalendarconfirm'] = 'คุณต้องการลบปฎิทินฉบับนี้พร้อมกับเหตุการณ์ทั้งหมดหรือไม่';
$labels['deletecalendarconfirmrecursive'] = 'คุณต้องการลบปฎิทินฉบับนี้พร้อมเหตุการณ์และปฎิทินย่อยทั้งหมดหรือไม่';
$labels['savingdata'] = 'บันทึกข้อมูล';
$labels['errorsaving'] = 'การบันทึกการเปลี่ยนแปลงล้มเหลว';
$labels['operationfailed'] = 'การทำตามคำร้องล้มเหลว';
$labels['invalideventdates'] = 'วันที่ที่ป้อนเข้ามาไม่ถูกต้อง โปรดตรวจสอบการป้อนข้อมูลของท่าน';
$labels['invalidcalendarproperties'] = 'การตั้งค่าคุณสมบัติปฎิทินไม่ถูกต้อง โปรดตั้งชื่อให้ถูกต้อง';
$labels['searchnoresults'] = 'ไม่พบเหตุการณ์ในปฎิทินฉบับที่เลือก';
$labels['successremoval'] = 'เหตุการณ์ได้ถูกลบเรียบร้อยแล้ว';
$labels['successrestore'] = 'การกู้เหตุการณ์เรียบร้อยแล้ว';
$labels['errornotifying'] = 'เกิดข้อผิดพลาดในการส่งข้อความเตือนไปยังผู้เข้าร่วมเหตุการณ์';
$labels['errorimportingevent'] = 'การนำเข้าเหตุการณ์เกิดข้อผิดพลาด';
$labels['importwarningexists'] = 'มีเหตุการณ์นี้อยู่ในปฎิทินของคุณอยู่แล้ว';
$labels['newerversionexists'] = 'มีเหตุการณ์ที่มีรุ่นควบคุมที่ใหม่กว่าอยู่แล้ว ยกเลิกการนำเข้า';
$labels['nowritecalendarfound'] = 'ไม่พบปฎิทินที่จะบันทึกเหตุการณ์นี้';
$labels['importedsuccessfully'] = 'เหตุการณ์ได้ถูกเพิ่มไปยัง \'$calendar\' เรียบร้อยแล้ว';
$labels['updatedsuccessfully'] = 'เหตุการณ์ได้ถูกปรับปรุงไปยัง \'$calendar\' เรียบร้อยแล้ว';
$labels['attendeupdateesuccess'] = 'การปรับปรุงสถานะของผู้เข้าร่วมเรียบร้อยแล้ว';
$labels['itipsendsuccess'] = 'คำเชิญถูกส่งไปยังผู้เข้าร่วมแล้ว';
$labels['itipresponseerror'] = 'การส่งคำตอบรับสำหรับคำเชิญเหตุการณ์นี้ล้มเหลว';
$labels['itipinvalidrequest'] = 'คำเชิญนี้ไม่มีผลแล้ว';
$labels['sentresponseto'] = 'การส่งคำตอบรับสำหรับคำเชิญไปยัง $mailto เรียบร้อยแล้ว';
$labels['localchangeswarning'] = 'คุณกำลังปรับเปลี่ยนรายละเอียดซึ่งมีผลกับปฎิทินของคุณเท่านั้น และ การปรับเปลี่ยนจะไม่ถูกส่งไปยังผู้จัดของเหตุการณ์นี้';
$labels['importsuccess'] = 'นำเข้า $nr เหตุการณ์เรียบร้อยแล้ว';
$labels['importnone'] = 'ไม่พบเหตุการณ์ที่จะนำเข้า';
$labels['importerror'] = 'พบข้อผิดพลาดในระหว่างนำเข้า';
$labels['aclnorights'] = 'คุณไม่มีสิทธิของผู้ดูแลระบบของปฎิทินฉบับนี้';
$labels['changeeventconfirm'] = 'เปลี่ยนเหตุการณ์';
$labels['removeeventconfirm'] = 'ลบเหตุการณ์';
$labels['changerecurringeventwarning'] = 'เหตุการณ์นี้เป็นเหตุการณ์ที่เกิดซ้ำ คุณต้องการแก้ไขเฉพาะเหตุการณ์ปัจจุบันเท่านั้น เหตุการณ์ปัจจุบันรวมทั้งในอนาคต หรือ เหตุการณ์ทั้งหมด หรือ บันทึกเป็นเหตุการณ์ใหม่';
$labels['removerecurringeventwarning'] = 'เหตุการณ์นี้เป็นเหตุการณ์ที่เกิดซ้ำ คุณต้องการลบเฉพาะเหตุการณ์ปัจจุบันเท่านั้น เหตุการณ์ปัจจุบันรวมทั้งในอนาคต หรือ เหตุการณ์ทั้งหมด';
$labels['removerecurringallonly'] = 'เหตุการณ์นี้เป็นเหตุการณ์ที่เกิดซ้ำ ในฐานะผู้เข้าร่วม คุณสามารถทำการลบได้เฉพาะแบบเหตุการณ์ทั้งหมด พร้อม กำหนดการที่จะเกิดขึ้นทั้งหมดเท่านั้น';
$labels['currentevent'] = 'ปัจจุบัน';
$labels['futurevents'] = 'อนาคต';
$labels['allevents'] = 'ทั้งหมด';
$labels['saveasnew'] = 'บันทึกเป็นเหตุการณ์ใหม่';
$labels['birthdays'] = 'วันเกิด';
$labels['birthdayscalendar'] = 'ปฎิทินวันเกิด';
$labels['displaybirthdayscalendar'] = 'แสดงปฎิทินวันเกิด';
$labels['birthdayscalendarsources'] = 'จากสมุดที่อยู่เหล่านี้';
$labels['birthdayeventtitle'] = 'วันเกิดของ $name';
$labels['birthdayage'] = 'อายุ $age ปี';
$labels['objectchangelog'] = 'ประวัติการปรับเปลี่ยน';
$labels['objectnotfound'] = 'การโหลดข้อมูลของเหตุการณ์ล้มเหลว';
$labels['objectchangelognotavailable'] = 'ไม่มีประวัติการปรับเปลี่ยนสำหรับเหตุการณ์นี้';
$labels['objectdiffnotavailable'] = 'ไม่สามารถเปรียบเทียบรุ่นการปรับปรุงที่เลือกได้';
$labels['revisionrestoreconfirm'] = 'คุณต้องการกู้คืนรุ่นการปรับปรุง $rev ของเหตุการณ์นี้หรือ นี่จะเป็นการเขียนทับข้อมูลปัจจุบันด้วยข้อมูลที่เก่ากว่า';
$labels['arialabelcalendarview'] = 'มุมมองปฎิทิน';
$labels['arialabelquicksearchbox'] = 'ป้อนข้อมูลเพื่อค้นหาเหตุการณ์';
$labels['arialabelcalsearchform'] = 'ฟอร์มค้นหาปฎิทิน';
$labels['arialabeleventattendees'] = 'รายชื่อผู้เข้าร่วมเหตุการณ์';
$labels['arialabeleventresources'] = 'รายการทรัพยากรที่ใช้ในเหตุการณ์';
$labels['arialabelresourcesearchform'] = 'ฟอร์มค้นหาทรัพยากร';
$labels['arialabelresourceselection'] = 'ทรัพยากรที่ยังว่าง';
?>

215
localization/uk_UA.inc Normal file
View file

@ -0,0 +1,215 @@
<?php
/**
* Localizations for Kolab Calendar plugin
*
* Copyright (C) 2014, Kolab Systems AG
*
* For translation see https://www.transifex.com/projects/p/kolab/resource/calendar/
*/
$labels['default_view'] = 'Початковий вигляд';
$labels['time_format'] = 'Формат часу';
$labels['timeslots'] = 'Проміжків на годину';
$labels['first_day'] = 'Перший день тижня';
$labels['first_hour'] = 'Показувати починаючи з';
$labels['workinghours'] = 'Робочі години';
$labels['add_category'] = 'Додати категорію';
$labels['remove_category'] = 'Вилучити категорію';
$labels['defaultcalendar'] = 'Створити нову подію в';
$labels['eventcoloring'] = 'Колір події';
$labels['coloringmode0'] = 'Згідно кольору календаря';
$labels['coloringmode1'] = 'Згідно кольору категорії';
$labels['coloringmode2'] = 'Колір календаря для рамки, колір категорії для фону';
$labels['coloringmode3'] = 'Колір категорії для рамки, колір календаря для фону';
$labels['afternothing'] = 'Нічого не робити';
$labels['aftertrash'] = 'Перемістити до смітника';
$labels['afterdelete'] = 'Вилучити повідомлення';
$labels['afterflagdeleted'] = 'Відмітити як видалене';
$labels['aftermoveto'] = 'Перемістити в ...';
$labels['itipoptions'] = 'Запрошення на події';
$labels['afteraction'] = 'Після того, як запрошення або повідомлення про його зміну оброблено';
$labels['calendar'] = 'Календар';
$labels['calendars'] = 'Календарі';
$labels['category'] = 'Категорія';
$labels['categories'] = 'Категорії';
$labels['createcalendar'] = 'Створити новий календар';
$labels['name'] = 'Назва';
$labels['color'] = 'Колір';
$labels['day'] = 'День';
$labels['week'] = 'Тиждень';
$labels['month'] = 'Місяць';
$labels['agenda'] = 'Розпорядок дня';
$labels['new'] = 'Новий';
$labels['new_event'] = 'Нова подія';
$labels['edit_event'] = 'Редагувати подію';
$labels['edit'] = 'Редагувати';
$labels['save'] = 'Зберегти';
$labels['removelist'] = 'Вилучити зі списку';
$labels['cancel'] = 'Відмінити';
$labels['select'] = 'Вибрати';
$labels['print'] = 'Друк';
$labels['printtitle'] = 'Друкувати календар';
$labels['title'] = 'Резюме';
$labels['description'] = 'Опис';
$labels['all-day'] = 'весь день';
$labels['export'] = 'Експорт';
$labels['exporttitle'] = 'Експорт в iCalendar';
$labels['exportrange'] = 'Події починаючи з';
$labels['exportattachments'] = 'Із вкладеннями';
$labels['customdate'] = 'Спеціальна дата';
$labels['location'] = 'Розташування';
$labels['url'] = 'URL';
$labels['date'] = 'Дата';
$labels['start'] = 'Початок';
$labels['starttime'] = 'Час початку';
$labels['end'] = 'Закінчення';
$labels['endtime'] = 'Час закінчення';
$labels['repeat'] = 'Повторити';
$labels['selectdate'] = 'Виберіть дату';
$labels['freebusy'] = 'Показати як';
$labels['free'] = 'Вільний';
$labels['busy'] = 'Зайнятий';
$labels['outofoffice'] = 'Поза офісом';
$labels['tentative'] = 'Невизначений';
$labels['mystatus'] = 'Мій статус';
$labels['status'] = 'Статус';
$labels['status-confirmed'] = 'Підтверджений';
$labels['status-cancelled'] = 'Відмінений';
$labels['status-tentative'] = 'Невизначений';
$labels['priority'] = 'Пріоритет';
$labels['sensitivity'] = 'Конфіденційність';
$labels['public'] = 'публічна';
$labels['private'] = 'приватна';
$labels['confidential'] = 'конфіденційна';
$labels['alarms'] = 'Нагадування';
$labels['comment'] = 'Коментарій';
$labels['created'] = 'Створена';
$labels['changed'] = 'Змінена';
$labels['unknown'] = 'Невідомо';
$labels['eventoptions'] = 'Опції';
$labels['generated'] = 'створений';
$labels['eventhistory'] = 'Історія';
$labels['printdescriptions'] = 'Друк опису';
$labels['parentcalendar'] = 'Вставити всередину';
$labels['searchearlierdates'] = '« Шукати події раніше';
$labels['searchlaterdates'] = 'Шукати події пізніше »';
$labels['andnmore'] = '$nr більше...';
$labels['togglerole'] = 'Клікніть для перемикання ролі';
$labels['createfrommail'] = 'Зберегти як подію';
$labels['importevents'] = 'Імпортувати подію';
$labels['importrange'] = 'Події починаючи з';
$labels['onemonthback'] = '1 місяць назад';
$labels['nmonthsback'] = '$nr місяця (ів) тому';
$labels['showurl'] = 'Показати URL календаря';
$labels['showurldescription'] = 'Використовуйте наступну адресу для перегляду Вашого календаря з інших додатків. Ви можете скопіювати і вставити це в будь-який додаток який підтримує формат iCal.';
$labels['caldavurldescription'] = 'Скопіюйте цей адрес в клієнт, який підтримує <a href="http://en.wikipedia.org/wiki/CalDAV" target="_blank">CalDAV</a> (наприклад, Evolution або Mozilla Thunderbird) для повної синхронізації даного календаря зі своїм комп\'ютером або мобільним пристроєм.';
$labels['findcalendars'] = 'Знайти календарі...';
$labels['searchterms'] = 'Умови пошуку';
$labels['calsearchresults'] = 'Доступні календарі';
$labels['calendarsubscribe'] = 'Завжди показувати';
$labels['nocalendarsfound'] = 'Не знайдено календарів';
$labels['nrcalendarsfound'] = '$nr календарів знайдено';
$labels['quickview'] = 'Подивитися тільки цей календар';
$labels['invitationspending'] = 'Очікуючі запрошення';
$labels['invitationsdeclined'] = 'Відхилені запрошення';
$labels['changepartstat'] = 'Змінити статус учасника';
$labels['rsvpcomment'] = 'Текст запрошення';
$labels['listrange'] = 'Діапазон:';
$labels['listsections'] = 'Розділити на:';
$labels['smartsections'] = 'Розумні секції';
$labels['until'] = 'до';
$labels['today'] = 'Сьогодні';
$labels['tomorrow'] = 'Завтра';
$labels['thisweek'] = 'Поточний тиждень';
$labels['nextweek'] = 'Наступний тиждень';
$labels['prevweek'] = 'Попередній тиждень';
$labels['thismonth'] = 'Поточний місяць';
$labels['nextmonth'] = 'Наступний місяць';
$labels['weekofyear'] = 'Тиждень';
$labels['pastevents'] = 'Минуле';
$labels['futureevents'] = 'Майбутнє';
$labels['showalarms'] = 'Показувати нагадування';
$labels['defaultalarmtype'] = 'Типові налаштування нагадувань';
$labels['defaultalarmoffset'] = 'Типовий час нагадувань';
$labels['attendee'] = 'Учасний';
$labels['role'] = 'Роль';
$labels['availability'] = 'Доступність';
$labels['confirmstate'] = 'Статус';
$labels['addattendee'] = 'Додати учасника';
$labels['roleorganizer'] = 'Організатор';
$labels['rolerequired'] = 'Обов\'язковий';
$labels['roleoptional'] = 'Необов\'язковий';
$labels['cutypeindividual'] = 'Окремий';
$labels['cutypegroup'] = 'Група';
$labels['cutyperesource'] = 'Ресурс';
$labels['cutyperoom'] = 'Кімната';
$labels['availfree'] = 'Вільний';
$labels['availbusy'] = 'Зайнятий';
$labels['availunknown'] = 'Невідомо';
$labels['availtentative'] = 'Невизначений';
$labels['availoutofoffice'] = 'Поза офісом';
$labels['scheduletime'] = 'Знайти доступних';
$labels['sendinvitations'] = 'Запросити';
$labels['sendnotifications'] = 'Повідомити учасників про зміни';
$labels['sendcancellation'] = 'Повідомити учасників про скасування події';
$labels['reqallattendees'] = 'Необхідні/всі учасники';
$labels['prevslot'] = 'Попередній час';
$labels['nextslot'] = 'Наступний час';
$labels['suggestedslot'] = 'Пропонований час';
$labels['noslotfound'] = 'Неможливо знайти вільний час';
$labels['invitationsubject'] = 'Ви запрошені на ';
$labels['invitationattendlinks'] = "У разі, якщо Ваш поштовий клієнт не підтримує запити iTip, Ви можете використати дане нижче посилання, щоб прийняти або відхилити це запрошення:\n\$url";
$labels['eventupdatesubject'] = '"$title" була оновлена';
$labels['eventupdatesubjectempty'] = 'Подія, яка стосується Вас, була оновленна ';
$labels['eventupdatemailbody'] = "*\$title*\n\nКоли: \$date\n\nЗапрошені: \$attendees\n\nУ вкладенні Ви знайдете файл iCalendar з усіма змінами у події, який Ви можете імпортувати у Вашу програму-щоденник.";
$labels['eventcancelmailbody'] = "*\$title*\n\nКоли: \$date\n\nЗапрошені: \$attendees\n\nЦя подія скасована \$organizer.\n\nУ вкладенні Ви знайдете файл iCalendar з усіма змінами у події.";
$labels['itipobjectnotfound'] = 'Згадану в даному повідомленні подію, не знайдено у Вашому календарі.';
$labels['itipdeclineevent'] = 'Ви хочете відхилити запрошення на дану подію?';
$labels['declinedeleteconfirm'] = 'Чи хочете Ви також видалити відхилену подію з вашого календаря?';
$labels['itipcomment'] = 'Коментар до запрошення/повідомлення';
$labels['itipcommenttitle'] = 'Даний коментар буде прикріплений до запрошення/повідомленням, надісланого учасникам';
$labels['notanattendee'] = 'Ви не в списку учасників цієї події';
$labels['eventcancelled'] = 'Дана подія відмінена';
$labels['saveincalendar'] = 'зберегти в';
$labels['updatemycopy'] = 'Оновити в моєму календарі';
$labels['savetocalendar'] = 'Зберегти в календар';
$labels['openpreview'] = 'Перевірте календар';
$labels['noearlierevents'] = 'Немає попередніх подій';
$labels['nolaterevents'] = 'Немає наступних подій';
$labels['resource'] = 'Ресурс';
$labels['addresource'] = 'Зарезервувати ресурс';
$labels['findresources'] = 'Знайти ресурс';
$labels['resourcedetails'] = 'Подробиці';
$labels['resourceavailability'] = 'Доступність';
$labels['resourceowner'] = 'Власник';
$labels['resourceadded'] = 'Ресурс доданий у Вашу подію';
$labels['tabsummary'] = 'Резюме';
$labels['tabrecurrence'] = 'Повторення';
$labels['tabattendees'] = 'Учасники';
$labels['tabresources'] = 'Ресурси';
$labels['tabattachments'] = 'Вкладення';
$labels['tabsharing'] = 'Спільне використання';
$labels['savingdata'] = 'Збереження даних...';
$labels['errorsaving'] = 'Помилка збереження змін.';
$labels['changeeventconfirm'] = 'Змінити подію';
$labels['removeeventconfirm'] = 'Вилучити подію';
$labels['currentevent'] = 'Поточну';
$labels['futurevents'] = 'Майбутню';
$labels['allevents'] = 'Всі';
$labels['birthdays'] = 'Дні Народження';
$labels['birthdayscalendar'] = 'Календар Днів Народжень';
$labels['displaybirthdayscalendar'] = 'Показувати календар Днів Народжень';
$labels['birthdayscalendarsources'] = 'З даних адресних книг';
$labels['birthdayeventtitle'] = 'День Народження $name';
$labels['birthdayage'] = 'Вік $age';
$labels['objectchangelog'] = 'Історія змін';
$labels['arialabelminical'] = 'Вибір дати';
$labels['arialabelcalendarview'] = 'Вигляд календаря';
$labels['arialabelsearchform'] = 'Форма пошуку подій';
$labels['arialabelquicksearchbox'] = 'Пошук подій';
$labels['arialabelcalsearchform'] = 'Форма пошуку календарів';
$labels['calendaractions'] = 'Дії з календарями';
$labels['arialabeleventattendees'] = 'Учасники події';
$labels['arialabeleventresources'] = 'Ресурси подій';
$labels['arialabelresourcesearchform'] = 'Форма пошуку ресурсів';
$labels['arialabelresourceselection'] = 'Доступні ресурси';
?>

123
localization/zh_CN.inc Normal file
View file

@ -0,0 +1,123 @@
<?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['aftertrash'] = '移到回收站';
$labels['afterdelete'] = '删除此信息';
$labels['afterflagdeleted'] = '被删除标签';
$labels['aftermoveto'] = '移到...';
$labels['category'] = '分类';
$labels['categories'] = '类别';
$labels['name'] = '名称';
$labels['color'] = '颜色';
$labels['day'] = '天';
$labels['week'] = '周';
$labels['month'] = '月';
$labels['agenda'] = '议程表';
$labels['new'] = '新建';
$labels['new_event'] = '新建事件';
$labels['edit_event'] = '编辑事件';
$labels['edit'] = '编辑';
$labels['save'] = '保存';
$labels['removelist'] = '从列表中移除';
$labels['cancel'] = '取消';
$labels['select'] = '选择';
$labels['print'] = '打印';
$labels['title'] = '汇总';
$labels['description'] = '描述';
$labels['export'] = '导出';
$labels['exporttitle'] = '导出到ICalendar';
$labels['location'] = '地点';
$labels['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['eventhistory'] = '历史';
$labels['searchearlierdates'] = '<< 查找以前的事件';
$labels['searchlaterdates'] = '查找以后的时间 >>';
$labels['invitationspending'] = '未决邀请';
$labels['invitationsdeclined'] = '已拒绝邀请';
$labels['rsvpcomment'] = '邀请文字';
$labels['until'] = '直到';
$labels['today'] = '今天';
$labels['tomorrow'] = '明天';
$labels['thisweek'] = '本周';
$labels['nextweek'] = '下周';
$labels['prevweek'] = '上周';
$labels['thismonth'] = '本月';
$labels['nextmonth'] = '下月';
$labels['weekofyear'] = '周';
$labels['pastevents'] = '过去';
$labels['futureevents'] = '未来';
$labels['showalarms'] = '显示提醒';
$labels['defaultalarmtype'] = '默认提醒设置';
$labels['defaultalarmoffset'] = '默认提醒时间';
$labels['attendee'] = '参与者';
$labels['role'] = '身份';
$labels['availability'] = '有空';
$labels['confirmstate'] = '状态';
$labels['addattendee'] = '添加参与者';
$labels['roleorganizer'] = '组织者';
$labels['rolerequired'] = '必须';
$labels['roleoptional'] = '可选';
$labels['rolenonparticipant'] = '缺席';
$labels['cutypeindividual'] = '个人';
$labels['cutypegroup'] = '组织';
$labels['cutyperesource'] = '资源';
$labels['availfree'] = '空闲';
$labels['availbusy'] = '忙碌';
$labels['availunknown'] = '未知';
$labels['availtentative'] = '临时';
$labels['availoutofoffice'] = '外出';
$labels['scheduletime'] = '查找是否有空';
$labels['sendinvitations'] = '发送邀请';
$labels['sendnotifications'] = '通知参加者修改事项';
$labels['resource'] = '资源';
$labels['resourceowner'] = '所有者';
$labels['tabsummary'] = '汇总';
$labels['tabresources'] = '资源';
$labels['tabsharing'] = '分享';
$labels['savingdata'] = '保存数据...';
$labels['futurevents'] = '未来';
$labels['allevents'] = '全部';
?>

220
print.js
View file

@ -1,10 +1,12 @@
/**
* Print view for the Calendar plugin
*
* @version @package_version@
* @author Thomas Bruederli <bruederli@kolabsys.com>
*
* Copyright (C) 2011, Kolab Systems AG <contact@kolabsys.com>
* @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>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@ -18,6 +20,9 @@
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*/
@ -29,24 +34,33 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
{
return String(str).replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
};
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 src, event_sources = [];
var add_url = (rcmail.env.search ? '&q='+escape(rcmail.env.search) : '');
for (var id in rcmail.env.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) {
if (!rcmail.env.calendars[id].active)
continue;
source = $.extend({
url: "./?_task=calendar&_action=load_events&source=" + escape(id) + add_url,
className: 'fc-event-cal-'+id,
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);
@ -56,72 +70,89 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
header: {
left: '',
center: 'title',
right: 'agendaDay,agendaWeek,month,table'
right: 'agendaDay,agendaWeek,month,list'
},
theme: false,
aspectRatio: 0.85,
ignoreTimezone: true, // will treat the given date strings as in local (browser's) timezone
date: viewdate.getDate(),
month: viewdate.getMonth(),
year: viewdate.getFullYear(),
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,
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'),
table: rcmail.gettext('agenda', 'calendar')
list: rcmail.gettext('agenda', 'calendar')
},
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')
buttonIcons: {
prev: 'left-single-arrow',
next: 'right-single-arrow'
},
eventLimitText: function(num) {
return rcmail.gettext('andnmore', 'calendar').replace('$nr', num);
},
loading: function(isLoading) {
rc_loading = rcmail.set_busy(isLoading, 'loading', rc_loading);
},
// event rendering
eventRender: function(event, element, view) {
if (view.name != 'month') {
var cont = element.find('div.fc-event-title');
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 (event.location) {
cont.after('<div class="fc-event-location">@&nbsp;' + Q(event.location) + '</div>');
cont = cont.next();
@ -129,40 +160,55 @@ 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('div.fc-event-time').append('<i class="fc-icon-recurring"></i>');
if (event.alarms)
element.find('div.fc-event-time').append('<i class="fc-icon-alarms"></i>');
*/
}
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>');
}
},
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);
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 = [];
}
});
// activate settings form
$('#propdescription').change(function(){
$('#propdescription').change(function() {
showdesc = this.checked;
fc.fullCalendar('render');
desc_elements = [];
fc.fullCalendar('rerenderEvents');
});
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(); });
}
});

View file

@ -1,5 +0,0 @@
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/>

File diff suppressed because it is too large Load diff

View file

@ -1,724 +0,0 @@
/*
* FullCalendar v1.5.4-rcube-0.9.0 Stylesheet
*
* Copyright (c) 2011 Adam Shaw
* Copyright (c) 2011, Kolab Systems AG
* Dual licensed under the MIT and GPL licenses, located in
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
*
* Date: Wed Nov 7 16:28:11 2012 +0100
*
*/
.fc {
direction: ltr;
text-align: left;
}
.fc table {
border-collapse: collapse;
border-spacing: 0;
}
html .fc,
.fc table {
font-size: 1em;
}
.fc td,
.fc th {
padding: 0;
vertical-align: top;
}
/* Header
------------------------------------------------------------------------*/
.fc-header td {
white-space: nowrap;
}
.fc-header-left {
width: 25%;
text-align: left;
}
.fc-header-center {
text-align: center;
}
.fc-header-right {
width: 25%;
text-align: right;
}
.fc-header-title {
display: inline-block;
vertical-align: top;
}
.fc-header-title h2 {
margin-top: 0;
white-space: nowrap;
}
.fc .fc-header-space {
padding-left: 10px;
}
.fc-header .fc-button {
margin-bottom: 1em;
vertical-align: top;
}
/* buttons edges butting together */
.fc-header .fc-button {
margin-right: -1px;
}
.fc-header .fc-corner-right {
margin-right: 1px; /* back to normal */
}
.fc-header .ui-corner-right {
margin-right: 0; /* back to normal */
}
/* button layering (for border precedence) */
.fc-header .fc-state-hover,
.fc-header .ui-state-hover {
z-index: 2;
}
.fc-header .fc-state-down {
z-index: 3;
}
.fc-header .fc-state-active,
.fc-header .ui-state-active {
z-index: 4;
}
/* Content
------------------------------------------------------------------------*/
.fc-content {
clear: both;
}
.fc-view {
width: 100%; /* needed for view switching (when view is absolute) */
overflow: hidden;
}
/* Cell Styles
------------------------------------------------------------------------*/
.fc-widget-header, /* <th>, usually */
.fc-widget-content { /* <td>, usually */
border: 1px solid #ccc;
}
.fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */
background: #ffc;
}
.fc-cell-overlay { /* semi-transparent rectangle while dragging */
background: #9cf;
opacity: .2;
filter: alpha(opacity=20); /* for IE */
}
/* Buttons
------------------------------------------------------------------------*/
.fc-button {
position: relative;
display: inline-block;
cursor: pointer;
}
.fc-state-default { /* non-theme */
border-style: solid;
border-width: 1px 0;
}
.fc-button-inner {
position: relative;
float: left;
overflow: hidden;
}
.fc-state-default .fc-button-inner { /* non-theme */
border-style: solid;
border-width: 0 1px;
}
.fc-button-content {
position: relative;
float: left;
height: 1.9em;
line-height: 1.9em;
padding: 0 .6em;
white-space: nowrap;
}
/* icon (for jquery ui) */
.fc-button-content .fc-icon-wrap {
position: relative;
float: left;
top: 50%;
}
.fc-button-content .ui-icon {
position: relative;
float: left;
margin-top: -50%;
*margin-top: 0;
*top: -50%;
}
/* gloss effect */
.fc-state-default .fc-button-effect {
position: absolute;
top: 50%;
left: 0;
}
.fc-state-default .fc-button-effect span {
position: absolute;
top: -100px;
left: 0;
width: 500px;
height: 100px;
border-width: 100px 0 0 1px;
border-style: solid;
border-color: #fff;
background: #444;
opacity: .09;
filter: alpha(opacity=9);
}
/* button states (determines colors) */
.fc-state-default,
.fc-state-default .fc-button-inner {
border-style: solid;
border-color: #ccc #bbb #aaa;
background: #F3F3F3;
color: #000;
}
.fc-state-hover,
.fc-state-hover .fc-button-inner {
border-color: #999;
}
.fc-state-down,
.fc-state-down .fc-button-inner {
border-color: #555;
background: #777;
}
.fc-state-active,
.fc-state-active .fc-button-inner {
border-color: #555;
background: #777;
color: #fff;
}
.fc-state-disabled,
.fc-state-disabled .fc-button-inner {
color: #999;
border-color: #ddd;
}
.fc-state-disabled {
cursor: default;
}
.fc-state-disabled .fc-button-effect {
display: none;
}
/* Global Event Styles
------------------------------------------------------------------------*/
.fc-event {
border-style: solid;
border-width: 0;
font-size: .85em;
cursor: default;
}
a.fc-event,
.fc-event-draggable {
cursor: pointer;
}
a.fc-event {
text-decoration: none;
}
.fc-rtl .fc-event {
text-align: right;
}
.fc-event-skin {
border-color: #36c; /* default BORDER color */
background-color: #36c; /* default BACKGROUND color */
color: #fff; /* default TEXT color */
}
.fc-event-inner {
position: relative;
width: 100%;
height: 100%;
border-style: solid;
border-width: 0;
overflow: hidden;
}
.fc-event-time,
.fc-event-title {
padding: 0 1px;
}
.fc .ui-resizable-handle { /*** TODO: don't use ui-resizable anymore, change class ***/
display: block;
position: absolute;
z-index: 99999;
overflow: hidden; /* hacky spaces (IE6/7) */
font-size: 300%; /* */
line-height: 50%; /* */
}
/* Horizontal Events
------------------------------------------------------------------------*/
.fc-event-hori {
border-width: 1px 0;
margin-bottom: 1px;
}
/* resizable */
.fc-event-hori .ui-resizable-e {
top: 0 !important; /* importants override pre jquery ui 1.7 styles */
right: -3px !important;
width: 7px !important;
height: 100% !important;
cursor: e-resize;
}
.fc-event-hori .ui-resizable-w {
top: 0 !important;
left: -3px !important;
width: 7px !important;
height: 100% !important;
cursor: w-resize;
}
.fc-event-hori .ui-resizable-handle {
_padding-bottom: 14px; /* IE6 had 0 height */
}
/* Fake Rounded Corners (for buttons and events)
------------------------------------------------------------*/
.fc-corner-left {
margin-left: 1px;
}
.fc-corner-left .fc-button-inner,
.fc-corner-left .fc-event-inner {
margin-left: -1px;
}
.fc-corner-right {
margin-right: 1px;
}
.fc-corner-right .fc-button-inner,
.fc-corner-right .fc-event-inner {
margin-right: -1px;
}
.fc-corner-top {
margin-top: 1px;
}
.fc-corner-top .fc-event-inner {
margin-top: -1px;
}
.fc-corner-bottom {
margin-bottom: 1px;
}
.fc-corner-bottom .fc-event-inner {
margin-bottom: -1px;
}
/* Fake Rounded Corners SPECIFICALLY FOR EVENTS
-----------------------------------------------------------------*/
.fc-corner-left .fc-event-inner {
border-left-width: 1px;
}
.fc-corner-right .fc-event-inner {
border-right-width: 1px;
}
.fc-corner-top .fc-event-inner {
border-top-width: 1px;
}
.fc-corner-bottom .fc-event-inner {
border-bottom-width: 1px;
}
/* Reusable Separate-border Table
------------------------------------------------------------*/
table.fc-border-separate {
border-collapse: separate;
}
.fc-border-separate th,
.fc-border-separate td {
border-width: 1px 0 0 1px;
}
.fc-border-separate th.fc-last,
.fc-border-separate td.fc-last {
border-right-width: 1px;
}
.fc-border-separate tr.fc-last th,
.fc-border-separate tr.fc-last td {
border-bottom-width: 1px;
}
.fc-border-separate tbody tr.fc-first td,
.fc-border-separate tbody tr.fc-first th {
border-top-width: 0;
}
/* Month View, Basic Week View, Basic Day View
------------------------------------------------------------------------*/
.fc-grid th {
text-align: center;
}
.fc-grid .fc-day-number {
float: right;
padding: 0 2px;
}
.fc-grid .fc-other-month .fc-day-number {
opacity: 0.3;
filter: alpha(opacity=30); /* for IE */
/* opacity with small font can sometimes look too faded
might want to set the 'color' property instead
making day-numbers bold also fixes the problem */
}
.fc-grid .fc-day-content {
clear: both;
padding: 2px 2px 1px; /* distance between events and day edges */
}
/* event styles */
.fc-grid .fc-event-time {
font-weight: bold;
}
/* right-to-left */
.fc-rtl .fc-grid .fc-day-number {
float: left;
}
.fc-rtl .fc-grid .fc-event-time {
float: right;
}
.fc-more-link {
font-size: 0.85em;
white-space: nowrap;
text-decoration: none;
cursor: pointer;
padding: 1px;
}
/* Agenda Week View, Agenda Day View
------------------------------------------------------------------------*/
.fc-agenda table {
border-collapse: separate;
}
.fc-agenda-days th {
text-align: center;
}
.fc-agenda .fc-agenda-axis {
width: 50px;
padding: 0 4px;
vertical-align: middle;
text-align: right;
white-space: nowrap;
font-weight: normal;
}
.fc-agenda .fc-day-content {
padding: 2px 2px 1px;
}
/* make axis border take precedence */
.fc-agenda-days .fc-agenda-axis {
border-right-width: 1px;
}
.fc-agenda-days .fc-col0 {
border-left-width: 0;
}
/* all-day area */
.fc-agenda-allday th {
border-width: 0 1px;
}
.fc-agenda-allday .fc-day-content {
min-height: 34px; /* TODO: doesnt work well in quirksmode */
_height: 34px;
}
/* divider (between all-day and slots) */
.fc-agenda-divider-inner {
height: 2px;
overflow: hidden;
}
.fc-widget-header .fc-agenda-divider-inner {
background: #eee;
}
/* slot rows */
.fc-agenda-slots th {
border-width: 1px 1px 0;
}
.fc-agenda-slots td {
border-width: 1px 0 0;
background: none;
}
.fc-agenda-slots td div {
height: 20px;
}
.fc-agenda-slots tr.fc-slot0 th,
.fc-agenda-slots tr.fc-slot0 td {
border-top-width: 0;
}
.fc-agenda-slots tr.fc-minor th,
.fc-agenda-slots tr.fc-minor td {
border-top-style: dotted;
}
.fc-agenda-slots tr.fc-minor th.ui-widget-header {
*border-top-style: solid; /* doesn't work with background in IE6/7 */
}
/* Vertical Events
------------------------------------------------------------------------*/
.fc-event-vert {
border-width: 0 1px;
}
.fc-event-vert .fc-event-head,
.fc-event-vert .fc-event-content {
position: relative;
z-index: 2;
width: 100%;
overflow: hidden;
}
.fc-event-vert .fc-event-time {
white-space: nowrap;
font-size: 10px;
}
.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */
position: absolute;
z-index: 1;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #fff;
opacity: .3;
filter: alpha(opacity=30);
}
.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */
.fc-select-helper .fc-event-bg {
display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */
}
/* resizable */
.fc-event-vert .ui-resizable-s {
bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */
width: 100% !important;
height: 8px !important;
overflow: hidden !important;
line-height: 8px !important;
font-size: 11px !important;
font-family: monospace;
text-align: center;
cursor: s-resize;
}
.fc-agenda .ui-resizable-resizing { /* TODO: better selector */
_overflow: hidden;
}
.fc-timeline {
position: absolute;
width: 100%;
left: 0;
margin: 0;
padding: 0;
border: none;
border-top: 2px solid #3ec400;
z-index: 999;
}
/* List view (by bruederli@kolabsys.com)
------------------------------------------------------------------------*/
.fc-view-list,
.fc-view-table {
border: 1px solid #ccc;
width: auto;
}
.fc-view-list .fc-list-header,
.fc-view-table td.fc-list-header {
border-width: 0;
border-bottom-width: 1px;
padding: 3px 5px;
}
.fc-view-table .fc-first td.fc-list-header {
border-top-width: 0;
}
.fc-list-section {
padding: 4px 2px;
border-width: 0;
border-bottom-width: 1px;
}
.fc-view-list .fc-last {
border-bottom-width: 0;
}
.fc-list-section .fc-event {
position: relative;
margin: 1px 2px 3px 2px;
}
.fc-view-table tr.fc-event td {
padding: 2px;
border-bottom: 1px solid #ccc;
}
.fc-view-table tr.fc-event td.fc-event-handle {
padding: 3px 8px 3px 3px;
}
.fc-view-table .fc-event-handle .fc-event-skin {
border-radius: 2px;
-moz-border-radius: 2px;
}
.fc-view-table .fc-event-handle .fc-event-inner {
display: block;
width: 8px;
height: 10px;
border-radius: 2px;
-moz-border-radius: 2px;
}
.fc-view-table table {
table-layout: fixed;
width: 100%;
}
.fc-view-table col.fc-event-handle {
width: 18px;
}
.fc-event-handle .fc-event-inner {
border-color: inherit;
background-color: inherit;
}
.fc-view-table col.fc-event-date {
width: 7em;
}
.fc-view-table .fc-list-day col.fc-event-date {
width: 1px;
}
.fc-view-table col.fc-event-time {
width: 8em;
}
.fc-view-table td.fc-event-date,
.fc-view-table td.fc-event-time {
white-space: nowrap;
padding-right: 1em;
}

View file

@ -1,88 +0,0 @@
/* 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%;
}
#eventshow.sensitivity-private {
background-image: url(images/badge_private.gif);
}
#eventshow.sensitivity-confidential {
background-image: url(images/badge_confidential.gif);
}
.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');
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 888 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

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