CVE-2022-4455: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') (CWE-79)
value: A vulnerability, which was classified as problematic, was found in sproctor php-calendar. This affects an unknown part of the file index.php. The manipulation of the argument $_SERVER['PHP_SELF'] leads to cross site scripting. It is possible to initiate the attack remotely. The name of the patch is a2941109b42201c19733127ced763e270a357809. It is recommended to apply a patch to fix this issue. The identifier VDB-215445 was assigned to this vulnerability.
CWE description: The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
CVSS v3 base score: 6.1
Published: 2022-12-13T18:15Z
Repository: https://github.com/sproctor/php-calendar
Language: PHP
Files changed: .gitignore, .tx/config, AUTHORS, Homestead.yaml, NEWS, README, Vagrantfile, after.sh, aliases, composer.json, composer.lock, generate_messages.sh, index.php, install.php, license.txt, locale/ar/LC_MESSAGES/messages.po, locale/bg/LC_MESSAGES/messages.po, locale/ca/LC_MESSAGES/messages.po, locale/cs_CZ/LC_MESSAGES/messages.po, locale/da/LC_MESSAGES/messages.po, locale/de/LC_MESSAGES/messages.po, locale/el/LC_MESSAGES/messages.po, locale/en/LC_MESSAGES/messages.po, locale/es/LC_MESSAGES/messages.po, locale/fa/LC_MESSAGES/messages.po, locale/fi/LC_MESSAGES/messages.po, locale/fr/LC_MESSAGES/messages.po, locale/gl/LC_MESSAGES/messages.po, locale/he/LC_MESSAGES/messages.po, locale/hu/LC_MESSAGES/messages.po, locale/it/LC_MESSAGES/messages.po, locale/ja/LC_MESSAGES/messages.po, locale/ko_KR/LC_MESSAGES/messages.po, locale/lt/LC_MESSAGES/messages.po, locale/nl/LC_MESSAGES/messages.po, locale/no/LC_MESSAGES/messages.po, locale/pl_PL/LC_MESSAGES/messages.po, locale/pt/LC_MESSAGES/messages.po, locale/pt_BR/LC_MESSAGES/messages.po, locale/ru/LC_MESSAGES/messages.po, locale/sl/LC_MESSAGES/messages.po, locale/sv/LC_MESSAGES/messages.po, locale/th/LC_MESSAGES/messages.po, locale/vi/LC_MESSAGES/messages.po, locale/zh/LC_MESSAGES/messages.po, locale/zh_CN/LC_MESSAGES/messages.po, locale/zh_TW/LC_MESSAGES/messages.po, messages.po, src/Gettext_PHP.php, src/admin.php, src/cadmin.php, src/cadmin_submit.php, src/calendar.php, src/calendar_delete.php, src/calendar_form.php, src/category_delete.php, src/category_form.php, src/category_submit.php, src/display_day.php, src/display_event.php, src/display_month.php, src/display_week.php, src/embed.php, src/embed_setup.php, src/event_delete.php, src/event_form.php, src/form.php, src/globals.php, src/group_delete.php, src/group_form.php, src/group_submit.php, src/html.php, src/import.php, src/login.php, src/logout.php, src/msgfmt-functions.php, src/occur_form.php, src/occurrence_delete.php, src/password_submit.php, src/phpccalendar.class.php, src/phpcdatabase.class.php, src/phpcevent.class.php, src/phpcoccurrence.class.php, src/phpcuser.class.php, src/search.php, src/settings.php, src/setup.php, src/translate.php, src/user_create.php, src/user_delete.php, src/user_groups.php, src/user_permissions_submit.php, src/util.php, static/jquery-ui-timepicker.css, static/jquery.hoverIntent.minified.js, static/jquery.ui.timepicker.js, static/phpc.css, static/phpc.js, static/spectrum.css, static/spectrum.js
Commit date: 2022-04-28 08:37:51 -0400
Commit message: Attempt to mitigate reflective XSS attack

Diff: diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..554a376
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+config.php
+*.swp
+*.mo
+
+/vendor/
+.vagrant
+.idea
diff --git a/.tx/config b/.tx/config
new file mode 100644
index 0000000..1a365b5
--- /dev/null
+++ b/.tx/config
@@ -0,0 +1,7 @@
+[main]
+host = https://www.transifex.com
+
+[php-calendar.messages]
+file_filter = locale/<lang>/LC_MESSAGES/messages.po
+source_file = messages.po
+source_lang = en_US
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..dc5a2a7
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,2 @@
+Sean Proctor <sproctor@gmail.com>
+Stefano Sabatini <sabas88@gmail.com>
diff --git a/Homestead.yaml b/Homestead.yaml
new file mode 100644
index 0000000..77ae72a
--- /dev/null
+++ b/Homestead.yaml
@@ -0,0 +1,20 @@
+ip: 192.168.57.57
+memory: 2048
+cpus: 2
+provider: virtualbox
+authorize: ~/.ssh/id_rsa.pub
+keys:
+    - ~/.ssh/id_rsa
+folders:
+    - map: ./
+      to: /home/vagrant/code
+sites:
+    - map: php-calendar-1.local
+      to: /home/vagrant/code
+databases:
+    - homestead
+features:
+    - mariadb: false
+    - ohmyzsh: false
+    - webdriver: false
+name: php-calendar-1
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..e2617d0
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,429 @@
+NEWS
+-----
+
+2.0.13 (28 January 2022):
+	- Fixed compatability with PHP 8
+	- Only show readable calendars in the calendar list
+	- Fix week number issues
+
+2.0.12 (2 January 2018):
+	- Fixed additional issues with the updater
+	- Minor changes to forms
+
+2.0.11 (1 January 2018):
+	- Switched colorpicker to spectrum.js
+	- Updated jQuery to 3.2.1 and jQuery UI to 1.12.1
+	- Fixed issues with the updater
+
+2.0.10 (6 April 2017):
+	- Update jquery/jquery ui versions
+	- Use markdown to format event descriptions
+
+2.0.9 (5 January 2015):
+	- A few minor attempts at improving security.
+	- Fixed search and day displays for timezones other than the server.
+	- Added labels to installer to make fields easier to select.
+	- Fixed installer for PHP 5.5.
+
+2.0.8 (1 July 2014):
+	- Fixed problems published by siph0n. shoutz: smitz
+	- The 2.0.7 release was botched and drawn from the wrong tree.
+
+2.0.7 (10 June 2014):
+	- Minor bug fixes and translation updates
+
+2.0.6 (5 May 2014):
+	- Fixed modify occurrence form
+	- Fixed rare event submit bug
+
+2.0.5 (24 February 2014):
+	- Updated translations
+
+2.0.4 (24 February 2014):
+	- Fix embed bug caused by 2.0.2
+
+2.0.3 (18 February 2014):
+	- Updated translations
+
+2.0.2 (11 February 2014):
+	- Updated fixes
+
+2.0.1 (4 February 2014):
+	- Bug fixes
+
+2.0 (24 October 2013):
+	- Form to allow calendar admins to modify users' groups
+	- Calendar/month/year selectors are now dropdowns on the appropriate
+	  field
+	- Bug Fixes
+
+2.0-rc7 (10 October 2013):
+	- Groups settings and admin sections into tabs
+	- Group list selector for creating a user
+	- Added week view
+	- Bug fixes
+
+2.0-rc6 (2 May 2013):
+	- Fixed bugs in importing from version 1.1
+	- Fixed editing occurrence with non-default date format
+	- Fixed events with categories with no group only visible to admins
+
+2.0-rc5 (29 April 2013):
+	- Fixed major bug that prevent events from showing up
+
+2.0-rc4 (26 April 2013):
+	- Removed unused jpicker directory
+	- repackaged (rc3 was accidentally uncompressed)
+
+2.0-rc3 (26 April 2013):
+	- Move to Github + Transifex
+	- Database changes
+	- UI Tweaks
+	- Updated libraries
+	- JqueryUI themes
+	- User permissions for categories
+	- Improved installation
+	- Simpler internationalization
+
+2.0-rc2 (21 Jan 21013):
+	- Fixed broken admin page
+	- Removed outdated docs and put links to online docs in README
+
+2.0-rc1 (20 Jan 2013):
+	- Split timezone entry into two dropdowns
+	- Add date format settings
+	- Critical bug fixes
+
+2.0-beta12 (4 Jan 2013):
+	- Added files missing from previous release
+	- Updated to JQuery 1.8.3 and JQuery UI 1.9.2
+
+2.0-beta11 (2 Jan 2013):
+	- Changed date/time entry to date/time picker
+	- Added category to event/occurrence/summary views
+	- Added author to summary in month view
+	- Allow anonymous users to save tz/lang settings.
+	- Updated to jquery 1.7.2
+	- Make connections persistent until logged out
+	- Added links for add/modify occurrences
+	- Take user to a useful page after form submissions
+
+2.0-beta10 (8 Apr 2011):
+	- Added a color picker for categories, by Michal Osowiecki
+	- Added support for timezones (breaks compatibility with beta9)
+	- Updated French translation by Pascal Rigaux
+	- Updated Italian translation by Marcelo Fortino
+	- Added Catalan translation by Marcelo Fortino
+	- Properly display modify event for repeating events. Initial patch
+	    from Pascal Rigaux
+	- Added user and calendar settings for timezone and language
+	- Added updater from earlier 2.0 betas
+	- Bugfixes (Thanks to Pascal Rigaux, Hans Eksteen)
+
+2.0-beta9 (19 Oct 2010):
+	- Fixes misconfigured default paths for embedded calendars
+	- Limits the month view to displaying 8 events per day.
+	- Fix translation of month and day names, thanks to Michał Osowiecki.
+	- Event form follows 12/24 hr preference, thanks to Michał Osowiecki.
+	- Changed weeks starting on Monday to use week numbers according to
+	  ISO 8601. Weeks starting on Sunday use weeks containing Jan 1 as the
+	  first week. Calendar admins may need to adjust this option as the
+	  values have changed their meanings.
+	- Updated the style to be a little lighter, thanks to Michał Osowiecki.
+	- Fix modifying events with linebreaks and HTML in the description,
+	  thanks to Kerri McHale
+	- Bulgarian translation, thanks to Hristo Delchev
+	- Bug Fixes
+
+2.0-beta8 (14 Jun 2010):
+	- Fixes SQL-injection and XSS errors discovered by Teemu Vesala
+	  at Qentinel
+	- Added Danish translation, thanks to Jesper Jensen
+	- Logout users after 30 minutes of inactivity
+	- Protect event and admin forms from CSRF attacks
+	- Added Chinese translation, thanks to huang guan rong
+	- Bug Fixes
+
+2.0-beta7 (19 May 2010):
+	- Added French translation
+	- Re-arranged includes so month and day names get translated
+	- Fixed XSS with lastaction
+	- Don't allow HTML characters in text/bg colors
+	- Removed accidental return that exposed descriptions without removing
+	  tags. Don't strip tags, leave them in and replace special chars
+	- Fixed security vulnerabilities discovered by VUPEN Security
+	  http://www.vupen.com
+	- Other bug fixes
+
+2.0-beta6 (12 March 2010):
+	- Removed Polish translations because it contains errors
+	- Added translation script
+	- Converted calendar fully to UTF-8
+	- Bug fixes
+
+2.0-beta5 (11 February 2010):
+	- Added categories with custom colors for events
+	- moved configurable variables into index.php and embed_setup.php
+	    (for standalone and embedded calendar, respectively)
+	- Fixed a few bugs with anonymous users
+	- Addition of categories makes the DB format incompatible with previous
+	    releeases
+
+2.0-beta4 (13 January 2010):
+	- fix another typo in install
+	- select DB outside of the constructor, fixes a problem for at least
+	  one user.
+	
+2.0-beta3 (06 January 2010):
+	- enable delete user in admin
+	- added files missing in beta2
+	- Allow users to create readonly events
+
+2.0-beta2 (31 December 2009):
+	- Switched from PDO to MySQLi to be supported on more setups
+	- Changed event DB format to allow more customizable repeating events
+	- Vastly improved the event submit form
+	- Removed durations and replaced them with time spans
+
+2.0-beta1 (26 June 2009):
+	- require install and update scripts to be removed to prevent security
+	  issues.
+	- Unify login between calendars again.
+	- Switched from ADOdb to PDO. Removes necessity of ADOdb but raises
+	  PHP version requirement to 5.0 and MySQL to 4.1
+	- Added improved permissions and facilities to add and remove users
+	  and calendars and modify permissions.
+	- Created embed.php for people to embed the calendar into an existing
+	  page.
+	- Changed license from GPL v2 to Apache 2.0
+
+1.1 (06 January 2009):
+	- Switch from XHTML 1.0 to HTML 4.01 Strict
+	- remove create_xhtml() which had become a misnomer and move the
+	  functionality to index.php where it is more accessible.
+	- Created non-admin users who can only modify/delete their own events
+	  (and all of the infrastructure to go with this)
+	- Prevent a user/admin from logging into one calendar and having the
+	  same priviledges on another calendar on the same host.
+
+1.0 (24 December 2008):
+	- Event form changed to allow dates in the range 1 - 31 regardless of
+	  the current month
+	- Added a checkbox to event form for multiday events, so single day
+	  events don't need to change their end date
+	- Added yearly recurring events
+	- Hopefully fixed get_events_by_date in PostgreSQL again
+
+0.10.9 (1 August 2007):
+	- Fixed redirects so if you don't have a config and we redirect to
+	  the installer, it goes to the proper place
+	- Fixed a couple of issues with the option to have weeks start on
+	  Monday
+
+0.10.8 (22 June 2007):
+	- 0.10.6 changed the DB schema by accident. the result of this new
+	  schema is handled properly in 0.10.7. both schemas are compatible.
+	  updated entry in 0.10.7 to properly describe the cause.
+	- fixed doctype typo and updated some meta-data
+	- make redirects HTTP compliant to fix an issue with Safari
+	- allow start_monday to work again
+
+0.10.7 (29 September 2006):
+	- fix issue with starting weeks on mondays
+	- fix issue with times caused by change in schema in 0.10.6
+
+0.10.6 (25 September 2006):
+	- fix issue with creating tables with DB's other than mysql
+	- fix issue when running php as a cgi
+	- don't strip tags when inserting into DB
+	- give instructions on how to stop stripping tags on display
+	- change doctype to xhtml 1.0
+	- added a FAQ
+	- added a Spanish translation
+	- updated the German translation
+	- add an Italian translation
+
+0.10.5 (15 September 2005):
+	- Fix wrong HTML generation bug (causing style issues with Firefox)
+          (Thanks Peter K.H. Gragert and Patrick Gormley )
+        - added Dutch translation (Thanks Peter K.H. Gragert)
+        - added Japanese translation (Thanks Tadashi Jokagi)
+        - update language support to only display in the list languages with
+          .mo files
+        - strip HTML tags from descriptions when displaying and escape
+          entities
+
+0.10.4 (4 May 2005):
+        - fixed an incompatibility with PHP 5 (Thanks to Patrick Gormley)
+        - fix a nasty login error (Thanks to Benjamin Watson)
+        - a couple other fixes with warnings and start of week
+
+0.10.3 (26 April 2005):
+        - fixed an issue creating new users (thanks to Volker Hoffman)
+        - changed Unknown time to To Be Announced (suggested by Mark Mason)
+        - added a new event option No Time (suggested by Alex Falcone)
+        - fixed an issue with older versions of MySQL where the hour
+          and minute wouldn't be read correctly causing them to be lost
+          on modification (thanks to Mark Mason)
+        - moved old array-based HTML data structure to a class-based one
+          (this was a huge change, any weird behavior you see was probably
+          caused by this)
+        - fixed the issue with options being selected incorrectly in the
+          admin page
+        - added an update script (only supports 0.8 and newer so far)
+        - fixed a bug in search that was causing an error when descending order
+          was chosen
+        - fixed possible SQL injection in search.php
+        - report years that are out of range
+        - creating new users will change the password of old ones if they exist
+        - fix login to redirect to the page we were actually just on
+        - update login code to hit the DB less often
+
+0.10.2 (04 April 2005):
+        - fix a problem where modifying an event didn't pick up the date
+          properly.
+        - try to require creating config.php less often on install
+        - add SQL_PREFIX to user sequence table. may break existing calendars
+          where more users than the defaults were added when more users are
+          created (thanks to Nathan Barham)
+        - stop anonymous users from trying to edit events when they aren't
+          allowed. and same for preferences.
+        - fix old broken hour behavior.
+        - fix duration display where we were display fractional hours by
+          mistake in addition to minutes.
+        - Require a username and password when creating a new user
+        - No longer shipping modified ADOdb. Require ADOdb 4.62 or greater.
+          (Thanks to John Lim)
+        - URL to be modified via $phpc_script in setup.php
+
+0.10.1 (10 Jan 2005):
+        - fix security vulnerability with regard to loading any any PHP file
+          (Thanks to James Bercegay of the GulfTech Security Research Team)
+        - add a modified version of adodb to the distribution (it's version
+          4.54 w/ day of week functions added for postgresql and mysql)
+        - fix a few scattered bugs
+        - make PostgreSQL work for new installations again
+        - fix bug with multiple word searches
+        - fix get_events_by_date
+        - fix logout (and improve login as well)
+
+version 0.10 (5 Nov 2004):
+        * fix bug in event_submit
+        * a number of installation fixes
+        * more strings are translatable
+        * much better code documentation
+        * display correct max subject length
+        * option to change subject length
+        * changed how adodb is included. people on windows please test that this          works.
+        * Add form to create new users to admin page
+
+Version 0.9.1 (4/14/04):
+        * add quick event add link
+        * fix bug adding an events
+        * fix some bugs regarding 12 hour time
+        * fix some issues with the installation
+
+Version 0.9 (3/30/04):
+        * move to adodb
+        * require php 4.1 or greater
+        * many bug fixes
+
+Version 0.8 (3/11/03):
+        * Change config file to use defines rather than variables.
+        * You _need_ gettext-0.11.6-pre1 or later to parse with xgettext.  I
+          have a copy of this if anyone needs it.  My language support is
+          going to lag unless someone helps.  I only speak English, so it's
+          not useful to me.
+        * Very much updated documentation (thanks Tai)
+        * greatly improved install script (thanks to motivation from Tai,
+          and ideas from postnuke)
+        * admin support, plus a variable to adjust the anonymous permissions
+          (Thanks Nate for the first part)
+        * cluster calendars. one base with a separate index file for each
+          calendar. (thanks Nate)
+        * moved to requiring php 4.0 again (thanks Nate ;-)
+        * colors are again configurable through a calendar specific config
+          file (miniconfig.php)
+        * We got a search function! (thanks Nate although I totally rewrote it)
+        * added weekly/monthly/daily events (thanks me)
+        * changed the config files a lot, so old calendars will break
+        * support for SQL servers besides MySQL (thanks phpBB)
+        * Page to change options added
+
+Version 0.7 (10/5/02):
+        * added .php to end of .inc files
+        * cleaned up the look a little,
+        * modifying posts is fixed which may or may not have been broken in
+          0.6
+        * changed from specifying table name to table prefix.  to update
+          you'll need to create the new table (ie phpc_events) then do an
+          insert select to copy over the old data
+        * not sure what is wrong with gettext.  It no longer works at all, but
+          the _() function gets defined better.  basically, things are no
+          longer giving errors, but they don't work anymore.
+
+Version 0.6 (6/18/02):
+        * LOTS of code clean-ups.
+        * moved to xhtml
+        * dropped netscape 4 support
+        * added configuration to start week on monday
+        * separated out style sheets, css clean ups
+        * UI clean-ups
+        * multiple language support
+        * option to change the calendar to 24h time
+
+Version 0.5 (3/15/02):
+        * remove some warnings
+        * fixed up indentation
+        * a number of minor style changes
+        * disallow remote access to config, header and footer files in apache
+        * added an install script
+        * removed $REMOTE_USER support, because I'll be adding my own
+          eventually, and I never used or tested the current one.
+        * added checking to mysql, reloading modify and add pages doesn't give
+          the same entry many times.  deleting a non-existant item displays a
+          failure
+        * added an update script for version 0.3 and below
+
+Version 0.4 (2/20/2002):
+        * fix am/pm issues with new time input
+        * add duration to events
+        * add event type for full day and questionable times
+        * not compatible with old databases
+
+Version 0.3 (02/15/2002):
+        * fix to make links work properly in IE
+        * minor color tweak
+        * bugfixes (thanks to richard datafordummies.com)
+        * more fixes for Netscape 4
+        * made time input more user-friendly and fixed bugs with the old
+        method.
+        * got rid of ugly old method of dealing with end dates and also found
+        and squashed a bug relating to that
+
+Version 0.2 (02/14/2002):
+        * allows color changing through variables in config.php
+        * bug that caused header/title on pages besides index fixed
+        * bug that caused modified elements to be added twice fixed
+        * now regresses well in Netscape 4 (switches to HTML 4 transitional
+        for old browsers)
+
+Version 0.1 (02/11/2002):
+        * moved to php4, if anyone finds a version of php4 that doesn't work,
+          or finds this to work in a older version, please let me know
+        * lots of style and HTML changes to try to make the calendar look more
+        professional.  I've tried to make the style sheet somewhat friendly.
+        If someone makes changes and wants a different style sheet included as
+        well, send it to me.  this is all initial work and the changes are too
+        many to include.  I decided to move to HTML 4.01/CSS2.  Only browsers
+        which fully support these will display the calendar perfectly.  I
+        tested using Mozilla, and that currently displays the calendar how I
+        intended.  IE 5.5 and 6.0 don't support the CSS element
+        border-spacing, so they look a little funny.  Netscape 4.x looks
+        awful, but is still usable.
+        * there was a bug where if you didn't include a subject, the post
+          wouldn't show.
+        * included timestamp on the table
+        * added variables to change the displayed title and the header.
+        * some code cleanups.
+`
diff --git a/README b/README
new file mode 100644
index 0000000..41e38d6
--- /dev/null
+++ b/README
@@ -0,0 +1,15 @@
+PHP-Calendar
+----------------
+
+This program requires a PHP enabled webserver and a database (MySQL) installed.
+
+Installation and upgrade instructions:
+https://github.com/sproctor/php-calendar/wiki/Installation-Guide
+
+This program is licensed under the Apache License, Version 2.0 located at
+http://www.apache.org/licenses/LICENSE-2.0.html
+
+Any questions, contact me at the email address found in the AUTHORS files or
+on the various pages on the website.
+
+FAQ: https://github.com/sproctor/php-calendar/wiki/Frequently-Asked-Questions
diff --git a/Vagrantfile b/Vagrantfile
new file mode 100644
index 0000000..de4e6ba
--- /dev/null
+++ b/Vagrantfile
@@ -0,0 +1,53 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+require 'json'
+require 'yaml'
+
+VAGRANTFILE_API_VERSION ||= "2"
+confDir = $confDir ||= File.expand_path("vendor/laravel/homestead", File.dirname(__FILE__))
+
+homesteadYamlPath = File.expand_path("Homestead.yaml", File.dirname(__FILE__))
+homesteadJsonPath = File.expand_path("Homestead.json", File.dirname(__FILE__))
+afterScriptPath = "after.sh"
+customizationScriptPath = "user-customizations.sh"
+aliasesPath = "aliases"
+
+require File.expand_path(confDir + '/scripts/homestead.rb')
+
+Vagrant.require_version '>= 2.2.4'
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+    if File.exist? aliasesPath then
+        config.vm.provision "file", source: aliasesPath, destination: "/tmp/bash_aliases"
+        config.vm.provision "shell" do |s|
+            s.inline = "awk '{ sub(\"\r$\", \"\"); print }' /tmp/bash_aliases > /home/vagrant/.bash_aliases"
+        end
+    end
+
+    if File.exist? homesteadYamlPath then
+        settings = YAML::load(File.read(homesteadYamlPath))
+    elsif File.exist? homesteadJsonPath then
+        settings = JSON::parse(File.read(homesteadJsonPath))
+    else
+        abort "Homestead settings file not found in " + File.dirname(__FILE__)
+    end
+
+    Homestead.configure(config, settings)
+
+    if File.exist? afterScriptPath then
+        config.vm.provision "shell", path: afterScriptPath, privileged: false, keep_color: true
+    end
+
+    if File.exist? customizationScriptPath then
+        config.vm.provision "shell", path: customizationScriptPath, privileged: false, keep_color: true
+    end
+
+    if Vagrant.has_plugin?('vagrant-hostsupdater')
+        config.hostsupdater.aliases = settings['sites'].map { |site| site['map'] }
+    elsif Vagrant.has_plugin?('vagrant-hostmanager')
+        config.hostmanager.enabled = true
+        config.hostmanager.manage_host = true
+        config.hostmanager.aliases = settings['sites'].map { |site| site['map'] }
+    end
+end
diff --git a/after.sh b/after.sh
new file mode 100644
index 0000000..c455861
--- /dev/null
+++ b/after.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# If you would like to do some extra provisioning you may
+# add any commands you wish to this file and they will
+# be run after the Homestead machine is provisioned.
+#
+# If you have user-specific configurations you would like
+# to apply, you may also create user-customizations.sh,
+# which will be run after this script.
+
+
+# If you're not quite ready for the latest Node.js version,
+# uncomment these lines to roll back to a previous version
+
+# Remove current Node.js version:
+#sudo apt-get -y purge nodejs
+#sudo rm -rf /usr/lib/node_modules/npm/lib
+#sudo rm -rf //etc/apt/sources.list.d/nodesource.list
+
+# Install Node.js Version desired (i.e. v13)
+# More info: https://github.com/nodesource/distributions/blob/master/README.md#debinstall
+#curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
+#sudo apt-get install -y nodejs
diff --git a/aliases b/aliases
new file mode 100644
index 0000000..711769f
--- /dev/null
+++ b/aliases
@@ -0,0 +1,315 @@
+alias ..="cd .."
+alias ...="cd ../.."
+
+alias h='cd ~'
+alias c='clear'
+alias art=artisan
+
+alias codecept='vendor/bin/codecept'
+alias phpspec='vendor/bin/phpspec'
+alias serve=serve-laravel
+
+alias xoff='sudo phpdismod -s cli xdebug'
+alias xon='sudo phpenmod -s cli xdebug'
+
+function artisan() {
+    php artisan "$@"
+}
+
+function dusk() {
+    pids=$(pidof /usr/bin/Xvfb)
+
+    if [ ! -n "$pids" ]; then
+        Xvfb :0 -screen 0 1280x960x24 &
+    fi
+
+    if [[ $? -eq 0 ]]
+    then
+        php artisan dusk
+    else
+        php artisan dusk --filter "$@"
+    fi
+}
+
+function p() {
+    if [ -f vendor/bin/pest ]; then
+       vendor/bin/pest "$@"
+    else
+       vendor/bin/phpunit "$@"
+    fi
+ }
+ 
+ function pf() {
+    if [ -f vendor/bin/pest ]; then
+       vendor/bin/pest --filter "$@"
+    else
+       vendor/bin/phpunit --filter "$@"
+    fi
+ }
+
+function php56() {
+    sudo update-alternatives --set php /usr/bin/php5.6
+    sudo update-alternatives --set php-config /usr/bin/php-config5.6
+    sudo update-alternatives --set phpize /usr/bin/phpize5.6
+}
+
+function php70() {
+    sudo update-alternatives --set php /usr/bin/php7.0
+    sudo update-alternatives --set php-config /usr/bin/php-config7.0
+    sudo update-alternatives --set phpize /usr/bin/phpize7.0
+}
+
+function php71() {
+    sudo update-alternatives --set php /usr/bin/php7.1
+    sudo update-alternatives --set php-config /usr/bin/php-config7.1
+    sudo update-alternatives --set phpize /usr/bin/phpize7.1
+}
+
+function php72() {
+    sudo update-alternatives --set php /usr/bin/php7.2
+    sudo update-alternatives --set php-config /usr/bin/php-config7.2
+    sudo update-alternatives --set phpize /usr/bin/phpize7.2
+}
+
+function php73() {
+    sudo update-alternatives --set php /usr/bin/php7.3
+    sudo update-alternatives --set php-config /usr/bin/php-config7.3
+    sudo update-alternatives --set phpize /usr/bin/phpize7.3
+}
+
+function php74() {
+    sudo update-alternatives --set php /usr/bin/php7.4
+    sudo update-alternatives --set php-config /usr/bin/php-config7.4
+    sudo update-alternatives --set phpize /usr/bin/phpize7.4
+}
+
+function php80() {
+    sudo update-alternatives --set php /usr/bin/php8.0
+    sudo update-alternatives --set php-config /usr/bin/php-config8.0
+    sudo update-alternatives --set phpize /usr/bin/phpize8.0
+}
+
+function php81() {
+    sudo update-alternatives --set php /usr/bin/php8.1
+    sudo update-alternatives --set php-config /usr/bin/php-config8.1
+    sudo update-alternatives --set phpize /usr/bin/phpize8.1
+}
+
+function serve-apache() {
+    if [[ "$1" && "$2" ]]
+    then
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
+        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/apache.sh
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/apache.sh "$1" "$2" 80 443 "${3:-8.1}"
+    else
+        echo "Error: missing required parameters."
+        echo "Usage: "
+        echo "  serve-apache domain path"
+    fi
+}
+
+function serve-laravel() {
+    if [[ "$1" && "$2" ]]
+    then
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
+        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/laravel.sh
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/laravel.sh "$1" "$2" 80 443 "${3:-8.1}"
+    else
+        echo "Error: missing required parameters."
+        echo "Usage: "
+        echo "  serve domain path"
+    fi
+}
+
+function serve-proxy() {
+    if [[ "$1" && "$2" ]]
+    then
+        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/proxy.sh
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/proxy.sh "$1" "$2" 80 443 "${3:-8.1}"
+    else
+        echo "Error: missing required parameters."
+        echo "Usage: "
+        echo "  serve-proxy domain port"
+    fi
+}
+
+function serve-silverstripe() {
+    if [[ "$1" && "$2" ]]
+    then
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
+        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/silverstripe.sh
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/silverstripe.sh "$1" "$2" 80 443 "${3:-8.1}"
+    else
+        echo "Error: missing required parameters."
+        echo "Usage: "
+        echo "  serve-silverstripe domain path"
+    fi
+}
+
+function serve-spa() {
+    if [[ "$1" && "$2" ]]
+    then
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
+        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/spa.sh
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/spa.sh "$1" "$2" 80 443 "${3:-8.1}"
+    else
+        echo "Error: missing required parameters."
+        echo "Usage: "
+        echo "  serve-spa domain path"
+    fi
+}
+
+function serve-statamic() {
+    if [[ "$1" && "$2" ]]
+    then
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
+        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/statamic.sh
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/statamic.sh "$1" "$2" 80 443 "${3:-8.1}"
+    else
+        echo "Error: missing required parameters."
+        echo "Usage: "
+        echo "  serve-statamic domain path"
+    fi
+}
+
+function serve-symfony2() {
+    if [[ "$1" && "$2" ]]
+    then
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
+        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/symfony2.sh
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/symfony2.sh "$1" "$2" 80 443 "${3:-8.1}"
+    else
+        echo "Error: missing required parameters."
+        echo "Usage: "
+        echo "  serve-symfony2 domain path"
+    fi
+}
+
+function serve-symfony4() {
+    if [[ "$1" && "$2" ]]
+    then
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
+        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/symfony4.sh
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/symfony4.sh "$1" "$2" 80 443 "${3:-8.1}"
+    else
+        echo "Error: missing required parameters."
+        echo "Usage: "
+        echo "  serve-symfony4 domain path"
+    fi
+}
+
+function serve-pimcore() {
+    if [[ "$1" && "$2" ]]
+    then
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
+        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/pimcore.sh
+        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/pimcore.sh "$1" "$2" 80 443 "${3:-8.1}"
+    else
+        echo "Error: missing required parameters."
+        echo "Usage: "
+        echo "  serve-pimcore domain path"
+    fi
+}
+
+function share() {
+    if [[ "$1" ]]
+    then
+        ngrok http ${@:2} -host-header="$1" 80
+    else
+        echo "Error: missing required parameters."
+        echo "Usage: "
+        echo "  share domain"
+        echo "Invocation with extra params passed directly to ngrok"
+        echo "  share domain -region=eu -subdomain=test1234"
+    fi
+}
+
+function flip() {
+    sudo bash /vagrant/vendor/laravel/homestead/scripts/flip-webserver.sh
+}
+
+function __has_pv() {
+    $(hash pv 2>/dev/null);
+
+    return $?
+}
+
+function __pv_install_message() {
+    if ! __has_pv; then
+        echo $1
+        echo "Install pv with \`sudo apt-get install -y pv\` then run this command again."
+        echo ""
+    fi
+}
+
+function dbexport() {
+    FILE=${1:-/vagrant/mysqldump.sql.gz}
+
+    # This gives an estimate of the size of the SQL file
+    # It appears that 80% is a good approximation of
+    # the ratio of estimated size to actual size
+    SIZE_QUERY="select ceil(sum(data_length) * 0.8) as size from information_schema.TABLES"
+
+    __pv_install_message "Want to see export progress?"
+
+    echo "Exporting databases to '$FILE'"
+
+    if __has_pv; then
+        ADJUSTED_SIZE=$(mysql --vertical -uhomestead -psecret -e "$SIZE_QUERY" 2>/dev/null | grep 'size' | awk '{print $2}')
+        HUMAN_READABLE_SIZE=$(numfmt --to=iec-i --suffix=B --format="%.3f" $ADJUSTED_SIZE)
+
+        echo "Estimated uncompressed size: $HUMAN_READABLE_SIZE"
+        mysqldump -uhomestead -psecret --all-databases --skip-lock-tables --routines 2>/dev/null | pv  --size=$ADJUSTED_SIZE | gzip > "$FILE"
+    else
+        mysqldump -uhomestead -psecret --all-databases --skip-lock-tables --routines 2>/dev/null | gzip > "$FILE"
+    fi
+
+    echo "Done."
+}
+
+function dbimport() {
+    FILE=${1:-/vagrant/mysqldump.sql.gz}
+
+    __pv_install_message "Want to see import progress?"
+
+    echo "Importing databases from '$FILE'"
+
+    if __has_pv; then
+        pv "$FILE" --progress --eta | zcat | mysql -uhomestead -psecret 2>/dev/null
+    else
+        cat "$FILE" | zcat | mysql -uhomestead -psecret 2>/dev/null
+    fi
+
+    echo "Done."
+}
+
+function xphp() {
+    (php -m | grep -q xdebug)
+    if [[ $? -eq 0 ]]
+    then
+        XDEBUG_ENABLED=true
+    else
+        XDEBUG_ENABLED=false
+    fi
+
+    if ! $XDEBUG_ENABLED; then xon; fi
+
+    php \
+        -dxdebug.client_host=192.168.10.1 \
+        -dxdebug.start_with_request=yes \
+        "$@"
+
+    if ! $XDEBUG_ENABLED; then xoff; fi
+}
+
+function update-socket-wrench() {
+    cd /var/www/socket-wrench
+    git pull origin release
+    composer install
+    php artisan migrate --force
+}
+
+function seed-socket-wrench() {
+    cd /var/www/socket-wrench
+    php artisan db:seed
+}
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..4937c1e
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,18 @@
+{
+    "name": "sproctor/php-calendar",
+    "type": "project",
+    "autoload": {
+        "psr-4": {
+            "Sproctor\\PhpCalendar\\": "src/"
+        }
+    },
+    "authors": [
+        {
+            "name": "Sean Proctor",
+            "email": "sproctor@gmail.com"
+        }
+    ],
+    "require-dev": {
+        "laravel/homestead": "^13.1"
+    }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..84a160f
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,1085 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "3273f0ead54a7171cd54c2c05e9060b7",
+    "packages": [],
+    "packages-dev": [
+        {
+            "name": "laravel/homestead",
+            "version": "v13.1.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/laravel/homestead.git",
+                "reference": "d67ec5a2613bc51b744b1b0592e6c05f8436d893"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/laravel/homestead/zipball/d67ec5a2613bc51b744b1b0592e6c05f8436d893",
+                "reference": "d67ec5a2613bc51b744b1b0592e6c05f8436d893",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.4 || ^8.0",
+                "symfony/console": "~5.1",
+                "symfony/process": "~5.1",
+                "symfony/yaml": "~5.1"
+            },
+            "require-dev": {
+                "dms/phpunit-arraysubset-asserts": "^0.2.1",
+                "phpunit/phpunit": "^9.5"
+            },
+            "bin": [
+                "bin/homestead"
+            ],
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Laravel\\Homestead\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                },
+                {
+                    "name": "Joe Ferguson",
+                    "email": "joe@joeferguson.me"
+                }
+            ],
+            "description": "A virtual machine for web artisans.",
+            "support": {
+                "issues": "https://github.com/laravel/homestead/issues",
+                "source": "https://github.com/laravel/homestead/tree/v13.1.1"
+            },
+            "time": "2022-01-26T20:09:28+00:00"
+        },
+        {
+            "name": "psr/container",
+            "version": "1.1.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/container.git",
+                "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
+                "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.4.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Container\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common Container Interface (PHP FIG PSR-11)",
+            "homepage": "https://github.com/php-fig/container",
+            "keywords": [
+                "PSR-11",
+                "container",
+                "container-interface",
+                "container-interop",
+                "psr"
+            ],
+            "support": {
+                "issues": "https://github.com/php-fig/container/issues",
+                "source": "https://github.com/php-fig/container/tree/1.1.2"
+            },
+            "time": "2021-11-05T16:50:12+00:00"
+        },
+        {
+            "name": "symfony/console",
+            "version": "v5.4.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/console.git",
+                "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/console/zipball/a2c6b7ced2eb7799a35375fb9022519282b5405e",
+                "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/deprecation-contracts": "^2.1|^3",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/polyfill-php73": "^1.9",
+                "symfony/polyfill-php80": "^1.16",
+                "symfony/service-contracts": "^1.1|^2|^3",
+                "symfony/string": "^5.1|^6.0"
+            },
+            "conflict": {
+                "psr/log": ">=3",
+                "symfony/dependency-injection": "<4.4",
+                "symfony/dotenv": "<5.1",
+                "symfony/event-dispatcher": "<4.4",
+                "symfony/lock": "<4.4",
+                "symfony/process": "<4.4"
+            },
+            "provide": {
+                "psr/log-implementation": "1.0|2.0"
+            },
+            "require-dev": {
+                "psr/log": "^1|^2",
+                "symfony/config": "^4.4|^5.0|^6.0",
+                "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+                "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+                "symfony/lock": "^4.4|^5.0|^6.0",
+                "symfony/process": "^4.4|^5.0|^6.0",
+                "symfony/var-dumper": "^4.4|^5.0|^6.0"
+            },
+            "suggest": {
+                "psr/log": "For using the console logger",
+                "symfony/event-dispatcher": "",
+                "symfony/lock": "",
+                "symfony/process": ""
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Console\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Eases the creation of beautiful and testable command line interfaces",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "cli",
+                "command line",
+                "console",
+                "terminal"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/console/tree/v5.4.2"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-12-20T16:11:12+00:00"
+        },
+        {
+            "name": "symfony/deprecation-contracts",
+            "version": "v2.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/deprecation-contracts.git",
+                "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
+                "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "function.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "A generic function and convention to trigger deprecation notices",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-07-12T14:48:14+00:00"
+        },
+        {
+            "name": "symfony/polyfill-ctype",
+            "version": "v1.24.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-ctype.git",
+                "reference": "30885182c981ab175d4d034db0f6f469898070ab"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
+                "reference": "30885182c981ab175d4d034db0f6f469898070ab",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-ctype": "*"
+            },
+            "suggest": {
+                "ext-ctype": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.23-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Ctype\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Gert de Pagter",
+                    "email": "BackEndTea@gmail.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for ctype functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "ctype",
+                "polyfill",
+                "portable"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-10-20T20:35:02+00:00"
+        },
+        {
+            "name": "symfony/polyfill-intl-grapheme",
+            "version": "v1.24.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+                "reference": "81b86b50cf841a64252b439e738e97f4a34e2783"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783",
+                "reference": "81b86b50cf841a64252b439e738e97f4a34e2783",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "suggest": {
+                "ext-intl": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.23-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for intl's grapheme_* functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "grapheme",
+                "intl",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-11-23T21:10:46+00:00"
+        },
+        {
+            "name": "symfony/polyfill-intl-normalizer",
+            "version": "v1.24.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+                "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
+                "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "suggest": {
+                "ext-intl": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.23-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ],
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for intl's Normalizer class and related functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "intl",
+                "normalizer",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-02-19T12:13:01+00:00"
+        },
+        {
+            "name": "symfony/polyfill-mbstring",
+            "version": "v1.24.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-mbstring.git",
+                "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
+                "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-mbstring": "*"
+            },
+            "suggest": {
+                "ext-mbstring": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.23-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Mbstring\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for the Mbstring extension",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "mbstring",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-11-30T18:21:41+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php73",
+            "version": "v1.24.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php73.git",
+                "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5",
+                "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.23-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php73\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ],
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-06-05T21:20:04+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php80",
+            "version": "v1.24.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php80.git",
+                "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9",
+                "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.23-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php80\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ],
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ion Bazan",
+                    "email": "ion.bazan@gmail.com"
+                },
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-09-13T13:58:33+00:00"
+        },
+        {
+            "name": "symfony/process",
+            "version": "v5.4.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/process.git",
+                "reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/process/zipball/2b3ba8722c4aaf3e88011be5e7f48710088fb5e4",
+                "reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Process\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Executes commands in sub-processes",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/process/tree/v5.4.2"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-12-27T21:01:00+00:00"
+        },
+        {
+            "name": "symfony/service-contracts",
+            "version": "v2.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/service-contracts.git",
+                "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
+                "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "psr/container": "^1.1",
+                "symfony/deprecation-contracts": "^2.1"
+            },
+            "conflict": {
+                "ext-psr": "<1.1|>=2"
+            },
+            "suggest": {
+                "symfony/service-implementation": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Service\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to writing services",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/service-contracts/tree/v2.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-11-04T16:48:04+00:00"
+        },
+        {
+            "name": "symfony/string",
+            "version": "v5.4.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/string.git",
+                "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/string/zipball/e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d",
+                "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/polyfill-ctype": "~1.8",
+                "symfony/polyfill-intl-grapheme": "~1.0",
+                "symfony/polyfill-intl-normalizer": "~1.0",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/polyfill-php80": "~1.15"
+            },
+            "conflict": {
+                "symfony/translation-contracts": ">=3.0"
+            },
+            "require-dev": {
+                "symfony/error-handler": "^4.4|^5.0|^6.0",
+                "symfony/http-client": "^4.4|^5.0|^6.0",
+                "symfony/translation-contracts": "^1.1|^2",
+                "symfony/var-exporter": "^4.4|^5.0|^6.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\String\\": ""
+                },
+                "files": [
+                    "Resources/functions.php"
+                ],
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "grapheme",
+                "i18n",
+                "string",
+                "unicode",
+                "utf-8",
+                "utf8"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/string/tree/v5.4.2"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-12-16T21:52:00+00:00"
+        },
+        {
+            "name": "symfony/yaml",
+            "version": "v5.4.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/yaml.git",
+                "reference": "b9eb163846a61bb32dfc147f7859e274fab38b58"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/yaml/zipball/b9eb163846a61bb32dfc147f7859e274fab38b58",
+                "reference": "b9eb163846a61bb32dfc147f7859e274fab38b58",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/deprecation-contracts": "^2.1|^3",
+                "symfony/polyfill-ctype": "^1.8"
+            },
+            "conflict": {
+                "symfony/console": "<5.3"
+            },
+            "require-dev": {
+                "symfony/console": "^5.3|^6.0"
+            },
+            "suggest": {
+                "symfony/console": "For validating YAML files using the lint command"
+            },
+            "bin": [
+                "Resources/bin/yaml-lint"
+            ],
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Yaml\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Loads and dumps YAML files",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/yaml/tree/v5.4.2"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-12-16T21:58:21+00:00"
+        }
+    ],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": [],
+    "platform-dev": [],
+    "plugin-api-version": "2.1.0"
+}
diff --git a/generate_messages.sh b/generate_messages.sh
new file mode 100755
index 0000000..4c41be5
--- /dev/null
+++ b/generate_messages.sh
@@ -0,0 +1,12 @@
+#! /bin/sh
+xgettext --language=PHP --keyword="__" --keyword="__p:1c,2" --copyright-holder="Sean Proctor" \
+	--package-name="PHP-Calendar" \
+	--package-version="2.0.13" --msgid-bugs-address="sproctor@gmail.com" *.php src/*.php
+sed '0,/SOME DESCRIPTIVE TITLE/s//PHP-Calendar/' messages.po > messages.tmp
+mv messages.tmp messages.po
+sed '0,/YEAR/s//2022/' messages.po > messages.tmp
+mv messages.tmp messages.po
+sed '0,/PACKAGE/s//PHP-Calendar/' messages.po > messages.tmp
+mv messages.tmp messages.po
+sed '0,/CHARSET/s//UTF-8/' messages.po > messages.tmp
+mv messages.tmp messages.po
diff --git a/index.php b/index.php
new file mode 100644
index 0000000..30424d8
--- /dev/null
+++ b/index.php
@@ -0,0 +1,90 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * The following variables are intended to be modified to fit your
+ * setup.
+ */
+
+/*
+ * If you want different scripts with different default calendars, you can
+ * copy this script and modify $default_calendar_id to contain the CID of
+ * the calendar you want to be the default
+ */
+$default_calendar_id = 1;
+
+/*
+ * $phpc_root_path gives the location of the base calendar install.
+ * if you move this file to a new location, modify $phpc_root_path to point
+ * to the location where the support files for the calendar are located.
+ */
+$phpc_root_path = dirname(__FILE__);
+$phpc_includes_path = "$phpc_root_path/src";
+$phpc_config_file = "$phpc_root_path/config.php";
+$phpc_locale_path = "$phpc_root_path/locale";
+$phpc_script = htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8');
+
+$phpc_server = $_SERVER['SERVER_NAME'];
+if(!empty($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"] != 80)
+	$phpc_server .= ":{$_SERVER["SERVER_PORT"]}";
+
+// Protcol ex. http or https
+if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off'
+		|| $_SERVER['SERVER_PORT'] == 443
+		|| isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
+		|| isset($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
+    $phpc_proto = "https";
+} else {
+    $phpc_proto = "http";
+}
+
+$phpc_home_url="$phpc_proto://$phpc_server$phpc_script";
+$phpc_url = $phpc_home_url . (empty($_SERVER['QUERY_STRING']) ? ''
+		: '?' . $_SERVER['QUERY_STRING']);
+
+// Remove this line if you must
+ini_set('arg_separator.output', '&amp;');
+
+/*
+ * Do not modify anything under this point
+ */
+if (!defined('IN_PHPC'))
+define('IN_PHPC', true);
+
+try {
+	require_once("$phpc_includes_path/calendar.php");
+	require_once("$phpc_includes_path/setup.php");
+
+	$calendar_title = $phpc_cal->get_title();
+	$content = display_phpc();
+} catch(Exception $e) {
+	$calendar_title = $e->getMessage();
+	$content = tag('div', attributes('class="php-calendar"'),
+			$e->getMessage());
+}
+
+$html = tag('html', attrs("lang=\"$phpc_lang\""),
+		tag('head',
+			tag('title', $calendar_title),
+			tag('link', attrs('rel="icon"',
+					"href=\"static/office-calendar.png\"")),
+			get_header_tags("static"),
+			tag('meta', attrs('http-equiv="Content-Type"',
+					   'content="text/html; charset=UTF-8"'))),
+		tag('body', $content));
+
+echo '<!DOCTYPE html>', "\n", $html->toString();
diff --git a/install.php b/install.php
new file mode 100644
index 0000000..6777f8a
--- /dev/null
+++ b/install.php
@@ -0,0 +1,795 @@
+<?php
+/*
+ * Copyright 2014 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+   Run this file to install the calendar
+   it needs very much work
+*/
+
+$phpc_db_version = 1;
+
+$phpc_root_path = dirname(__FILE__);
+$phpc_includes_path = "$phpc_root_path/includes";
+$phpc_config_file = "$phpc_root_path/config.php";
+
+define('IN_PHPC', true);
+
+if(!function_exists("mysqli_connect"))
+	soft_error("You must have the mysqli extension for PHP installed to use this calendar.");
+
+echo '<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="static/phpc.css"/>
+<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
+<title>PHP Calendar Installation</title>
+</head>
+<body>
+<h1>PHP Calendar</h1>';
+
+$must_upgrade = false;
+
+if(file_exists($phpc_config_file)) {
+	require_once $phpc_config_file;
+	if(defined("SQL_HOST")) {
+		$dbh = connect_db(SQL_HOST, SQL_USER, SQL_PASSWD, SQL_DATABASE);
+
+		$query = "SELECT *\n"
+			."FROM `" . SQL_PREFIX .  "calendars`\n";
+
+		$sth = $dbh->query($query);
+		$have_calendar = $sth && $sth->fetch_assoc();
+
+		$existing_version = 0;
+
+		$query = "SELECT version\n"
+			."FROM `" . SQL_PREFIX .  "version`\n";
+
+
+		$sth = $dbh->query($query);
+		if($sth) {
+			$result = $sth->fetch_assoc();
+			if(!empty($result['version']))
+				$existing_version = $result['version'];
+		}
+
+		if($have_calendar) {
+
+			$must_upgrade = true;
+
+			if($existing_version > $phpc_db_version) {
+				echo "<p>DB version is newer than the upgrader.</p>";
+				exit;
+			} elseif($existing_version == $phpc_db_version) {
+				echo '<p>The calendar has already been installed. <a href="index.php">Installed calendar</a></p>';
+				echo '<p>If you want to install again, manually delete config.php</p>';
+				exit;
+			}
+		}
+	}
+}
+
+echo '<p>Welcome to the PHP Calendar installation process.</p>
+<form method="post" action="install.php">
+';
+
+foreach($_POST as $key => $value) {
+	echo "<input name=\"$key\" value=\"$value\" type=\"hidden\">\n";
+}
+
+$drop_tables = isset($_POST["drop_tables"]) && $_POST["drop_tables"] == "yes";
+
+if(empty($_POST['action'])) {
+	get_action();
+} elseif($_POST['action'] == 'upgrade') {
+	if(empty($_POST['version'])) {
+		get_upgrade_version();
+	} else {
+		if ($_POST['version'] == "2.0rc2") {
+			upgrade_20rc2();
+			echo "<p>Update complete.</p>";
+		} elseif ($_POST['version'] == "2.0beta11") {
+			upgrade_20beta11();
+			echo "<p>Update complete.</p>";
+		} elseif($_POST['version'] == "2.0beta10") {
+			upgrade_20beta10();
+			echo "<p>Update complete.</p>";
+		} elseif($_POST['version'] == "2.0beta9") {
+			if(empty($_POST['timezone']))
+				upgrade_20_form();
+			else
+				upgrade_20_action();
+		} elseif($_POST['version'] == "1.1") {
+			echo "<p>You must first install the calendar into a new location, then import the old events through the Admin section.</p>";
+		} else {
+			echo "<p>Invalid version identifier.</p>";
+		}
+	}
+} elseif(!isset($_POST['my_hostname'])
+		&& !isset($_POST['my_username'])
+		&& !isset($_POST['my_passwd'])
+		&& !isset($_POST['my_prefix'])
+		&& !isset($_POST['my_database'])) {
+	get_server_setup();
+} elseif((isset($_POST['create_user']) || isset($_POST['create_db']))
+		&& !isset($_POST['done_user_db'])) {
+	add_sql_user_db();
+} elseif(!isset($_POST['base'])) {
+	install_base();
+} elseif(!isset($_POST['admin_user'])
+		&& !isset($_POST['admin_pass'])) {
+	get_admin();
+} else {
+	add_calendar();
+}
+
+function get_action() {
+	echo '<input type="submit" name="action" value="install"/><span style="display: inline-block; width:50px;"></span>';
+	echo '<input type="submit" name="action" value="upgrade"/>';
+}
+
+function get_upgrade_version() {
+	global $phpc_config_file;
+
+	if(!file_exists($phpc_config_file)) {
+		echo '<p><span style="font-weight:bold;">ERROR</span>: You must copy over your config.php from the version you are updating. Only versions 2.0 beta4 and later are supported.';
+		echo '<br/><input type="button" onclick="window.location.reload()" value="Reload"/>';
+		return;
+	}
+
+	echo '<h3>Pick the version you are updating from</h3>';
+	echo '<input type="hidden" name="action" value="upgrade"/>';
+	echo '<select name="version">';
+	echo '<option value="1.1">version 1.1</option>';
+	echo '<option value="2.0beta9">version 2.0-beta4 to beta9</option>';
+	echo '<option value="2.0beta10">version 2.0-beta10</option>';
+	echo '<option value="2.0beta11">version 2.0-beta11 to rc1</option>';
+	echo '<option value="2.0rc2">version 2.0-rc2</option>';
+	echo '</select><span style="display: inline-block; width:50px;"></span>';
+	echo '<input type="submit" value="Submit">';
+}
+
+function upgrade_20_form() {
+	echo '<div>Timezone: <select name="timezone">';
+	foreach(timezone_identifiers_list() as $timezone) {
+		echo "<option value=\"$timezone\">$timezone</option>\n";
+	}
+	echo "</select></div>";
+	echo "<input type=\"submit\" value=\"Submit\"/>";
+}
+
+function upgrade_20_action() {
+	global $phpc_config_file, $dbh;
+
+	$query = "ALTER TABLE `" . SQL_PREFIX . "users`\n"
+		."ADD `password_editable` tinyint(1) NOT NULL DEFAULT '1',\n"
+		."ADD `timezone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
+		."ADD `language` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL\n";
+	$dbh->query($query)
+		or db_error($dbh, 'Error adding elements to users table.', $query);
+
+	$query = "ALTER TABLE `" . SQL_PREFIX . "occurrences`\n"
+		."ADD `start_ts` timestamp NULL default NULL,\n"
+		."ADD `end_ts` timestamp NULL default NULL,\n"
+		."CHANGE `startdate` `start_date` date default NULL,\n"
+		."CHANGE `enddate` `end_date` date default NULL,\n"
+		."CHANGE `timetype` `time_type` tinyint(4) NOT NULL default '0'\n";
+
+	$dbh->query($query)
+		or db_error($dbh, 'Error adding elements to occurrences table.',
+				$query);
+
+	echo "<p>Occurrences table update";
+
+	$query = "SELECT `oid`, YEAR(`start_date`) AS `start_year`, "
+		."MONTH(`start_date`) AS `start_month`, "
+		."DAY(`start_date`) AS `start_day`, "
+		."HOUR(`starttime`) AS `start_hour`, "
+		."MINUTE(`starttime`) AS `start_minute`, "
+		."SECOND(`starttime`) AS `start_second`, "
+		."YEAR(`end_date`) AS `end_year`, "
+		."MONTH(`end_date`) AS `end_month`, "
+		."DAY(`end_date`) AS `end_day`, "
+		."HOUR(`endtime`) AS `end_hour`, "
+		."MINUTE(`endtime`) AS `end_minute`, "
+		."SECOND(`endtime`) AS `end_second` "
+		."FROM `" . SQL_PREFIX . "occurrences`\n";
+
+	$occ_result = $dbh->query($query)
+		or db_error($dbh, 'Error selecting old occurrences.', $query);
+
+	while($row = $occ_result->fetch_assoc()) {
+		if($row['start_hour'] !== NULL) {
+			$start_ts = mktime($row['start_hour'],
+					$row['start_minute'],
+					$row['start_second'],
+					$row['start_month'],
+					$row['start_day'],
+					$row['start_year']);
+
+			$end_ts = mktime($row['end_hour'],
+					$row['end_minute'],
+					$row['end_second'],
+					$row['end_month'],
+					$row['end_day'],
+					$row['end_year']);
+
+			$query = "UPDATE `" . SQL_PREFIX . "occurrences`\n"
+				. "SET `start_date` = NULL, "
+				. "`start_ts` = FROM_UNIXTIME($start_ts), "
+				. "`end_ts` = FROM_UNIXTIME($end_ts)\n"
+				. "WHERE `oid` = {$row['oid']}";
+			$dbh->query($query)
+				or db_error($dbh, 'Error updating occurrences.',
+						$query);
+		}
+	}
+
+	echo "<p>Occurrences updated.</p>";
+
+	upgrade_20beta10();
+
+	echo "<p>Update complete.</p>";
+}
+
+function upgrade_20beta10() {
+	create_logins_table();
+	upgrade_20beta11();
+}
+
+function upgrade_20beta11() {
+	add_event_time();
+	add_calendar_config();
+	add_categories_gid();
+	echo "<p>Adding groups table.</p>";
+	create_table("groups",
+			"`gid` int(11) NOT NULL AUTO_INCREMENT,\n"
+			."`cid` int(11),\n"
+			."`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
+			."PRIMARY KEY (`gid`)\n");
+	echo "<p>Adding user_groups table.</p>";
+	create_table("user_groups",
+			"`gid` int(11),\n"
+			."`uid` int(11)\n");
+	create_version_table();
+	upgrade_20rc2();
+}
+
+function upgrade_20rc2()
+{
+	global $dbh;
+
+	$query = "ALTER TABLE `" . SQL_PREFIX . "users`\n"
+		."ADD `gid` int(11)\n";
+	$dbh->query($query)
+		or db_error($dbh, 'Error adding elements to users table.', $query);
+}
+
+function add_categories_gid() {
+	global $dbh;
+
+	echo "<p>Adding gid to categories</p>";
+
+	$query = "ALTER TABLE `" . SQL_PREFIX . "categories`\n"
+		."ADD `gid` int(11) unsigned DEFAULT NULL";
+
+	$dbh->query($query)
+		or db_warning($dbh, 'Error adding gid to categories table.',
+				$query);
+}
+
+function add_event_time() {
+	global $dbh;
+
+	phpc_debug("Adding \"ctime\" and \"mtime\" columns.");
+
+	$query = "ALTER TABLE `" . SQL_PREFIX . "events`\n"
+		."ADD `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP,\n"
+		."ADD `mtime` timestamp NULL default NULL";
+
+	$dbh->query($query)
+		or db_warning($dbh, 'Error adding time elements to events table.',
+				$query);
+}
+
+function add_calendar_config() {
+	global $dbh;
+
+	$query = "ALTER TABLE `" . SQL_PREFIX . "calendars`\n"
+		."ADD `hours_24` tinyint(1) NOT NULL DEFAULT 0,\n"
+		."ADD `date_format` tinyint(1) NOT NULL DEFAULT 0,\n"
+		."ADD `week_start` tinyint(1) NOT NULL DEFAULT 0,\n"
+		."ADD `subject_max` smallint(5) unsigned NOT NULL DEFAULT 50,\n"
+		."ADD `events_max` tinyint(3) unsigned NOT NULL DEFAULT 8,\n"
+		."ADD `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'PHP-Calendar',\n"
+		."ADD `anon_permission` tinyint(1) NOT NULL DEFAULT 1,\n"
+		."ADD `timezone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
+		."ADD `language` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
+		."ADD `theme` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL";
+
+	$dbh->query($query)
+		or db_warning($dbh, 'Error adding time elements to events table.',
+				$query);
+}
+
+function create_version_table() {
+	global $phpc_db_version, $dbh;
+
+	create_table("version",
+			"`version` SMALLINT unsigned NOT NULL DEFAULT '$phpc_db_version'");
+
+	$query = "REPLACE INTO `" . SQL_PREFIX . "version`\n"
+		."SET `version`='$phpc_db_version'";
+
+	$dbh->query($query)
+		or db_error($dbh, 'Error creating version row.', $query);
+}
+
+function check_config()
+{
+	global $phpc_config_file;
+
+	if(is_writable($phpc_config_file))
+		return true;
+
+	// Check if we can create the file
+	if($file = @fopen($phpc_config_file, 'a')) {
+		fclose($file);
+		return true;
+	}
+	return false;
+}
+
+function report_config()
+{
+	echo '<p>Your configuration file could not be written to. This file '
+		.'probably does not yet exist. If that is the case, you need to '
+		.'create it. You need to make sure this script can write to '
+		.'it. We suggest logging in with a shell and typing:</p>
+		<pre>
+		touch config.php
+		chmod 666 config.php
+		</pre>
+		<p>or if you only have ftp access, upload a blank file named '
+		.'config.php to your php-calendar directory then use the chmod '
+		.'command to change the permissions of config.php to 666.</p>
+		<p><input type="submit" value="Retry"/></p>';
+}
+
+function get_server_setup()
+{
+	if(!check_config())
+		return report_config();
+
+	echo '
+		<h3>Step 1: Database</h3>
+		<table class="display">
+		<tr>
+		<td><label for="my_hostname">SQL Server Hostname:</label></td>
+		<td><input type="text" name="my_hostname" id="my_hostname" value="localhost"></td>
+		</tr>
+		<tr>
+		<td><label for="my_database">SQL Database name:</label></td>
+		<td><input type="text" name="my_database" id="my_database" value="calendar"></td>
+		</tr>
+		<tr>
+		<td><label for="my_prefix">SQL Table prefix:</label></td>
+		<td><input type="text" name="my_prefix" id="my_prefix" value="phpc_"></td>
+		</tr>
+		<tr>
+		<td><label for="my_username">SQL Username:</label></td>
+		<td><input type="text" name="my_username" id="my_username" value="calendar"></td>
+		</tr>
+		<tr>
+		<td><label for="my_passwd">SQL Password:</label></td>
+		<td><input type="password" name="my_passwd" id="my_passwd"></td>
+		</tr>
+		<tr>
+		<td colspan="2">
+		  <input type="checkbox" name="create_db" id="create_db" value="yes"/>
+		  <label for="create_db">Create the database (don\'t check this if it already exists)</label>
+		</td>
+		</tr>
+		<tr>
+		<td colspan="2">
+		  <input type="checkbox" name="drop_tables" id="drop_tables" value="yes">
+		  <label for="drop_tables">Drop tables before creating them</label>
+		</td>
+		</tr>
+		<tr><td colspan="2">
+		<span style="font-weight:bold;">Optional: user creation on database</span>
+		</td></tr>
+		<tr><td colspan="2">
+		If the credentials supplied above are new, you have to be the database administrator.
+		</td></tr>
+		<tr><td colspan="2">
+		 <input type="checkbox" name="create_user" id="create_user" value="yes">
+		 <label for="create_user">Check this if you want to do it and provide admin user and password.</label>
+		</td></tr>
+		<tr>
+		<td><label for="my_adminname">SQL Admin name:</label></td>
+		<td><input type="text" name="my_adminname" id="my_adminname"></td>
+		</tr>
+		<tr>
+		<td><label for="my_adminpasswd">SQL Admin Password:</label></td>
+		<td><input type="password" name="my_adminpasswd" id="my_adminpasswd"></td>
+		</tr>
+		<tr>
+		<td colspan="2">
+		  <input name="action" type="submit" value="Install">
+		</td>
+		</tr>
+		</table>';
+}
+
+function add_sql_user_db()
+{
+	global $dbh;
+
+	$my_hostname = $_POST['my_hostname'];
+	$my_username = $_POST['my_username'];
+	$my_passwd = $_POST['my_passwd'];
+	$my_prefix = $_POST['my_prefix'];
+	$my_database = $_POST['my_database'];
+	$my_adminname = $_POST['my_adminname'];
+	$my_adminpasswd = $_POST['my_adminpasswd'];
+
+	$create_user = isset($_POST['create_user'])
+		&& $_POST['create_user'] == 'yes';
+	$create_db = isset($_POST['create_db']) && $_POST['create_db'] == 'yes';
+
+	// Make the database connection.
+	if($create_user) {
+		$dbh = connect_db($my_hostname, $my_adminname, $my_adminpasswd);
+	} else {
+		$dbh = connect_db($my_hostname, $my_username, $my_passwd);
+	}
+
+	$string = "<h3>Step 2: Database Setup</h3>";
+
+	if($create_db) {
+		phpc_debug("Creating database \"$my_database\".");
+
+		$query = "CREATE DATABASE $my_database";
+
+		$dbh->query($query)
+			or db_error($dbh, 'error creating db', $query);
+
+		$string .= "<p>Successfully created database</p>";
+	}
+
+	if($create_user) {
+		phpc_debug("Creating user \"$my_username\".");
+
+		$query = "GRANT ALL ON accounts.* TO $my_username@$my_hostname identified by '$my_passwd'";
+		$dbh->query($query)
+			or db_error($dbh, 'Could not grant:', $query);
+		$query = "GRANT ALL ON $my_database.*\n"
+			."TO $my_username IDENTIFIED BY '$my_passwd'";
+		$dbh->query($query)
+			or db_error($dbh, 'Could not grant:', $query);
+
+		$query = "FLUSH PRIVILEGES";
+		$dbh->query($query)
+			or db_error($dbh, "Could not flush privileges", $query);
+
+		$string .= "<p>Successfully added user</p>";
+	}
+
+	echo "$string\n"
+		."<div><input type=\"submit\" name=\"done_user_db\" value=\"continue\"/>"
+		."</div>\n";
+
+}
+
+
+function install_base()
+{
+	global $phpc_config_file, $dbh;
+
+	$sql_type = "mysqli";
+	$sql_hostname = $_POST['my_hostname'];
+	$sql_username = $_POST['my_username'];
+	$sql_passwd = $_POST['my_passwd'];
+	$sql_prefix = $_POST['my_prefix'];
+	$sql_database = $_POST['my_database'];
+
+	$fp = fopen($phpc_config_file, 'w')
+		or soft_error('Couldn\'t open config file.');
+
+	// Make the database connection.
+	$dbh = connect_db($sql_hostname, $sql_username, $sql_passwd, $sql_database);
+
+	phpc_debug("Writing config file \"$phpc_config_file\".");
+
+	$defines = "define('SQL_HOST',     '$sql_hostname');\n"
+        ."define('SQL_USER',     '$sql_username');\n"
+		."define('SQL_PASSWD',   '$sql_passwd');\n"
+		."define('SQL_DATABASE', '$sql_database');\n"
+		."define('SQL_PREFIX',   '$sql_prefix');\n"
+        ."define('SQL_TYPE',     '$sql_type');\n";
+
+    fwrite($fp, "<"."?php\n$defines?".">\n") // Break this up to fix syntax HL in vim
+		or soft_error("Could not write to file");
+	fclose($fp);
+
+	eval($defines);
+
+	create_tables();
+
+	echo "<p>Config file created at \"". realpath($phpc_config_file) ."\"</p>"
+		."<p>Calendars database created</p>\n"
+		."<div><input type=\"submit\" name=\"base\" value=\"continue\">"
+		."</div>\n";
+}
+
+function create_tables()
+{
+	global $dbh;
+
+	create_table("events",
+		"`eid` int(11) unsigned NOT NULL auto_increment,\n"
+		."`cid` int(11) unsigned NOT NULL,\n"
+		."`owner` int(11) unsigned NOT NULL default 0,\n"
+		."`subject` varchar(255) collate utf8_unicode_ci NOT NULL,\n"
+		."`description` text collate utf8_unicode_ci NOT NULL,\n"
+		."`readonly` tinyint(1) NOT NULL default 0,\n"
+		."`catid` int(11) unsigned default NULL,\n"
+		."`ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\n"
+		."`mtime` timestamp NULL DEFAULT NULL,\n"
+		."PRIMARY KEY (`eid`)\n",
+		"AUTO_INCREMENT=1");
+
+	create_table("occurrences",
+		"`oid` int(11) unsigned NOT NULL auto_increment,\n"
+		."`eid` int(11) unsigned NOT NULL,\n"
+		."`start_date` date default NULL,\n"
+		."`end_date` date default NULL,\n"
+		."`start_ts` timestamp NULL default NULL,\n"
+		."`end_ts` timestamp NULL default NULL,\n"
+		."`time_type` tinyint(4) NOT NULL default '0',\n"
+		."PRIMARY KEY  (`oid`),\n"
+		."KEY `eid` (`eid`)\n",
+		"AUTO_INCREMENT=1");
+
+	create_table("users",
+		"`uid` int(11) unsigned NOT NULL auto_increment,\n"
+		."`username` varchar(32) collate utf8_unicode_ci NOT NULL,\n"
+		."`password` varchar(32) collate utf8_unicode_ci NOT NULL default '',\n"
+		."`admin` tinyint(4) NOT NULL DEFAULT '0',\n"
+		."`password_editable` tinyint(1) NOT NULL DEFAULT '1',\n"
+		."`timezone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
+		."`language` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
+		."`gid` int(11),\n"
+		."PRIMARY KEY (`uid`),\n"
+		."UNIQUE KEY `username` (`username`)\n",
+		"AUTO_INCREMENT=1");
+
+	// added in 2.0-rc3
+	create_table("groups",
+		"`gid` int(11) NOT NULL AUTO_INCREMENT,\n"
+		."`cid` int(11),\n"
+		."`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
+		."PRIMARY KEY (`gid`)\n");
+
+	// added in 2.0-rc3
+	create_table("user_groups",
+		"`gid` int(11),\n"
+		."`uid` int(11)\n");
+
+	create_logins_table();
+
+	create_table("permissions",
+		"`cid` int(11) unsigned NOT NULL,\n"
+		."`uid` int(11) unsigned NOT NULL,\n"
+		."`read` tinyint(1) NOT NULL,\n"
+		."`write` tinyint(1) NOT NULL,\n"
+		."`readonly` tinyint(1) NOT NULL,\n"
+		."`modify` tinyint(1) NOT NULL,\n"
+		."`admin` tinyint(1) NOT NULL,\n"
+		."UNIQUE KEY `cid` (`cid`,`uid`)\n");
+
+	create_table("calendars",
+		"`cid` int(11) unsigned NOT NULL auto_increment,\n"
+		."`hours_24` tinyint(1) NOT NULL DEFAULT 0,\n"
+		."`date_format` tinyint(1) NOT NULL DEFAULT 0,\n"
+		."`week_start` tinyint(1) NOT NULL DEFAULT 0,\n"
+		."`subject_max` smallint(5) unsigned NOT NULL DEFAULT 50,\n"
+		."`events_max` tinyint(4) unsigned NOT NULL DEFAULT 8,\n"
+		."`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'PHP-Calendar',\n"
+		."`anon_permission` tinyint(1) NOT NULL DEFAULT 1,\n"
+		."`timezone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
+		."`language` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
+		."`theme` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
+		."PRIMARY KEY  (`cid`)\n",
+		"AUTO_INCREMENT=1");
+
+	create_table("categories",
+		"`catid` int(11) unsigned NOT NULL auto_increment,\n"
+		."`cid` int(11) unsigned NOT NULL,\n"
+		."`gid` int(11) unsigned DEFAULT NULL,\n"
+		."`name` varchar(255) collate utf8_unicode_ci NOT NULL,\n"
+		."`text_color` varchar(255) collate utf8_unicode_ci default NULL,\n"
+		."`bg_color` varchar(255) collate utf8_unicode_ci default NULL,\n"
+		."PRIMARY KEY  (`catid`),\n"
+		."KEY `cid` (`cid`)\n",
+		"AUTO_INCREMENT=1");
+
+	create_version_table();
+}
+
+function get_admin()
+{
+	echo '<h3>Step 4: Administration account</h3>';
+	echo "<table>\n"
+		."<tr><td colspan=\"2\">Now you must create the calendar administrative "
+		."account.</td></tr>\n"
+		."<tr><td>\n"
+		."Admin name:\n"
+		."</td><td>\n"
+		."<input type=\"text\" name=\"admin_user\" />\n"
+		."</td></tr><tr><td>\n"
+		."Admin password:"
+		."</td><td>\n"
+		."<input type=\"password\" name=\"admin_pass\" />\n"
+		."</td></tr><tr><td colspan=\"2\">"
+		."<input type=\"submit\" value=\"Create Admin Account\" />\n"
+		."</td></tr></table>\n";
+
+}
+
+function add_calendar()
+{
+	global $dbh, $phpc_config_file;
+
+	$calendar_title = 'PHP-Calendar';
+
+	// Make the database connection.
+	$dbh = connect_db(SQL_HOST, SQL_USER, SQL_PASSWD, SQL_DATABASE);
+
+	$query = "INSERT INTO ".SQL_PREFIX."calendars\n"
+		."(`cid`) VALUE (1)";
+
+	$dbh->query($query)
+		or db_error($dbh, 'Error reading options', $query);
+
+	$cid = $dbh->insert_id;
+
+	echo "<h3>Final Step</h3>\n";
+
+	echo "<p>Saved default configuration</p>\n";
+
+	$passwd = md5($_POST['admin_pass']);
+
+	$query = "INSERT INTO `" . SQL_PREFIX . "users`\n"
+		."(`username`, `password`, `admin`) VALUES\n"
+		."('$_POST[admin_user]', '$passwd', 1)";
+
+	$dbh->query($query)
+		or db_error($dbh, 'Error adding admin.', $query);
+
+	echo "<p>Admin account created.</p>";
+	echo "<p>Now you should delete install.php file from root directory (for security reasons).</p>";
+	echo "<p>You should also change the permissions on config.php so only your webserver can read it.</p>";
+	echo "<p><a href=\"index.php\">View calendar</a></p>";
+}
+
+echo '</form></body></html>';
+
+// called when there is an error involving the DB
+function db_error($dbh, $str, $query = "")
+{
+	$string = "$str<br />" . $dbh->error;
+
+	if($query != "")
+		$string .= "<br />SQL query: $query";
+
+	soft_error($string);
+}
+
+// called when there is an error involving the DB that we should keep trying
+//   to procede after
+function db_warning($dbh, $str, $query = "")
+{
+	$string = "$str<br />" . $dbh->error;
+
+	if($query != "")
+		$string .= "<br />SQL query: $query";
+
+	echo $string;
+}
+
+function connect_db($hostname, $username, $passwd, $database = false)
+{
+
+	phpc_debug("Connecting to SQL server $hostname with user $username.");
+
+	$dbh = new mysqli($hostname, $username, $passwd);
+
+	if(mysqli_connect_errno()) {
+		soft_error("Database connect failed (" . mysqli_connect_errno()
+				. "): " . mysqli_connect_error());
+	}
+
+	if($database) {
+		phpc_debug("Selecting database $database");
+		$dbh->select_db($database)
+			or soft_error("Could not select database \"$database\".");
+	}
+	$dbh->query("SET NAMES 'utf8'");
+
+	return $dbh;
+}
+
+// called when some error happens
+function soft_error($str)
+{
+	echo "<h1>Software Error</h1>\n",
+	     "<h2>Message:</h2>\n",
+	     "<pre>$str</pre>\n",
+	     "<h2>Backtrace</h2>\n",
+	     "<ol>\n";
+	foreach(debug_backtrace() as $bt) {
+		echo "<li>$bt[file]:$bt[line] - $bt[function]</li>\n";
+	}
+	echo "</ol>\n";
+	exit;
+}
+
+function create_logins_table() {
+	global $dbh;
+
+	echo '<h3>Step 3: Database Created</h3>';
+	create_table("logins",
+		"`uid` int(11) unsigned NOT NULL,\n"
+		."`series` char(43) collate utf8_unicode_ci NOT NULL,\n"
+		."`token` char(43) collate utf8_unicode_ci NOT NULL,\n"
+		."`atime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\n"
+		."PRIMARY KEY  (`uid`, `series`)\n");
+
+	echo "<p>Logins table updated.</p>";
+}
+
+function create_table($suffix, $columns, $table_args = "") {
+	global $drop_tables, $dbh;
+
+	$table_name = SQL_PREFIX . $suffix;
+
+	phpc_debug("Creating table \"$table_name\".");
+
+	if($drop_tables) {
+		$query = "DROP TABLE IF EXISTS `$table_name`";
+
+		$dbh->query($query)
+			or db_error($dbh, "Error dropping table `$table_name`.",
+					$query);
+	}
+
+	$query = "CREATE TABLE `$table_name` (\n"
+		.$columns
+		.") ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci $table_args;\n";
+
+	$dbh->query($query)
+		or db_error($dbh, "Error creating table `$table_name`.",
+				$query);
+}
+
+function phpc_debug($msg) {
+	echo "<p>$msg</p>";
+}
+?>
diff --git a/license.txt b/license.txt
new file mode 100644
index 0000000..18627bf
--- /dev/null
+++ b/license.txt
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2017 Sean Proctor
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/locale/ar/LC_MESSAGES/messages.po b/locale/ar/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..460abb7
--- /dev/null
+++ b/locale/ar/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Arabic (http://www.transifex.com/sproctor/php-calendar/language/ar/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ar\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr ""
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr ""
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr ""
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr ""
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr ""
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr ""
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr ""
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr ""
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr ""
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr ""
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr ""
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr ""
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr ""
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr ""
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr ""
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr ""
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr ""
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr ""
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr ""
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr ""
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr ""
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr ""
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr ""
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr ""
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr ""
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr ""
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr ""
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr ""
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr ""
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr ""
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr ""
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr ""
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr ""
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr ""
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr ""
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr ""
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr ""
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr ""
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr ""
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr ""
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr ""
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr ""
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr ""
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr ""
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr ""
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr ""
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr ""
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr ""
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr ""
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr ""
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr ""
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr ""
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr ""
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr ""
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr ""
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr ""
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr ""
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr ""
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr ""
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr ""
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr ""
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr ""
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr ""
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr ""
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr ""
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr ""
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr ""
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr ""
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr ""
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr ""
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr ""
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr ""
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr ""
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr ""
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr ""
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr ""
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr ""
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr ""
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr ""
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr ""
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr ""
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr ""
+
+#: includes/globals.php:24
+msgid "February"
+msgstr ""
+
+#: includes/globals.php:25
+msgid "March"
+msgstr ""
+
+#: includes/globals.php:26
+msgid "April"
+msgstr ""
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr ""
+
+#: includes/globals.php:28
+msgid "June"
+msgstr ""
+
+#: includes/globals.php:29
+msgid "July"
+msgstr ""
+
+#: includes/globals.php:30
+msgid "August"
+msgstr ""
+
+#: includes/globals.php:31
+msgid "September"
+msgstr ""
+
+#: includes/globals.php:32
+msgid "October"
+msgstr ""
+
+#: includes/globals.php:33
+msgid "November"
+msgstr ""
+
+#: includes/globals.php:34
+msgid "December"
+msgstr ""
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr ""
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr ""
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr ""
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr ""
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr ""
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr ""
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr ""
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr ""
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr ""
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr ""
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr ""
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr ""
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr ""
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr ""
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr ""
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr ""
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr ""
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr ""
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr ""
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr ""
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr ""
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr ""
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr ""
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr ""
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr ""
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr ""
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr ""
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr ""
+
+#: includes/search.php:118
+msgid "Order"
+msgstr ""
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr ""
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr ""
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr ""
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr ""
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr ""
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr ""
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/bg/LC_MESSAGES/index.html b/locale/bg/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/bg/LC_MESSAGES/messages.po b/locale/bg/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..c02cb75
--- /dev/null
+++ b/locale/bg/LC_MESSAGES/messages.po
@@ -0,0 +1,1465 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Hristo Delchev <hristomail@gmail.com>, 2010
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Bulgarian (http://www.transifex.com/sproctor/php-calendar/language/bg/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: bg\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Трябва да си влезнал като администратор."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Изтрий"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Създай Календар"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Календари"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Потребител"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Създай Потребител"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Потребители"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Опции"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Изпрати"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Четене"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Запис"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Само за четене"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Редактирай"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Администратор"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Потребителски Права"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Потребителско Име"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Може да създава само за четене"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Без Име"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Няма"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Създай Категория"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Категории"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Име"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Цвят на текста"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Цвят на фона"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Правата отказани"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr " не е настроено"
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Опциите обновени"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Изход"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Вход"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Добави Събитие"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Търси"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Месечен Изглед"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Виж датата"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Администриране"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Първи ден от седмицата"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Неделя"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Понеделник"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Събота"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24-часово време"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Заглавие на календара"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Максимална брой символи в темата"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Неоторизиран Достъп"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Не може нито да чете, нито да създава събития"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Може да чете, но не може да записва събития"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Може да създава, но не може да променя събития"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Може да създава и променя събития"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Нямате необходимите права за да направите това"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Грешка"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Backtrace"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Невалидно действие"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Типа конфигурация не се поддържа"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Няма избран календар"
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Потвръдете изтриването"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Потвърди"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Отказ"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Календара е създаден"
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Няма избрана категория"
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Нямате права за да изтриете категорията"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Категорията Изтрита"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Не може да изтрия категорията"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Форма за Категории"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Нямате права за да добавите категории към всички календари"
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Нямате права за да добавите категории към този календар"
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Категорията променена: "
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Категорията създадена: "
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Грешка при създаването на категория."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Заглавие"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Време"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Описание"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Изтрий Избраното"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Няма събития за този ден."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Невалидни аргументи"
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Нямате права да прочетете това събитие"
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Категория"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Кога"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Виж Всички Събития"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "в"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Няма избрани събития."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Форма за Събития"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Тема"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "От"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "До"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Времеви тип"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Нормален"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Цял Ден"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Да бъде обявено"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Повторения"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Никога"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Дневно"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Седмично"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Месечно"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Годишно"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Всеки"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Колко дни да се повтори?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Докато"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Колко седмици да се повтори?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Колко месеци да се повтори?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Колко години да се повтори?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr ""
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Неразпознат Времеви Тип"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Нямате права да записвате в този календар"
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Задължителното поле \"всеки ден\" не е попълнено."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "полето \"всеки ден\" трябва да е по-голямо от 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Задължителното поле \"всяка седмица\" не е попълнено."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "полето \"всяка седмица\" трябва да е по-голямо от 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Задължителното поле \"всеки месец\" не е попълнено."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "полето \"всеки месец\" трябва да е по-голямо от 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Задължителното поле \"всяка година\" не е попълнено."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Невалиден тип на събитието"
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Грешка при създаването на събитието"
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Не може да се добави елемент към формата, който не е към нея"
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Януари"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Февруари"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Март"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Април"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Май"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Юни"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Юли"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Август"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Септември"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Октомври"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Ноември"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Декември"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Вторник"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Сряда"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Четвъртък"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Петък"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Яну"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Фев"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Мар"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Апр"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Юни"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Юли"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Авг"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Сеп"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Окт"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Ное"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Дек"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Започва на дата"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Възходящо"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Логнат."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Невалидно потребителско име или парола"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Бисквитките в браузъра ви трябва да са разрешени за да можете да влезнете."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Парола"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Излизане..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Трябва да въведете парола"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "посочените от вас пароли не съвпадат"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Без заглавие)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Грешка при get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Греша при get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Събитието не съществува"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Грешка при get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Грешка при get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Грешка при get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Грешка при get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Грешка при изстриването на събитие."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Грешка при изстриването на календар"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Грешка при изстриването на категория"
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Грешка при изстриването на "
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Не може да вземе потребителските права"
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Не може да вземе календарите"
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Не може да вземе потребителя"
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Грешка при вземането на потребителя"
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Грешка при създаването на потребител."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Грешка при вземането на опциите"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Грешка при създаването на опциите"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Грешка при създаването на събитие"
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Грешка при промяната на събитие"
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Грешка при създаването на категория"
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Грешка при промяната на категория"
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Грешка при търсене"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Грешка при обновяването на потребителските права"
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL заявка"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "анонимен"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "непознат"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Без заглавие)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "ДСО"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "на"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "невалидна опция за сортиране"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "невалидна опция за подредба"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "няма събития които да отговарят на търсения критерий"
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Резултати от търсенето"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Дата Час"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Фраза"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Сортирай по"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Подредба"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Невалидна година"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Потвърди Парола"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Направи Администратор"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Трябва да въведете потребителско име"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Потребителя вече съществува"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "няма избран потребител"
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "няма потребители"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "няма промени"
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/bg/index.html b/locale/bg/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/ca/LC_MESSAGES/index.html b/locale/ca/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/ca/LC_MESSAGES/messages.po b/locale/ca/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..13c3688
--- /dev/null
+++ b/locale/ca/LC_MESSAGES/messages.po
@@ -0,0 +1,1465 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Arantxa, Marcelo H.Fortino <servicios@estrategiasgnulinux.com>, 2011
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Catalan (http://www.transifex.com/sproctor/php-calendar/language/ca/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr ""
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Borrar"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr ""
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr ""
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Nom usuari"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr ""
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr ""
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Opcions"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Enviar"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr ""
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr ""
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr ""
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Modificar"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr ""
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr ""
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr ""
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr ""
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr ""
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr ""
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr ""
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr ""
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr ""
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Accés denegat"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr ""
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Opcions actualitzades"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Desconnectar"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Connectar"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Afegir esdeveniment"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Buscar"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr ""
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Veure data"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr ""
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr ""
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Diumenge"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Dilluns"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Dissabte"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr ""
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Títol del calendari"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr ""
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr ""
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr ""
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr ""
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr ""
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr ""
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr ""
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr ""
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Acció incorrecta"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr ""
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr ""
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr ""
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr ""
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr ""
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr ""
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr ""
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr ""
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr ""
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr ""
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Títol"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Hora"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Descripció"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Borrar seleccionat"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "No hi ha esdeveniments en aquest dia"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr ""
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr ""
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr ""
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr ""
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr ""
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr ""
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Assumpte"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "De"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Per a"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr ""
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normal"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Tot el dia"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr ""
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr ""
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Setmanalment"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Mensualment"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr ""
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr ""
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Afegir esdeveniment"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr ""
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Gener"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Febrer"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Març"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Abril"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Maig"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Juny"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Juliol"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Agost"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Setembre"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Octubre"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Novembre"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Desembre"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Dimarts"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Dimecres"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Dijous"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Divendres"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Gen"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mar"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Abr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Jun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Jul"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Ago"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Set"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Oct"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Des"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Data d'inici"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Ascendent"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr ""
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Ho sentim, connexió incorrecte"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Contrasenya"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr ""
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr ""
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr ""
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr ""
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Resultats de la cerca"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Data i hora"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Frase"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Ordenar per"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Ordre"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr ""
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr ""
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr ""
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr ""
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr ""
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr ""
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/ca/index.html b/locale/ca/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/cs_CZ/LC_MESSAGES/messages.po b/locale/cs_CZ/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..e08292e
--- /dev/null
+++ b/locale/cs_CZ/LC_MESSAGES/messages.po
@@ -0,0 +1,1465 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Tomáš Maněna <tomas@manena.cz>, 2013,2015
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2017-09-23 18:58+0000\n"
+"Last-Translator: Tomáš Maněna <tomas@manena.cz>\n"
+"Language-Team: Czech (Czech Republic) (http://www.transifex.com/sproctor/php-calendar/language/cs_CZ/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cs_CZ\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Musíte být přihlášen jako admin."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Kalendáře"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Uživatelé"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Import"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Přeložit"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Verze"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Kalendář"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Akce"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Upravit"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Smazat"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Vytvořit kalendář"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Seznam kalendářů"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Uživatelské jméno"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Skupiny"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Upravit skupiny"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Vytvořit uživatele"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Seznam uživatelů"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Importovat z"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL jméno hosta"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL název databáze"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL číslo portu"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Nechte prázdné pro přednastavené"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL uživatelské jméno"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL heslo"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar prefix tabulek"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Importovat kalendář"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "Tento skript potřebuje práva ke čtení k adresáři s vaším kalendářem, aby mohl zapisovat soubory s překlady. Případně můžete spustit translate.php z příkazového řádku pomocí msgfmt nebo jiného gettext nástroje, který umí generovat .mo soubory z .po souborů."
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "Generovat překlady"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "Konfigurace kalendáře"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "Kategorie"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Volby"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Odeslat"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Čtení"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Zápis"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Jen pro čtení"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Upravit"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Admin"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Uživatelská práva"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Uživatelské jméno"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Může vytvořit jen pro čtení"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Bez jména"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Žádný"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Vytvořit kategorii"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Kategorie kalendáře"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Jméno"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Barva písma"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Barva pozadí"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Viditelné pro skupinu uživatele"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Akce"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Vytvořit skupinu"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Skupiny kalendáře"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Přístup odepřen"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "nebyl nastaven."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Aktualizované nastavení"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Jazyk"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Časové pásmo"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Vítejte"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Nastavení"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Odhlásit se"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Přihlásit se"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Přidat událost"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Hledat"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Ukázat měsíc"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Ukázat datum"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Admin kalendáře"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Přednastavené"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Začátek týdne"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Neděle"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Pondělí"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Sobota"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24 hodinový čas"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Nadpis kalendáře"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Maximální délka předmětu"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Zobrazit maximálně událostí denně"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Veřejná práva"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Nelze zobrazit ani zapsat události"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Může zobrazit, nemůže vytvořit události"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Může vytvořit, nemůže upravit události"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Může vytvářet a upravovat události"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Přednastavené časové pásmo"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Přednastavení jazyk"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Formát data"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Téma"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Měsíc Den Rok"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Rok Měsíc Den"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Den Měsíc Rok"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Nemáte oprávnění k této akci:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Chyba"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Sledovat zpět"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Neplatná akce"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Bezpečnostní tokeny se neshodují. Možný pokus o falzyfikát."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Nepodporovaný formát konfigurace"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "Povinné pole \"%s\" nebylo vyplněno."
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "Špatný formát \"%s\" času: \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Nerozpoznaná perioda:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "Špatný formát \"%s\" času: \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "Špatný date_format (formát času)."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Nebyl vybrán kalendář."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Potvrďte smazání:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Potvrdit"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Zamítnout"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Nemáte oprávnění k odstranění kalendáře"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Odstranit kalendář"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Nepodařilo se odstranit kalendář"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Kalendář vytvořen."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Nebyla vybrána kategorie"
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Nemáte práva k smazání kategorie:"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Odstranit kategorii:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Nepodařilo se odstranit kategorii:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Formulář kategorie"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Viditelné skupinám"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "Odeslat kategorii"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Nebyla určena barva."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Neplatná barva."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Nemáte právo přidat kategorii do všech kalendářů."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Nemáte práva k přidání kategorií do tohoto kalendáře."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Nemáte oprávnění ke změně této kategorie."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Upravené kategorie:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Vytvořené kategorie:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Chyba při vytváření kategorie."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Nadpis"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Čas"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Popis"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Vymazat vybrané"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Žádné události pro tento den."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Neplatné parametry."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Nemáte práva pro čtení této události."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "od"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Kategorie"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Kdy"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Vytvořeno:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Naposledy upraveno:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Výskyt úpravy"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Výskyt odstranění"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Předchozí výskyt na"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Další výskyt"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Ukázat všechny výskyty"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Přidat výskyt"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "v"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Odstranit"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Výskyty"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "od"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "T"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Zobrazit doplňující události"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "pokračující"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "Špatné datum."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Nevybrána žádná událost."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Odstranit událost"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Odstraněné události"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Nelze odstranit událost"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Nelze odstranit události"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Nemáte oprávnění k odstranění události"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Nemáte oprávnění k odstranění událostí"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Událost od"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Předmět"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Změnit datum a čas události"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Od"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Do"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Typ času"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normální"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Celý den"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "K oznámení"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Opakování"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Nikdy"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Denně"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Týdně"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Měsíčně"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Ročně"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Každý"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Opakovat kolik dní?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Až do"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Opakovat kolik týdnů?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Opakovat kolik měsíců?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Opakovat kolik let?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Založit událost"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Nerozpoznaná formát času."
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "Událost nemůže mít konec před svým začátkem."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Nemáte oprávnění k zápisu do tohoto kalendáře."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Požadované pole \"každý den\" není nastaveno."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "každý den musí být větší než 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Požadované pole \"každý týden\" není vyplněno."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "každý týden musí být větší než 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Požadované pole \"každý měsíc\" není vyplněno."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "každý měsíc musí být větší než 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Požadované pole \"každý rok\" není vyplněno."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Neplatný typ události."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Upravená událost:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Vytvořená událost:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Chyba při ukládání události."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "požadované"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Nelze přidat neformulářový element do formuláře."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Datum"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Leden"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Únor"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Březen"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Duben"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Květen"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Červen"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Červenec"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Srpen"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Září"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Říjen"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Listopad"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Prosinec"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Úterý"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Středa"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Čtvrtek"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Pátek"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Leden"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Únor"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Březen"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Duben"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Červen"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Červenec"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Srpen"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Září"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Říjen"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Listopad"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Prosinec"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Počáteční datum"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Vzestupně"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Sestupně"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Nevybrána žádná skupina."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Nemáte práva k smazání skupiny:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Odstraněná skupiny:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Nepodařilo se odstranit skupinu:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Formulář skupiny"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "Odeslat skupinu"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Nemáte oprávnění k odstranění globální skupiny."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Nemáte oprávnění pro přidání skupiny do tohoto kalendáře."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Nemáte oprávnění ke změně této skupiny."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Upravená skupina:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Vytvořená skupina:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Chyba při vytváření skupiny."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Musí být admin"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Chyba při výběru událostí pro import"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Vytvořeno %s událostí s %s výskyty"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Přihlášený."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Neplatné přihlášení"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Musíte mít povolené cookies pro přihlášení."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Heslo"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Odhlašuji..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Výskyt od"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Odeslat výskyt"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Nelze vytvořit výskyt."
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID není nastaveno."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Upravené výskyty:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Vytvořené výskyty:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Chyba při ukládání výskytu."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Nevybrány žádné výskyty."
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Odstraněný výskyt"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Odstraněné výskyty"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Nepodařilo se odstranit výskyt"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Nepodařilo se odstranit výskyty"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Nemáte oprávnění ke smazání výskytu."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Nemáte oprávnění ke smazání výskytů."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Musíte být přihlášený."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Nemáte oprávnění ke změně hesla vaší skupiny."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Musíte zadat staré heslo."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Zadané heslo neodpovídá starému heslu."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Musíte zadat heslo"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Zadaná hesla se neshodují"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Heslo aktualizováno."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Bez nadpisu)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Událost neexistuje"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Událost neexistuje s oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Kategorie neexistuje s catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Skupina neexistuje s gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Chyba v "
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Chyba při odstraňování události."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Chyba při odstraňování výskytu."
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Chyba při odstraňování kalendáře"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Chyba při odstraňování kategorie."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Chyba při odstraňování skupiny."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Chyba při odstraňování"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Nelze přečíst práva."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Nelze získat kalendáře."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Nelze získat uživatele."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Chyba při získávání uživatele."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Chyba při vytváření uživatele."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Chyba při čtení voleb"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Chyba při vytváření voleb"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Chyba při aktualizaci hesla."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Chyba při aktualizaci časové zóny."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Chyba při aktualizaci jazyku."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "Chyba při přiřazování skupiny k uživateli."
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "Chyba při odebírání skupiny od uživatele."
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Chyba při vytváření události."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Chyba při vytváření výskytu."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Chyba při úpravě výskytu."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Chyba při úpravě události."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Chyba při vytváření kategorie."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Chyba při vytváření skupiny."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Chyba při úpravě kategorie."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Chyba při úpravě skupiny."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Chyba během vyhledávání"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Chyba při aktualizaci práv uživatele."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Chyba při získávání tokenu přihlášení."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Chyba pri přidávání tokenu pro přihlášení."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Chyba při aktualizaci přihlašovacího tokenu."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Chyba při odstraňování přihlašovacího tokenu."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Chyba při čistění přihlašovacích tokenů."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL dotaz"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonym"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "neznámý"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Bez předmětu)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB vrátila neplatné datum."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "K oznámení"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "do"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Neplatné parametr pro řazení"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Neplatný parametr pro pořadí"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Žádné události neodpovídají kritériím vyhledávání."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Výsledky vyhledávání"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Datum Čas"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Fráze"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Řadit podle"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Pořadí"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Změnit heslo"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Staré heslo"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Nové heslo"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Potvrdit nové heslo"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Nastavení byla aktualizována."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Možný pokus o nabourání se do vašeho účtu."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Měsíc je mimo limit."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Neplatný rok"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Přeloženo \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Potvrdit heslo"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Udělat adminem"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Musíte zadat přihlašovací jméno"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Uživatel již existuje."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "Přidán uživatel."
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Musíte být admin pro mazání uživatelů."
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Nevybrán žádný uživatel."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "Upravit uživatelské skupiny"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "Skupiny aktualizovány."
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Žádní uživatelé"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Nedojde k žádným změnám."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Aktualizovaný/í uživatel(é):"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "pokračovat"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Softwarová chyba"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Zpráva:"
diff --git a/locale/da/LC_MESSAGES/index.html b/locale/da/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/da/LC_MESSAGES/messages.po b/locale/da/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..aa5afa2
--- /dev/null
+++ b/locale/da/LC_MESSAGES/messages.po
@@ -0,0 +1,1466 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# lindquist <tomas.l.olsen@gmail.com>, 2014
+# lindquist <tomas.l.olsen@gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Danish (http://www.transifex.com/sproctor/php-calendar/language/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Du skal være logget ind som admin."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Kalendere"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Brugere"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Importer"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Oversæt"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Version"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Kalender"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Handling"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Rediger"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Slet"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Opret Kalender"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Kalenderliste"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Brugernavn"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Grupper"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Rediger Grupper"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Opret Bruger"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Brugerliste"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Importer Formular"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL Værtsnavn"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL Databasenavn"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL Portnummer"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Efterlad tom for standard"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL Brugernavn"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL Kodeord"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar Tabel Præfix"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Importer Kalender"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "Dette script har brug for skriveadgang til din kalendermappe for at kunne skrive oversættelsesfilerne. Alternativt kan du køre translate.php fra kommandlinjen eller bruger msgfmt eller et andet gettext værktøj der kan generere .mo filer fra .po filer."
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "Generer Oversættelser"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "Kalender Konfiguration"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "Kategorier"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Indstillinger"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Gem"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "L&aelig;s"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Skriv"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Skrivebeskyttet"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Rediger"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Administrator"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Brugerrettigheder"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Brugernavn"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Kan oprette skrivebeskyttede"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Ikke Navngivet"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Ingen"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Opret kategori"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Kalender Kategorier"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Navn"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Tekstfarve"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Baggrundsfarve"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Synlig for Brugergruppe"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Handlinger"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Opret gruppe"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Kalendergrupper"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Adgang n&aelig;gtet"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr " var ikke sat."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Opdaterede indstillinger"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Sprog"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Tidszone"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Velkommen"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Indstillinger"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Log ud"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Log ind"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Tilf&oslash;j booking"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "S&oslash;g"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Vis M&aring;ned"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Vis dato"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Kalender Administrator"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Standard"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Uge Start"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "S&oslash;ndag"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Mandag"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "L&oslash;rdag"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24 timers ur"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Kalender Overskrift"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Max Emnel&aelig;ngde"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Dagligt Maksimum for Begivenhedsvisning"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Offentlig Adgang"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "M&aring; ikke l&aelig;se eller skrive"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "M&aring; l&aelig;se men ikke skrive"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "M&aring; oprette men ikke redigere"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "M&aring; oprette og redigere"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Standard Tidszone"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Standard Sprog"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Dato Format"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Tema"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Måned Dag År"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "År Måned Dag"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Dag Måned År"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Du har ikke rettigheder til denne handling: "
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Fejl"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Backtrace"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Ugylding handling"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Hemmelig token uoverensstemmelse. Muligt forsøg på forespørgselsforfalskning."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Ikke supporteret config type"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "Påkrævet felt \"%s\" blev ikke sat."
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "Misdannet \"%s\" tid: \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Periode ikke genkendt:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "Misdannet \"%s\" dato: \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "Ugyldig date_format."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Ingen kalender valgt."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Bekr&aelig;ft sletning:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Bekr&aelig;ft"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "N&aelig;gt"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Du har ikke rettigheder til at fjerne kalender"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Fjernede kalender"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Kunne ikke fjerne kalender"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Kalender oprettet."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Ingen kategori valgt."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Du har ikke rettigheder til at slette kategorien: "
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Slettet kategori: "
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Kunne ikke slette kategori: "
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Kategori Formular"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Synlig for grupper"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "Gem Kategori"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Farve ikke specificeret."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Ugyldig farve."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Du har ikke rettigheder til at tilf&oslash;je kategorier til alle kalendre."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Du har ikke rettigheder til at tilf&oslash;je kategoier til denne kalender."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Du har ikke rettigheder til at ændre denne kategori."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "&Aelig;ndret kategori: "
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Oprettet kategori: "
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Fejl ved gem kategori."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Titel"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Tid"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Beskrivelse"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Slet Valgte"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Ingen bookinger p&aring; denne dag."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Ugyldigt argument."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Du har ikke rettigheder til at l&aelig;se denne booking."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "af"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Kategori"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Hvorn&aring;r"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Oprettet:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Sidst ændret:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Rediger Forekomst"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Slet Forekomst"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Forrige forekomst på"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Næste forekomst på"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Vis Alle Forekomster"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Tilføj Forekomst"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "-"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Fjern"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Forekomster"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "fra"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "U"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Vis Yderligere Begivenheder"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "fortsat"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "Ugyldig dato."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Ingen handling valgt."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Fjernede begivenhed"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Fjernede begivenheder"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Kunne ikke fjerne begivenhed"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Kunne ikke fjerne begivenheder"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Du har ikke rettigheder til at fjerne begivenhed"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Du har ikke rettigheder til at fjerne begivenheder"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Booking Formular"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Emne"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Rediger begivenhedens dato og tidspunkt"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Fra"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Til"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Tidstype"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normal"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Hele Dagen"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Ikke oplyst endnu"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Gentagelser"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Aldrig"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Daglig"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Ugentlig"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "M&aring;nedlig"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "&Aring;rlig"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Hver"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Gentag med dages mellemrum?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Indtil"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Gentag med hvor mange ugers mellemrum?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Gentag med hvor mange m&aring;neders mellemrum?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Gentag med hvor mange &aring;rs mellemrum?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Gem Begivenhed"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Ukendt tidstype."
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "En begivenhed kan ikke slutte før den begynder."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Du har ikke skriveadgang til denne kalender."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "P&aring;kr&aring;vet felt \"hver-dag\" er ikke udfyldt."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "hver-dag skal v&aelig;re st&oslash;rre end 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "P&aring;kr&aring;vet felt \"hver-uge\" er ikke udfyldt."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "hver-uge skal v&aelig;re st&oslash;rre end 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "P&aring;kr&aelig;vet felt \"hver-m&aring;ned\" er ikke udfyldt."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "hver-m&aring;ned skal v&aelig;re st&oslash;rre end 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "P&aring;kr&aelig;vet felt \"hver-&aring;r\" er ikke udfyldt."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Ugyldig booking type."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Ændrede begivenhed:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Oprettede begivenhed:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Fejl ved gem handling."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "påkrævet"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Kan ikke tilf&oslash;je et ikke-formular element til en formular."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Dato"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Januar"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Februar"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Marts"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "April"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Maj"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Juni"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Juli"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "August"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Septemer"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Oktober"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "November"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "December"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Tirsdag"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Onsdag"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Thorsdag"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Fredag"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Jan"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mar"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Apr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Jun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Jul"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Aug"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Sep"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Okt"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Dec"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Start Dato"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Stigende"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Faldende"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Ingen gruppe valgt."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Du har ikke rettigheder til at slette gruppe:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Fjernede gruppe:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Kunne ikke fjerne gruppe:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Gruppe Formular"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "Gem Gruppe"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Du har ikke rettigheder til at tilføje en global gruppe."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Du har ikke rettigheder til at tilføje en gruppe til denne kalender."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Du har ikke rettigheder til at ændre denne gruppe."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Ændrede gruppe:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Oprettede gruppe:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Fejl, kunne ikke gemme gruppe."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Nødt til at være administrator"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Fejl ved valg af begivenheder under import"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Oprettede %s begivenheder med %s forekomster"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Logget ind."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Ugyldigt login"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Du skal have sl&aring;et cookies til for at logge ind."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Kodeord"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Logger ud..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Forekomst Formular"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Gem Forekomst"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Kan ikke oprette forekomst."
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID ikke sat."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Ændrede forekomst:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Oprettede forekomst:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Fejl, kunne ikke gemme forekomst."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Ingen forekomst valgt."
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Fjernede forekomst"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Fjernede forekomster"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Kunne ikke fjerne forekomst"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Kunne ikke fjerne forekomster"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Du har ikke rettigheder til at fjerne forekomsten."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Du har ikke rettigheder til at fjerne forekomster."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Du skal være logget ind."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Du har ikke rettigheder til at ændre dit kodeord."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Du skal angive dit gamle kodeord."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Kodeordet du indtastede svarede ikke til dit gamle kodeord."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Du skal angive et kodeord"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Dine kodeord var ikke ens"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Kodeord opdateret."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Ingen titel)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Fejl ved get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Fejl ved get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Booking eksisterer ikke"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Fejl ved get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Begivenhed eksisterer ikke med oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Fejl ved get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Kategori eksisterer ikke med catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Fejl ved get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Gruppe eksisterer ikke med gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Fejl ved get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Fejl ved get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Fejl ved get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Fejl ved get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Fejl ved get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Fejl ved get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Fejl under sletning af booking."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Fejl under sletning af forekomst."
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Fejl under sletning af kalender"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Fejl under sletning af kategori."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Fejl under sletning af gruppe."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Fejl under sletning "
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Kunne ikke l&aelig;se rettigheder."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Kunne ikke hente kalendre."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Kunne ikke hente bruger."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Fejl under indl&aelig;sning af bruger."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Fejl ved oprettelse af bruger."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Fejl ved l&aelig;sning af indstillinger"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Fejl ved oprettlese af indstillinger"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Fejl ved opdatering af kodeord."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Fejl ved opdatering af tidszone."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Fejl ved opdatering af sprog."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "Fejl, kunne ikke tilføje gruppe til bruger."
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "Fejl, kunne ikke fjerne gruppe fra bruger."
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Fejl ved oprettelse af booking."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Fejl ved oprettelse af forekomst."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Fejl ved ændring af forekomst."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Fejl ved &aelig;ndring af booking."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Fejl ved oprettelse af kategori."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Fejl ved oprettelse af gruppe."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Fejl ved &aelig;ndring af kategori."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Fejl ved ændring af gruppe."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Fejl under s&oslash;gning"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Fejl ved opdatering af brugerrettigheder."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Kunne ikke hente login token."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Kunne ikke tilføje login token."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Fejl ved opdatering af login token."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Kunne ikke fjerne login tokens."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Kunne ikke rense login tokens."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL foresp&oslash;rgsel"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonym"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "ukendt"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Intet emne)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB returnerede en ugyldig dato."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "til"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Ugyldig sorteringsindstilling"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Ugyldig grupperingsindstilling"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Ingen bookinger svarede til dine s&oslash;gekriterier."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "S&oslash;geresultater"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Dato Tid"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "S&aelig;tning"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Sorter efter"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Grupper"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Skift Kodeord"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Gammelt Kodeord"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Nyt Kodeord"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Bekræft Nyt Kodeord"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Indstillinger opdateret."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Muligt hacking forsøg på din konto."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Måned uden for gyldigt interval."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Ugyldigt &aring;r"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Oversatte \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Godkend kodeord"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Opret administrator"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Du skal angive et brugernavn"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Bruger eksisterer allerede"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "Tilføjede bruger."
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Du skal være administrator for at slette brugere."
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Ingen bruger valgt."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "Rediger Brugergrupper"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "Grupper opdateret."
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Ingen brugere"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Ingen &aelig;ndringer."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Opdaterede bruger(e):"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "fortsæt"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Software Fejl"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Besked:"
diff --git a/locale/da/index.html b/locale/da/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/de/LC_MESSAGES/index.html b/locale/de/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/de/LC_MESSAGES/messages.po b/locale/de/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..302e920
--- /dev/null
+++ b/locale/de/LC_MESSAGES/messages.po
@@ -0,0 +1,1472 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Jack_Miller <fabian.capta@gmail.com>, 2014
+# Jack_Miller <fabian.capta@gmail.com>, 2014
+# JAIME GÓMEZ OBREGÓN <jaime@iteisa.com>, 2006
+# Stefan Schumacher <stefan@duckflight.de>, 2013
+# Till <therootuser2@freenet.de>, 2014
+# 0cff5cc4def3d75681bb40e8e06675f5_417bc8e <8b1bef1ed20efdf0fabadfaace2f36eb_87774>, 2013
+# 0cff5cc4def3d75681bb40e8e06675f5_417bc8e <8b1bef1ed20efdf0fabadfaace2f36eb_87774>, 2013
+# 0cff5cc4def3d75681bb40e8e06675f5_417bc8e <8b1bef1ed20efdf0fabadfaace2f36eb_87774>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: German (http://www.transifex.com/sproctor/php-calendar/language/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Sie müssen als Administrator angemeldet sein. "
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Kalender"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Benutzer"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Import"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Übersetze"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Version"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Kalender"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Aktion"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Löschen"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Kalender erstellen"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Kalenderliste"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Benutzername"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Gruppen"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Gruppen bearbeiten"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Benutzer erstellen"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Benutzerliste"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Import-Formular"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL-Hostname"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL-Datenbankname"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL-Portnummer"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Leer lassen für Voreinstellung"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL-Benutzername"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL-Benutzerpasswort"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "Tabellenpräfix für PHP-Calendar"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Kalender importieren"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "Dieses Script benötigt Lese-Rechte auf das Kalenderverzeichnis um die Übersetzungsdateien schreiben zu können. Alternativ könnten Sie translate.php aus der Kommandozeile heraus ausführen, msgfmt nutzen oder irgendein anderes gettext-Tool, welches .mo Datein aus .po Datein erstellen kann."
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "Übersetzungen generieren"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "Kalenderkonfiguration"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "Kategorien"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Einstellungen"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Speichern"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Lesen"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Schreiben"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Schreibgeschützt"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Ändern"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Admin"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Benutzerberechtigungen "
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Benutzername"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Kann schreibgeschützte Termine erstellen "
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Kein Name"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Keine"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Kategorie erstellen"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Kalenderkategorien"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Name"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Textfarbe"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Hintergrundfarbe"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Sichtbar für Benutzergruppe"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Aktionen"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Gruppe erstellen"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Kalendergruppen"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Keine Berechtigung"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr " wurde nicht gesetzt. "
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Einstellungen aktualisiert"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Sprache"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Zeitzone"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Willkommen"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Logout"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Login"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Termin hinzufügen"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Suchen"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Monat anzeigen"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Datum anzeigen"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Kalender-Admin"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Voreinstellung"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Erster Tag der Woche"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Sonntag"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Montag"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Samstag"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24-Stunden-Anzeige"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Kalendertitel"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Maximale Betrefflänge"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Maximale Anzahl anzuzeigender Termine pro Tag"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Öffentliche Berechtigungen "
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Kann weder Termine lesen noch schreiben "
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Kann Termine lesen, aber nicht schreiben"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Kann Termine erstellen, aber nicht ändern"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Kann Termine erstellen und ändern"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Voreingestellte Zeitzone"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Voreingestellte Sprache"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Datumsformat"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Theme"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Monat Tag Jahr"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Jahr Monat Tag"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Tag Monat Jahr"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Sie haben keine Berechtigung dazu: "
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Fehler"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Rückverfolgung"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Ungültige Aktion"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Unstimmigkeit der geheimen Token. Möglicher Betrugsversuch."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Nicht unterstützter Konfigurationstyp"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "Das benötigte Feld \"%s\" wurde nicht gesetzt."
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "Ungültige \"%s\" Zeit: \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Unbekannter Zeitraum: "
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "Ungültiges \"%s\" Datum: \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "Ungültiges date_format."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Kein Kalender ausgewählt."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Bestätige die Löschung von:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Bestätigen"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Abbrechen"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Ihre Berechtigungen reichen nicht aus um den Kalender zu löschen "
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Kalender gelöscht"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Der Kalender konnte nicht entfernt werden"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Der Kalender wurde erstellt."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Keine Kategorie ausgewählt."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Ihre Berechtigungen reichen nicht aus um die Kategorie zu löschen: "
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Kategorie wurde gelöscht: "
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Die Kategorie konnte nicht gelöscht werden:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Kategorieformular "
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Sichtbar für Gruppen "
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "Kategorie speichern"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Farbe nicht angegeben. "
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Ungültige Farbe."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Ihre Berechtigungen reichen nicht aus um Kategorien zu allen Kalendern hinzufügen. "
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Ihre Berechtigungen reichen nicht aus um Kategorien zu diesem Kalender hinzuzufügen. "
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Ihre Berechtigungen reichen nicht aus um diese Kategorie zu ändern. "
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Kategorie geändert: "
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Kategorie erstellt: "
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Fehler beim Übertragen der Kategorie."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Titel"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Zeit"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Beschreibung"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Ausgewählte löschen"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Keine Termine an diesem Tag."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Ungültige Argumente. "
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Ihre Berechtigungen reichen nicht aus um diesen Termin zu lesen."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "von"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Kategorie"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Wann"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Erzeugt am: "
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Zuletzt geändert am: "
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Wiederholung ändern "
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Entferne Wiederholung"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Letzte Wiederholung am"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Nächste Wiederholung am"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Alle Wiederholungen ansehen "
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Wiederholung hinzufügen"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "um"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Löschen"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Wiederholungen"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "von"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "W"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Weitere Termine anzeigen"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "fortgesetzt"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "Ungültiges Datum."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Kein Termin ausgewählt."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Termin gelöscht"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Termine gelöscht"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Der Termin konnte nicht gelöscht werden"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Die Termine konnten nicht gelöscht werden"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Ihre Berechtigungen reichen nicht aus um den Termin zu entfernen"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Ihre Berechtigungen reichen nicht aus um die Termine zu entfernen "
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Terminformular"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Betreff"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Datum und Zeit des Termins ändern"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Von"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Bis"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Art des Termins"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normaler Termin"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Ganztägiger Termin"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Zeitpunkt wird noch bekannt gegeben"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Wiederholungen"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Niemals"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Täglich"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Wöchentlich"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Monatlich"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Jährlich"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Rhythmus"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Alle _ Tage wiederholen "
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Bis"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Alle _ Wochen wiederholen"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Alle _ Monate wiederholen"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Alle _ Jahre wiederholen"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Termin speichern"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Unbekannter Zeittyp. "
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "Ein Termin kann nicht vor dem Anfang enden. "
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Ihre Berechtigungen reichen nicht aus um in diesen Kalender zu schreiben."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Pflichtfeld \"Rhythmus\" ist nicht gesetzt."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "Rhythmus muss größer als 1 sein"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Pflichtfeld \"Rhythmus\" ist nicht gesetzt."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "Rhythmus muss größer als 1 sein."
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Pflichtfeld \"Rhythmus\" ist nicht gesetzt."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "Rhythmus muss größer als 1 sein"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Pflichtfeld \"Rhythmus\" ist nicht gesetzt."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Ungültiger Termintyp. "
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Termin geändert: "
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Termin erstellt: "
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Fehler beim Übertragen des Termins."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "erforderlich"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Es kann kein Nicht-Formular-Element zu einem Formular hinzugefügt werden. "
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Datum"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Januar"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Februar"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "März"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "April"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Mai"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Juni"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Juli"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "August"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "September"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Oktober"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "November"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Dezember"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Dienstag"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Mittwoch"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Donnerstag"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Freitag"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Jan"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mär"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Apr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Jun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Jul"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Aug"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Sep"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Okt"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Dez"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Anfangsdatum"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Aufsteigend"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Absteigend"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Keine Gruppe ausgewählt."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Ihre Berechtigungen reichen nicht aus um die Gruppe zu löschen: "
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Gruppe gelöscht: "
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Die Gruppe konnte nicht gelöscht werden:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Gruppenformular"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "Gruppe speichern"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Ihre Berechtigungen reichen nicht aus um eine globale Gruppe hinzuzufügen."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Ihre Berechtigungen reichen nicht aus um eine Gruppe zu diesem Kalender hinzuzufügen."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Ihre Berechtigungen reichen nicht aus um diese Gruppe zu ändern. "
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Gruppe geändert: "
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Gruppe erstellt: "
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Fehler beim Übertragen der Gruppe."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Adminrechte erforderlich"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Fehler beim Auswählen der Termine während des Imports"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "%s Termine mit %s Wiederholungen erzeugt."
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Eingeloggt."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Sorry, ungültiger Login"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Cookies müssen aktiviert sein um sich einzulogen."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Passwort"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Ausloggen..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Wiederholungsformular"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Wiederholungen senden"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Wiederholungen können nicht erstellt werden."
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID wurde nicht gesetzt."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Wiederholung geändert:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Wiederholung erstellt: "
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Fehler bei der Übertragung der Wiederholungen."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Keine Wiederholung ausgewählt."
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Wiederholung gelöscht"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Wiederholung gelöscht"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Wiederholung konnte nicht gelöscht werden"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Wiederholungen konnten nicht gelöscht werden"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Ihre Berechtigungen reichen nicht aus um die Wiederholung zu entfernen. "
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Ihre Berechtigungen reichen nicht aus um Wiederholungen zu entfernen. "
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Sie müssen eingeloggt sein."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Ihre Berechtigungen reichen nicht aus um Ihr Passwort zu ändern."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Sie müssen Ihr altes Passwort eingeben."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Das eingegebene Passwort stimmt nicht mit dem alten Passwort überein."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Sie müssen ein Passwort eingeben"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Ihre Passwörter stimmen nicht überein"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Das Passwort wurde aktualisiert."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Kein Titel)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Fehler in get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Fehler in get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Der Termin existiert nicht"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Fehler in get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Der Termin existiert nicht mit oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Fehler in get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Die Kategorie existiert nicht mit catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Fehler in get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Die Gruppe existiert nicht mit gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Fehler in get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Fehler in get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Fehler in get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Fehler in get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Fehler in get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Fehler in get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Fehler beim Löschen eines Termins."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Fehler beim Löschen einer Wiederholung."
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Fehler beim Löschen eines Kalenders"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Fehler beim Löschen der Kategorie."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Fehler beim Löschen der Gruppe."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Fehler beim Löschen"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "DIe Berechtigungen konnten nicht gelesen werden."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Die Kalender konnten nicht geladen werden."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Der Benutzer konnte nicht geladen werden."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Fehler beim Laden des Benutzers."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Fehler beim Erstellen des Benutzers."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Fehler beim Lesen der Optionen"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Fehler beim Erstellen der Optionen"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Fehler bei der Aktualisierung des Passworts."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Fehler bei der Aktualisierung der Zeitzone."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Fehler bei der Aktualisierung der Sprache."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "Fehler beim hinzufügen der Gruppe des Benutzers."
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "Fehler beim entfernen des Users aus der Gruppe."
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Fehler beim Erstellen des Termins."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Fehler beim Erstellen der Wiederholung."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Fehler beim Ändern der Wiederholung."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Fehler beim Ändern des Termins."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Fehler beim Erstellen der Kategorie."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Fehler beim Erstellen der Gruppe."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Fehler beim Ändern der Kategorie."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Fehler beim Ändern der Gruppe."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Fehler während der Suche"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Fehler beim Aktualisieren der Benutzerrechte. "
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Fehler beim Login-Token."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Fehler beim Hinzufügen des Logintokens."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Fehler beim Aktualisieren der Logintoken."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Fehler beim Löschen der Logintoken."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Fehler bei der Reinigung der Logintoken."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL-Abfrage"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonym"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "unbekannt"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(kein Betreff)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB gab ein ungültiges Datum zurück."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "bis"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Ungültige Sortierungsoption"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Ungültige Reihenfolge "
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Keine Termine zu Ihrer Suche gefunden."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Suchergebnisse"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Datum Zeit"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Suchbegriff"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Sortieren nach"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Reihenfolge"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Passwort ändern"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Altes Passwort"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Neues Passwort"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Neues Passwort bestätigen"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Einstellungen wurden aktualisiert."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Möglicher Hackerangriff auf Ihr Konto."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Der Monat ist außerhalb des Bereichs."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Ungültiges Jahr "
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "\"%s\" übersetzt"
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Passwort speichern"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Zum Admin machen"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Sie müssen einen Benutzernamen angeben"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Der Benutzer existiert bereits."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "Nutzer hinzugefügt."
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Sie müssen Admin sein, um Benutzer zu löschen. "
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Kein Benutzer ausgewählt."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "Benutzergruppen bearbeiten"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "Gruppen wurden aktualisiert."
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Keine Benutzer"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Es sind keine Änderungen vorzunehmen."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Aktualisierte(r) Benutzer:"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "weiter"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Softwarefehler"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Nachricht:"
diff --git a/locale/de/index.html b/locale/de/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/el/LC_MESSAGES/messages.po b/locale/el/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..bfd30d5
--- /dev/null
+++ b/locale/el/LC_MESSAGES/messages.po
@@ -0,0 +1,1470 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# txapollo243, 2013
+# txapollo243, 2016
+# txapollo243, 2013
+# 0cff5cc4def3d75681bb40e8e06675f5_417bc8e <8b1bef1ed20efdf0fabadfaace2f36eb_87774>, 2013
+# 0cff5cc4def3d75681bb40e8e06675f5_417bc8e <8b1bef1ed20efdf0fabadfaace2f36eb_87774>, 2013
+# Wasilis <m.wasilis@yahoo.de>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Greek (http://www.transifex.com/sproctor/php-calendar/language/el/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: el\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Πρέπει να είστε συνδεδεμένος ως διαχειριστής."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Ημερολόγια"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Χρήστες"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Εισαγωγή"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Μετάφραση"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Έκδοση"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Ημερολόγιο"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Δράση"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Επεξεργασία"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Διαγραφή"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Δημιουργία Ημερολογίου"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Λίστα Ημερολογίων"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Όνομα χρήστη"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Ομάδες"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Επεξεργασία Ομάδων"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Δημιουργία Χρήστη"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Λίστα Χρηστών"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Εισαγωγή Φόρμας"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "Όνομα Διακομιστή MySQL"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "Όνομα Βάσης Δεδομένων MySQL"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "Αριθμός Θύρας MySQL"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Αφήστε το κενό για την προεπιλογή"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "Όνομα Χρήστη MySQL"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "Κωδικός Πρόσβασης Χρήστη MySQL"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "Πρόθεμα Πίνακα PHP-Calendar"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Εισαγωγή Ημερολογίου"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "Το αυτό σενάριο ενεργειών χρειάζεται πρόσβαση για ανάγνωση στον φάκελο του ημερολογίου σας, ώστε να εγγράψει τα αρχεία μετάφραση. Εναλλακτικά, μπορείτε να τρέξετε το αρχείο translate.php από την γραμμή εντολών ή να χρησιμοποιήσετε το msgfmt, ή οποιοδήποτε άλλο εργαλείο gettext, το οποίο δύναται να δημιουργήσει αρχεία μορφής .mo από αρχεία μορφής .po."
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "Δημιουργία Μεταφράσεων"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "Ρύθμιση Ημερολογίου"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "Κατηγορίες"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Επιλογές"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Αποστολή"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Ανάγνωση"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Εγγραφή"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Μόνο ανάγνωση"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Αλλαγή"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Διαχειριστής"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Δικαιώματα Χρήστη"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Όνομα Χρήστη"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Μπορεί να Δημιουργήσει Μόνο-Ανάγνωση"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Χωρίς Όνομα"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Κανένα"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Δημιουργία κατηγορίας"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Κατηγορίες Ημερολογίου"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Όνομα"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Χρώμα Κειμένου"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Χρώμα Φόντου"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Εμφανές σε Ομάδα Χρηστών"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Δράσεις"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Δημιουργία ομάδας"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Ομάδες Ημερολογίου"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Άρνηση δικαιώματος"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "δεν τέθηκε."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Ενημερωμένες επιλογές"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Γλώσσα"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Ζώνη ώρας"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Καλώς ήρθατε"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Ρυθμίσεις"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Αποσύνδεση"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Σύνδεση"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Προσθήκη Συμβάντος"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Αναζήτηση"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Εμφάνιση Μήνα"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Εμφάνιση ημερομηνίας"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Διαχειριστής Ημερολογίου"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Προεπιλεγμένο"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Αρχή Εβδομάδας"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Κυριακή"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Δευτέρα"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Σάββατο"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24ωρος Χρόνος"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Τίτλος Ημερολογίου"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Μέγιστο Μήκος Θέματος"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Μεγιστη ημερησια μεφανιση εκδηλωσεων "
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Δημόσια Δικαιώματα"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Δεν είναι δυνατό να διαβαστούν ούτε να εγγραφούν συμβάντα"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Είναι δυνατόν να διαβαστούν αλλά όχι να εγγραφούν συμβάντα"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Είναι δυνατόν να δημιουργηθούν αλλά όχι να τροποποιηθούν συμβάντα"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Είναι δυνατόν να δημιουργηθούν και να τροποποιηθούν συμβάντα"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Προεπιλεγμένη Ζώνη Ώρας"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Προεπιλεγμένη Γλώσσα"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Μορφή Ημερομηνίας"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Θέμα"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Μήνας Ημέρα Έτος"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Έτος Μήνας Ημέρα"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Ημέρα Μήνας Έτος"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Δεν έχετε δικαίωμα να το κάνετε αυτό:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Σφάλμα"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Ανέτρεξε"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Μη έγκυρη ενέργεια"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Αναντιστοιχία μυστικού token. Πιθανή προσπάθεια πλαστογράφησης αίτησης."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Μη υποστηριζόμενος τύπος ρυθμίσεων"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "Το απαιτούμενο πεδίο \"%s\" δεν τέθηκε."
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "Εσφαλμένη μορφή χρόνου \"%s\": \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Μη αναγνωρίσιμη περίοδος:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "Εσφαλμένη μορφή ημερομηνίας \"%s\": \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "Μη έγκυρο date_format."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Δεν έχει επιλεγεί ημερολόγιο."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Επιβεβαιώστε ότι θέλετε την διαγραφή:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Επιβεβαίωση"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Απόρριψη"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Δεν έχετε δικαίωμα να αφαιρέσετε το ημερολόγιο"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Αφαιρεμένο ημερολόγιο"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Δεν ήταν δυνατή η αφαίρεση του ημερολογίου"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Δημιουργήθηκε το ημερολόγιο."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Δεν έχει επιλεγεί κατηγορία."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Δεν έχετε δικαίωμα να διαγράψετε την κατηγορία:"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Αφαιρεμένη κατηγορία:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Δεν ήταν δυνατή η αφαίρεση της κατηγορίας:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Φόρμα Κατηγορίας"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Εμφανές σε ομάδες"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "Αποστολή Κατηγορίας"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Δεν έχει καθοριστεί χρώμα."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Μη έγκυρο χρώμα."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Δεν έχετε δικαίωμα να προσθέσετε κατηγορίες σε όλα τα ημερολόγια."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Δεν έχετε δικαίωμα να προσθέσετε κατηγορίες στο συγκεκριμένο ημερολόγιο."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Δεν έχετε δικαίωμα να τροποποιήσετε την συγκεκριμένη κατηγορία."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Τροποποιημένη κατηγορία:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Δημιουργημένη κατηγορία:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Σφάλμα κατά την αποστολή της κατηγορίας."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Τίτλος"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Χρόνος"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Περιγραφή"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Διαγραφή Επιλεγμένων"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Δεν υπάρχουν συμβάντα αυτήν την ημέρα."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Μη έγκυρα ορίσματα."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Δεν έχετε δικαίωμα να διαβάσετε αυτό το συμβάν."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "από"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Κατηγορία"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Πότε"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Δημιουργία στις:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Τελευταία τροποποίηση στις:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Τροποποίηση Περίστασης"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Αφαίρεση Περίστασης"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Προηγούμενη περίσταση σε"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Επόμενη περίσταση σε"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Εμφάνιση Όλων των Περιστάσεων"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Προσθήκη Περίστασης"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "σε"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Αφαίρεση"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Περιστάσεις"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "από"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "W"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Εμφάνιση Επιπρόσθετων Συμβάντων"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "συνεχίζεται"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "Μη έγκυρη ημερομηνία."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Δεν έχει επιλεγεί συμβάν."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Αφαιρεμένο συμβάν"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Αφαιρεμένα συμβάντα"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Δεν ήταν δυνατή η αφαίρεση του συμβάντος"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Δεν ήταν δυνατή η αφαίρεση των συμβάντων"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Δεν έχετε δικαίωμα να αφαιρέσετε το συμβάν"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Δεν έχετε δικαίωμα να αφαιρέσετε τα συμβάντα"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Φόρμα Συμβάντος"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Θέμα"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Αλλαγή της ημερομηνίας και ώρας γεγονότος"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Από"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Προς"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Τύπος Χρονολόγησης"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Κανονική"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Πλήρης Ημέρα"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Θα Ανακοινωθεί"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Επαναλήψεις"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Ποτέ"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Καθημερινά"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Εβδομαδιαία"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Μηνιαία"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Ετήσια"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Κάθε"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Επανάληψη κάθε πόσες ημέρες;"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Μέχρι"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Επανάληψη κάθε πόσες εβδομάδες;"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Επανάληψη κάθε πόσους μήνες;"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Επανάληψη κάθε πόσα έτη;"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Αποστολή Συμβάντος"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Μη αναγνωρίσιμος Τύπος Χρονολόγησης"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "Ένα συμβάν δεν μπορεί τελειώνει νωρίτερα από όταν αρχίζει."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Δεν έχετε δικαίωμα να εγγράψετε στο συγκεκριμένο ημερολόγιο."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Το απαιτούμενο πεδίο «κάθε μέρα» δεν έχει τεθεί."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "το πεδίο «κάθε μέρα» πρέπει να έχει τιμή μεγαλύτερη από 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Το απαιτούμενο πεδίο «κάθε εβδομάδα» δεν έχει τεθεί."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "το πεδίο «κάθε εβδομάδα» πρέπει να έχει τιμή μεγαλύτερη από 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Το απαιτούμενο πεδίο «κάθε μήνα» δεν έχει τεθεί."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "το πεδίο «κάθε μήνα» πρέπει να έχει τιμή μεγαλύτερη από 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Το απαιτούμενο πεδίο «κάθε έτος» δεν έχει τεθεί."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Μη έγκυρος τύπος συμβάντος."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Τροποποιημένο συμβάν:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Δημιουργημένο συμβάν:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Σφάλμα κατά την αποστολή του συμβάντος."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "απαιτούμενο"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Δεν είναι δυνατή η προσθήση ενός στοιχείου που δεν είναι χαρακτηριστικό μιας φόρμας, σε μία φόρμα."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Ημερομηνία"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Ιανουάριος"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Φεβρουάριος"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Μάρτιος"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Απρίλιος"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Μάιος"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Ιούνιος"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Ιούλιος"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Αύγουστος"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Σεπτέμβριος"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Οκτώβριος"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Νοέμβριος"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Δεκέμβριος"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Τρίτη"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Τετάρτη"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Πέμπτη"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Παρασκευή"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Ιαν"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Φεβ"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Μαρ"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Απρ"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Ιουν"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Ιουλ"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Αυγ"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Σεπ"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Οκτ"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Νοε"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Δεκ"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Ημερομηνία Έναρξης"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Αύξουσα"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Φθίνουσα"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Δεν έχει επιλεγεί ομάδα."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Δεν έχετε δικαίωμα να διαγράψετε την ομάδα:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Αφαιρεμένη ομάδα:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Δεν ήταν δυνατή η αφαίρεση της ομάδας:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Φόρμα Ομάδας"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "Αποστολή Ομάδας"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Δεν έχετε δικαίωμα να προσθέσετε μια καθολική ομάδα."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Δεν έχετε δικαίωμα να προσθέσετε μια ομάδα σε αυτό το ημερολόγιο."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Δεν έχετε δικαίωμα να τροποποιήσετε αυτήν την ομάδα."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Τροποποιημένη ομάδα:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Δημιουργημένη ομάδα:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Σφάλμα κατά την αποστολή της ομάδας."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Χρειάζεται να είσαστε διαχειριστής"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Σφάλμα κατά την επιλογή γεγονότων προς εισαγωγή"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Δημιουργήθηκαν %s γεγονότα με %s περιστάσεις"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Συνδεδεμένος/η"
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Συγγνώμη, Μη Έγκυρη Σύνδεση"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Πρέπει να έχετε ενεργοποιημένα τα cookies για να συνδεθείτε."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Κωδικός"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Αποσύνδεση..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Φόρμα Περιστάσεων"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Αποστολή Περίστασης"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Δεν είναι δυνατή η δημιουργία εμφάνισης."
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "Το EID δεν τέθηκε."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Τροποποίηση Περίστασης:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Δημιουργία εμφάνισης:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Σφάλμα κατά την υποβολή εμφάνισης."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Δεν εχει επιλεγεί μια εμφάνιση. "
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Αφαίρεση Περίστασης"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Αφαίρεση Περίστασεων"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Δεν ήταν δυνατή η αφαίρεση εμφάνισης"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Δεν μπορεσαν να καταργήθουν οι εμφανίσεις "
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Δεν έχετε άδεια για να καταργήσετε την εμφάνιση. "
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Δεν έχετε άδεια για να καταργήσετε τις εμφανίσεις. "
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Πρέπει να είστε συνδεδεμένος."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Δεν έχετε άδεια για να αλλάξετε τον κωδικό σας. "
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Μπορείτε να καθορίσετε τον παλιό κωδικό πρόσβασής σας. "
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Ο κωδικός πρόσβασης που εισάγατε δεν αντιστοιχει με τον παλιό κωδικό πρόσβασής σας. "
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Πρέπει να ορίσετε έναν κωδικό πρόσβασης"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Οι κωδικοί πρόσβασής σας δεν ταιριάζουν"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Ο κωδικος ανανεωθηκε."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Κανενας τιτλος)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Σφάλμα στο get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Σφαλμα στο get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Η εκδηλωση δεν υπαρχει"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Σφαλμα στο get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Το συμβάν δεν υπάρχει με oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Σφαλμα στο get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Η κατηγορία δεν υπάρχει με catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Σφαλμα στο get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Η ομαδα δεν υπάρχει με GID"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Σφαλμα στο get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Σφαλμα στο get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Σφλμα στο get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Σφαλμα στο get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Σφαλμα στο get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Σφαλμα στο get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Σφάλμα κατά την αφαίρεση μιας εκδήλωσης."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Σφάλμα κατά την αφαίρεση ένος περιστατικόυ. "
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Σφάλμα κατά την αφαίρεση ενός ημερολογίου "
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Σφάλμα κατά την αφαίρεση της κατηγορίας. "
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Σφάλμα κατά την αφαίρεση της ομάδας."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Σφάλμα κατά την αφαίρεση "
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Δεν ήταν δυνατή η ανάγνωση δικαιώματων."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Τα ημερολογια δεν μπορεσαν να παρθουν."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Ο χρηστης δεν μπορεσε να παρθει."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Σφαλμα κατα την ενσωματωση του χρηστη."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Σφαλμα κατα την δημιουργια προφιλ του χρηστη."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Επιλογές Σφάλμα ανάγνωσης"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Σφάλμα κατά τη δημιουργία επιλογων"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Σφαλμα κατα την ανανεωση κωδικου."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Σφαλμα κατα την ανανεωση της χρονικης ζωνης."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Σφαλμα κατα την ανανεωση γλωσσας."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "Σφάλμα κατά την προσθήκη ομάδας στον χρήστη"
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "Σφάλμα κατά την αφαίρεση ομάδας από χρήστη"
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Σφαλμα κατα την δημιουργια εκδηλωσης."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Σφάλμα κατά τη δημιουργία εμφάνισης."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Σφάλμα κατά την τροποποίηση εμφάνισης."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Σφάλμα κατά την τροποποίηση εκδήλωσης."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Σφάλμα κατά τη δημιουργία της κατηγορίας."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Σφάλμα κατά τη δημιουργία της ομάδας."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Σφάλμα κατά την τροποποίηση κατηγορίας. "
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Σφάλμα κατά την τροποποίηση ομάδας."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Σφάλμα κατά την αναζήτηση"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Σφάλμα κατά την ενημέρωση δικαιώματων του χρήστη. "
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Σφάλμα κατά τη λήψη συνδεσης."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Σφαλμα κατα την προσθηκη συνδεσης."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Σφαλμα κατα την ανανεωση συνδεσης."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Σφαλμα κατα την ανανεωση συνδεσης."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Σφαλμα κατα την εκκαθαριση συνδεσης."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL ερώτημα "
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "ανωνυμη"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "αγνωστο"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Κανενα θεμα)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB επέστρεψε μια μη έγκυρη ημερομηνία."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "σε"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Μη έγκυρη επιλογή ταξινόμησης"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Μη έγκυρη επιλογή παραγγελίας"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Δεν υπάρχουν συμβάντα συμφωνημένα κριτήρια της αναζήτησής σας."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Αποτελεσματα αναζητησης"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Ημερομηνια Ωρα"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Φραση"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Ταξινομηση απο"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Παραγγελια"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Αλλαγη Κωδικου"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Παλιος Κωδικος"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Νεος κωδικος"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Επιβεβαιωση νεου κωδικου"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Οι ρυθμισεις ανανεωθηκαν."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Πιθανές προσπάθειες hacking στο λογαριασμό σας. "
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Ο μήνας είναι εκτός εμβέλειας."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Μη έγκυρο έτος "
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Μεταφράστηκε το \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Επιβεβαίωση Κωδικού"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Κάνε Διαχειριστή"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Πρέπει να ορίσετε ένα όνομα χρήστη"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Ο χρηστης υπαρχει ηδη."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "Χρήστης προστέθηκε."
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Πρέπει να είστε διαχειριστής για να διαγράψετε τους χρήστες. "
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Δεν έχει επιλέγει χρήστης."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "Επεξεργασία Ομάδων Χρηστών"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "Οι ομάδες ενημερώθηκαν."
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Κανενας χρηστης"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Δεν υπάρχουν αλλαγές να γινουν."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Αναωμενος χρηστης(ες):"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "συνεχεια"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Σφαλμα λογισμικου"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Μυνημα:"
diff --git a/locale/en/LC_MESSAGES/messages.po b/locale/en/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..5a3f3fc
--- /dev/null
+++ b/locale/en/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2017-09-19 16:18+0000\n"
+"Last-Translator: Sean Proctor <sproctor@gmail.com>\n"
+"Language-Team: English (http://www.transifex.com/sproctor/php-calendar/language/en/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "You must be logged in as an admin."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Calendars"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Users"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Import"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Translate"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Version"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Calendar"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Action"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Edit"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Delete"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Create Calendar"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Calendar List"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Username"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Groups"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Edit Groups"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Create User"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "User List"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Import Form"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL Host Name"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL Database Name"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL Port Number"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Leave blank for default"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL User Name"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL User Password"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar Table Prefix"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Import Calendar"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "This script needs read access to your calendar directory in order to write the translation files. Alternatively, you could run translate.php from the command line or use msgfmt or any other gettext tool that can generate .mo files from .po files."
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "Generate Translations"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "Calendar Configuration"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "Categories"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Options"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Submit"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Read"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Write"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Read-only"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Modify"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Admin"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "User Permissions"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "User Name"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Can Create Read-Only"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "No Name"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "None"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Create category"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Calendar Categories"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Name"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Text Color"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Background Color"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Visible to User Group"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Actions"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Create group"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Calendar Groups"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Permission denied"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr " was not set."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Updated options"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Language"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Timezone"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Welcome"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Settings"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Log out"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Log in"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Add Event"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Search"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "View Month"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "View date"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Calendar Admin"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Default"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Week Start"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Sunday"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Monday"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Saturday"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24 Hour Time"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Calendar Title"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Maximum Subject Length"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Events Display Daily Maximum"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Public Permissions"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Cannot read nor write events"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Can read but not write events"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Can create but not modify events"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Can create and modify events"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Default Timezone"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Default Language"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Date Format"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Theme"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Month Day Year"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Year Month Day"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Day Month Year"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "You do not have permission to do that: "
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Error"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Backtrace"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Invalid action"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Secret token mismatch. Possible request forgery attempt."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Unsupported config type"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "Required field \"%s\" was not set."
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "Malformed \"%s\" time: \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Unrecognized period: "
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "Malformed \"%s\" date: \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "Invalid date_format."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "No calendar selected."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Confirm you want to delete:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Confirm"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Deny"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "You do not have permission to remove calendar"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Removed calendar"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Could not remove calendar"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Calendar created."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "No category selected."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "You do not have permission to delete category: "
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Removed category: "
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Could not remove category: "
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Category Form"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Visible to groups"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "Submit Category"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Color not specified."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Invalid color."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "You do not have permission to add categories to all calendars."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "You do not have permission to add categories to this calendar."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "You do not have permission to modify this category."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Modified category: "
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Created category: "
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Error submitting category."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Title"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Time"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Description"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Delete Selected"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "No events on this day."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Invalid arguments."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "You do not have permission to read this event."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "by"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Category"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "When"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Created at: "
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Last modified at: "
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Modify Occurrence"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Remove Occurrence"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Previous occurrence on"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Next occurrence on"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "View All Occurrences"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Add Occurrence"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "at"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Remove"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Occurrences"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "from"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "W"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "View Additional Events"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "continued"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "Invalid date."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "No event selected."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Removed event"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Removed events"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Could not remove event"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Could not remove events"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "You do not have permission to remove event"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "You do not have permission to remove events"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Event Form"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Subject"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Change the event date and time"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "From"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "To"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Time Type"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normal"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Full Day"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "To Be Announced"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Repeats"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Never"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Daily"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Weekly"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Monthly"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Yearly"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Every"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Repeat every how many days?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Until"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Repeat every how many weeks?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Repeat every how many months?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Repeat every how many years?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Submit Event"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Unrecognized Time Type."
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "An event cannot have an end earlier than its start."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "You do not have permission to write to this calendar."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Required field \"every-day\" is not set."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "every-day must be greater than 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Required field \"every-week\" is not set."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "every-week must be greater than 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Required field \"every-month\" is not set."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "every-month must be greater than 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Required field \"every-year\" is not set."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Invalid event type."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Modified event: "
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Created event: "
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Error submitting event."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "required"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Cannot add a non-form element to a form."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Date"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "January"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "February"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "March"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "April"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "May"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "June"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "July"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "August"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "September"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "October"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "November"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "December"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Tuesday"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Wednesday"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Thursday"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Friday"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Jan"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mar"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Apr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Jun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Jul"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Aug"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Sep"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Oct"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Dec"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Start Date"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Ascending"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Descending"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "No group selected."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "You do not have permission to delete group: "
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Removed group: "
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Could not remove group: "
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Group Form"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "Submit Group"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "You do not have permission to add a global group."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "You do not have permission to add a group to this calendar."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "You do not have permission to modify this group."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Modified group: "
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Created group: "
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Error submitting group."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Need to be admin"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Error selecting events in import"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Created %s events with %s occurences"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Logged in."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Sorry, Invalid Login"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "You must have cookies enabled to login."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Password"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Loggin out..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Occurrence Form"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Submit Occurrence"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Cannot create occurrence."
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID not set."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Modified occurence: "
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Created occurence: "
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Error submitting occurrence."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "No occurrence selected."
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Removed occurrence"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Removed occurrences"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Could not remove occurrence"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Could not remove occurrences"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "You do not have permission to remove the occurrence."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "You do not have permission to remove occurrences."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "You must be logged in."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "You do not have permission to change your password."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "You must specify your old password."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "The password you entered did not match your old password."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "You must specify a password"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Your passwords did not match"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Password updated."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(No title)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Error in get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Error in get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Event doesn't exist"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Error in get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Event doesn't exist with oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Error in get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Category doesn't exist with catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Error in get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Group doesn't exist with gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Error in get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Error in get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Error in get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Error in get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Error in get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Error in get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Error while removing an event."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Error while removing an occurrence."
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Error while removing a calendar"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Error while removing category."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Error while removing group."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Error while removing "
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Could not read permissions."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Could not get calendars."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Could not get user."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Error getting user."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Error creating user."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Error reading options"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Error creating options"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Error updating password."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Error updating timezone."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Error updating language."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "Error adding group to user."
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "Error removing group from user."
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Error creating event."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Error creating occurrence."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Error modifying occurrence."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Error modifying event."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Error creating category."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Error creating group."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Error modifying category."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Error modifying group."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Error during searching"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Error updating user permissions."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Error getting login token."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Error adding login token."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Error updating login token."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Error removing login tokens."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Error cleaning login tokens."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL query"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonymous"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "unknown"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(No subject)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB returned an invalid date."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "to"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Invalid sort option"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Invalid order option"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "No events matched your search criteria."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Search Results"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Date Time"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Phrase"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Sort By"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Order"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Change Password"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Old Password"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "New Password"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Confirm New Password"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Settings updated."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Possible hacking attempt on your account."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Month is out of range."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Invalid year"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Translated \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Confirm Password"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Make Admin"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "You must specify a user name"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "User already exists."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "Added user."
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "You must be an admin to delete users."
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "No user selected."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "Edit User Groups"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "Groups updated."
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "No users"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "No changes to make."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Updated user(s):"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "continue"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Software Error"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Message:"
diff --git a/locale/es/LC_MESSAGES/index.html b/locale/es/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/es/LC_MESSAGES/messages.po b/locale/es/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..1d0e8d4
--- /dev/null
+++ b/locale/es/LC_MESSAGES/messages.po
@@ -0,0 +1,1467 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# JAIME GÓMEZ OBREGÓN <jaime@iteisa.com>, 2006
+# Jean Paul Cahuana Pinto <cpjeanpaul@gmail.com>, 2019
+# Juan Perea <jdperea59@gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Spanish (http://www.transifex.com/sproctor/php-calendar/language/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Debes iniciar sesión como administrador"
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Calendarios"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Usuaris"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Importar"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Traducir"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Versión"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Calendario"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Acción"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Editar"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Borrar"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Crear un Calendario"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Lista de Calendarios"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Nombre de usuario"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Grupos"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Editar Grupos"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Crear Usuario"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Lista de Usuarios"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Importar Desde"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Dejar en blanco por defecto"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Importar Calendario"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Opciones"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Enviar"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Leer"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Redactar"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Sólo lectura"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Modificar"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Administración"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Permisos de usuario"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Nombre de usuario"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Se puede crear Sólo Lectura"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Sin Nombre"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Ninguno"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Crear categoría"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Categorías de Calendario"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Nombre"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Color de Texto"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Color de Fondo"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Visible al grupo de usuarios"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Acciones"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Crear Grupo"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Grupo de Calendarios"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Acceso denegado"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "no se estableció."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Opciones actualizadas"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Idioma"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Zona Horaria"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "bienvenido"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Ajustes"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Desconectar"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Login"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Añadir Evento"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Buscar"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Ver Mes"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Ver fecha"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Administrar Calendario"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Predeterminado"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Inicio de Semana"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Domingo"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Lunes"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Sábado"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr ""
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Título del calendario"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Longitud máxima del asunto"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Número máximo de eventos a mostrar por día"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Permisos Publicos"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "No se pueden leer ni escribir eventos"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Se pueden leer pero no registrar eventos"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Puede crear pero no modificar eventos"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Puede crear y modificar eventos"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Zona horaria por defecto"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Idioma por defecto"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Formato de Fecha"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Tema"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Mes Día Año"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Año Mes Día"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Día Mes Año"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Usted No tiene permiso para hacer eso:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Error"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Acción incorrecta"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Discrepancia en el símbolo secreto. Posiblemente sea una petición falsa."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Tipo de configuración no admitida"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "No hay un calendario seleccionado."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Confirme que desea eliminar:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Confirmar"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Denegar"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Usted no tiene permiso para eliminar el calendario"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Calendario Eliminado"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "No se pudo eliminar el Calendario"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr ""
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "No se ha seleccionado una categoría."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Usted no posee los permisos para eliminar una categoría"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Categoría Removida"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "No se pudo eliminar la categoría:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Formulario de Categoría"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Visible a grupos"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "No se especificó un color."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Color invalido."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Usted no tiene permiso para agregar categorías para todos los calendarios."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Usted no tiene permiso para agregar categorías a este calendario."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Usted no tiene permisos para modificar esta categoría."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr ""
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Título"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Hora"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Descripción"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Borrar seleccionado"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "No hay eventos este día"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "por"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Categoría"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Cuando"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Creado:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Última moficación"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr ""
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "en"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Eliminar"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "desde"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Ver eventos adicionales"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "Fecha inválida."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr ""
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr ""
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Asunto"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "De"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Para"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr ""
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normal"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Todo el Día"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr ""
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr ""
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Semanalmente"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Mensualmente"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr ""
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr ""
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Añadir evento"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr ""
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Enero"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Febrero"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Marzo"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Abril"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Mayo"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Junio"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Julio"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Agosto"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Septiembre"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Octubre"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Noviembre"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Diciembre"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Martes"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Miércoles"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Jueves"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Viernes"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Ene"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mar"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Abr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Jun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Jul"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Ago"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Sep"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Oct"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Dic"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Fecha de inicio"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Ascendente"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr ""
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Login inválido"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Contraseña"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr ""
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Error al actualizar la clave de acceso."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Error al eliminar tokens."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Error al tratar de limpiar los tokens de acceso."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "consulta SQL"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anónimo"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "desconocido"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "La Base de Datos devuelve una fecha inválida."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "a"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "No hay eventos que concuerden con sus criterios de búsqueda."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Resultados de la búsqueda"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Fecha y hora"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Frase"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Ordenar por"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Orden"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Cambiar Contraseña"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Contraseña anterior"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Nueva contraseña"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Confirmar nueva contraseña"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Configuración actualizada."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Se presentó un posible intento de hacking en su cuenta."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "El mes está fuera de rango."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Año inválido"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Traducido \"% s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Confirmar Contraseña"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Establecer como administrador"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Debe especificar un nombre de usuario"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Usuario ya existe."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Usted debe ser un administrador para eliminar usuarios."
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Ningún usuario seleccionado."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Ningún usuario"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "No hay cambios para hacer."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Usuario Actualizado(s)"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "continuar"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Error del software"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Mensaje:"
diff --git a/locale/es/index.html b/locale/es/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/fa/LC_MESSAGES/index.html b/locale/fa/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/fa/LC_MESSAGES/messages.po b/locale/fa/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..03f9c12
--- /dev/null
+++ b/locale/fa/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Persian (http://www.transifex.com/sproctor/php-calendar/language/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr ""
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr ""
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr ""
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr ""
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr ""
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr ""
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr ""
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr ""
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr ""
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr ""
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr ""
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr ""
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr ""
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr ""
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr ""
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr ""
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr ""
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr ""
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr ""
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr ""
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr ""
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr ""
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr ""
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr ""
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr ""
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr ""
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr ""
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr ""
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr ""
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr ""
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr ""
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr ""
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr ""
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr ""
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr ""
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr ""
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr ""
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr ""
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr ""
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr ""
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr ""
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr ""
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr ""
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr ""
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr ""
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr ""
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr ""
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr ""
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr ""
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr ""
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr ""
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr ""
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr ""
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr ""
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr ""
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr ""
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr ""
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr ""
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr ""
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr ""
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr ""
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr ""
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr ""
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr ""
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr ""
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr ""
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr ""
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr ""
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr ""
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr ""
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr ""
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr ""
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr ""
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr ""
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr ""
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr ""
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr ""
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr ""
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr ""
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr ""
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr ""
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr ""
+
+#: includes/globals.php:24
+msgid "February"
+msgstr ""
+
+#: includes/globals.php:25
+msgid "March"
+msgstr ""
+
+#: includes/globals.php:26
+msgid "April"
+msgstr ""
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr ""
+
+#: includes/globals.php:28
+msgid "June"
+msgstr ""
+
+#: includes/globals.php:29
+msgid "July"
+msgstr ""
+
+#: includes/globals.php:30
+msgid "August"
+msgstr ""
+
+#: includes/globals.php:31
+msgid "September"
+msgstr ""
+
+#: includes/globals.php:32
+msgid "October"
+msgstr ""
+
+#: includes/globals.php:33
+msgid "November"
+msgstr ""
+
+#: includes/globals.php:34
+msgid "December"
+msgstr ""
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr ""
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr ""
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr ""
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr ""
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr ""
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr ""
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr ""
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr ""
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr ""
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr ""
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr ""
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr ""
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr ""
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr ""
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr ""
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr ""
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr ""
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr ""
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr ""
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr ""
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr ""
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr ""
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr ""
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr ""
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr ""
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr ""
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr ""
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr ""
+
+#: includes/search.php:118
+msgid "Order"
+msgstr ""
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr ""
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr ""
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr ""
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr ""
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr ""
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr ""
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/fa/index.html b/locale/fa/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/fi/LC_MESSAGES/messages.po b/locale/fi/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..239d039
--- /dev/null
+++ b/locale/fi/LC_MESSAGES/messages.po
@@ -0,0 +1,1466 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# d2489f3e06add9f9756e9830a5e3c373_a61fcef <c0c6335df798265bff873ed2a967d33e_103982>, 2013
+# d2489f3e06add9f9756e9830a5e3c373_a61fcef <c0c6335df798265bff873ed2a967d33e_103982>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Finnish (http://www.transifex.com/sproctor/php-calendar/language/fi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Sinun täytyy olla kirjautuneena järjestelmänvalvojana."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Kääntää"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Versio"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Kalenteri"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Toiminto"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Muokkaa"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Poista"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Luo Kalenteri"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Kalenteri Lista"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "käyttäjänimi"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Luo Käyttäjä"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Käyttäjälista"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Tuo Lomake"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL palvelimen nimi"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL Tietokannan Nimi"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL Porttinumero"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Jätä tyhjäksi käyttääksesi vakioarvoa"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL Käyttäjänimi"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL Käyttäjän Salasana"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar Taulun Etuliite"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "asetukset"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Lähetä"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Lukeminen"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Kirjoitus"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Vain luku"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Muokkaa"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Järjestelmänvalvoja"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Käyttäjäoikeudet"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Käyttäjänimi"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Voi luoda vain luku muodossa"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Ei nimeä"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Ei yhtään"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Luo kategoria"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Kalenterikategoriat"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Nimi"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Tekstin Väri"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Taustan Väri"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Näkyvillä käyttäjäryhmälle"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Toiminnot"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Luo ryhmä"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Kalenteri Ryhmät"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Pääsy kielletty"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "ei asetettu"
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "asetuksia muokattu"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Kieli"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Aikavyöhyke"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Tervetuloa"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Asetukset"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Kirjaudu ulos"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Kirjaudu sisään"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Lisää merkintä"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Hae"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Näytä kuukausi"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Katso päivä"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Kalenterin Järjestelmänvalvoja"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Oletus"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Viikon aloitus"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "sunnuntai"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "maanantai"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "lauantai"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24 tunnin kello"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Kalenterin otsikko"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Aiheen maksimi pituus"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Tapahtumien näytön päivittäinen maksimi"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Julkiset oikeudet"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Ei voi lukea tai kirjoittaa tapahtumia"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Voi lukea mutta ei kirjoittaa tapahtumia"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Voi luoda muttei muokata tapahtumia"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Voi luoda ja muokata tapahtumia"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Oletus aikavyöhyke"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Oletus kieli"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Päivämäärän muoto"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Teema"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Kuukausi Päivä Vuosi"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Vuosi Kuukausi Päivä"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Päivä Kuukausi Vuosi"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Sinulla ei ole oikeuksia tehdä tätä:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Virhe"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Backtrace"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "jotain meni väärin"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Secret token mismatch. Mahdollinen pyynnön väärennös yritys."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Konfiguraation tyyppiä ei tueta"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Tunnistamaton jakso:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Ei kalenteria valittuna."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Vahvista poistaminen:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Vahvista"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Kiellä"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Sinulla ei ole oikeuksia poistaa kalenteria"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Poistettu kalenteri"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Kalenteria ei voitu poistaa"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Kalenteri luotu."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Kategoriaa ei ole valittuna."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Sinulla ei ole oikeuksia poistaa kategoriaa:"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Poistettu kategoria:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Kategoriaa ei voitu poistaa:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Kategoria Lomake"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Näkyvillä ryhmille"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Väriä ei ole määritelty."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "virheellinen väri."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Sinulla ei ole oikeuksia lisätä kategorioita kaikkiin kalentereihin."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Sinulla ei ole oikeuksia lisätä kategorioita tähän kalenteriin."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Sinulla ei ole oikeuksia muokata tätä kategoriaa"
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Muokattu kategoriaa:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Luotu kategoria:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Virhe lähetettäessä kategoriaa:"
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "otsikko"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "aika"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Selitys"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Poista valittu"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Tällä päivällä ei merkintöjä."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Virheelliset argumentit."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Sinulla ei ole oikeuksia lukea tätä tapahtumaa."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Kategoria"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Milloin"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Luotu:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Viimeksi muokattu:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Muokkaa Toistoa"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Poista Toisto"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Viime toisto"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Seuraava toisto"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Katso kaikki toistot"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Lisää toistuva"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "luona"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Poista"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Toistot"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "mistä"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Katso lisätapahtumia"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "jatkuu"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Ei tapahtumaa valittuna"
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Poistettu tapahtuma"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Poistetut tapahtumat"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Tapahtumaa ei voitu poistaa"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Tapahtumia ei voitu poistaa"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Sinulla ei ole oikeuksia poistaa tapahtumaa"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Sinulla ei ole oikeuksia poistaa tapahtumia"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Tapahtuma Lomake"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Otsikko"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Muuta tapahtuman päivämäärää ja aikaa"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Mistä?"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Minne?"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Ajan Tyyppi"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normaali"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Koko päivä"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Julkaistaan myöhemmin"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Toistot"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Ei koskaan"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Päivittäin"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Viikottain"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "kuukausittain"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Vuosittain"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Joka"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Kuinka useina päivinä toistetaan?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Kunnes"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Kuinka useina viikkoina toistetaan?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Kuinka useina kuukausina toistetaan?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Kuinka useina vuosina toistetaan?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Lisää merkintä"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Tuntematon Ajan Tyyppi"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "Tapahtuman ei voi pääättiä aikaisemmin kuin se alkaa"
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Sinulla ei ole oikeuksia kirjoittaa tähän kalenteriin."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Pakollinen kenttä \"joka päivä\" ei ole valittu."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "joka päivä pitää olla enemmän kuin 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Pakollinen kenttä \"joka viikko\" ei ole valittu."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "Joka viikko arvon täytyy olla isompi kuin yksi"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Pakollinen kenttä \"joka kuukausi\" ei ole valittu."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "Joka kuukausi arvon täytyy olla suurempi kuin 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Pakollinen kenttä \"joka vuosi\" ei ole valittu."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Virheellinen tapahtuma tyyppi"
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Muokattu tapahtuma:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Luotu tapahtuma:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Virhe lähetettäessä tapahtumaa."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "Vaadittu"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Lomakkeeseen ei voida lisätä siihen sopimattomia elementtejä"
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Päivämäärä"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "tammikuu"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "helmikuu"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "maaliskuu"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "huhtikuu"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "toukokuu"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "kesäkuu"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "heinäkuu"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "elokuu"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "syyskuu"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Oktober"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "marraskuu"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "joulukuu"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "tiistai"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "keskiviikko"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "torstai"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "perjantai"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Tammi"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "helmi"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "maalis"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Huhti"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "touko"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "kesä"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "heinä"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "elo"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "syys"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "loka"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "marras"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Aloituspäivä"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Nouseva"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Laskeva"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Ei ryhmää valittuna."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Sinulla ei ole oikeuksia poistaa ryhmää:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Poistettu ryhmä:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Ei voitu poistaa ryhmää:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Ryhmälomake"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Sinulla ei ole okeuksia lisätä globaalia ryhmää."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Sinulla ei ole oikeuksia lisätä ryhmää tähän kalenteriin."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Sinulla ei ole oikeuksia muokata tätä ryhmää."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Muokattu ryhmä:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Luotu ryhmä:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Virhe lähetettäessä ryhmää"
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Sinun täytyy olla järjestelmänvalvoja"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Virhe valittaessa tapahtumia tuonnin yhteydessä"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Luotu %s tapahtumia %s määrällä toistoja"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Kirjauduttu sisään."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Kirjautuminen epäonnistui"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Sinun täytyy sallia cookiet kirjautumista varten."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "salasana"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Kirjaudutaan ulos..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Toistot Lomake"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Lisää toistuva"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Ei voi lisätä toistoa."
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID ei ole asetettu"
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Muokattu toistoa:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Luotu toisto:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Virhe lähetettäessä toistoa."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Toistoa ei valittu"
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Poistettu toisto"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Poistettu toistot"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Toistoa ei voitu poistaa"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Toistoja ei voitu poistaa"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Sinulla ei ole oikeuksia poistaa toistoa."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Sinulla ei ole oikeutta poistaa toistoja."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Sinun täytyy olla kirjautuneena sisään."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Sinulla ei ole oikeuksia vaihtaa salasanaasi."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Vanha salasana on syötettävä."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Salasana jonka syötit ei täsmää vanhan salasanasi kanssa."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Sinun täytyy syöttää salasana"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Salasanat eivät täsmää"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Salasana päivitetty"
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Ei otsikkoa)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Virhe get_occurrences_by_date_range arvossa"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Virhe get_event_by_eid arvossa"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Tapahtumaa ei ole olemassa"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Virhe Error in get_event_by_oid arvossa"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Tapahtumaa ei ole olemassa vanhassa"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Virhe get_category arvossa"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Kategoriaa ei ole olemassa catid arvossa"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Virhe get_group arvossa"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Ryhmää ei ole olemassa gid arvolla"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Virhe get_groups arvossa"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Virhe get_user_groups arvossa"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Virhe get_categories arvossa"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Virhe get_visible_categories arvossa"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Virhe get_occurence_by_old arvossa"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Virhe get_occurences_by_eid arvossa"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Virhe tapahtuman poistossa"
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Virhe toiston poistossa"
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Virhe kalenterin poistossa"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Virhe kategorian poistossa."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Virhe ryhmän poistossa."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Virhe poistettaessa"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Käyttöoikeuksia ei voitu lukea."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Kalentereita ei voitu hakea."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Käyttäjää ei voitu hakea."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Käyttäjä haussa tapahtui virhe."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Virhe käyttäjän luonnissa."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Virhe luettaessa asetuksia"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Virhe luodessa asetuksia"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Virhe salasanan päivityksessä."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Virhe aikavyöhykkeen päivityksessä."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Virhe kielen päivityksessä."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Virhe tapahtuman luonnissa."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Virhe toiston luonnissa."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Virhe toiston muokkauksessa."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Virhe tapahtuman muokkauksessa."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Virhe kategorian luonnissa."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Virhe ryhmän luonnissa."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Virhe kategorian muokkauksessa."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Virhe ryhmän muokkauksessa."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Haun aikana tapahtui virhe"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Virhe päivitettäessä käyttöoikeuksia"
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Virhe kirjautumisen yhteydessä (login token)"
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Virhe kirjautumisessa (error adding login token)."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Virhe (Error updating login token)"
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Virhe (Error removing login tokens)"
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Virhe (error cleaning login tokens)"
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL kysely"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonyymi"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "tuntematon"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Ei otsikkoa)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "Tietokanta palautti virheellisen päivän."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr ""
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Virheellinen lajitteluvalinta"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Virheellinen järjestys valinta"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Mikään tapahtumia ei löydetty antamillasi hakuehdoilla."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Haun tulokset"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "aloitusaika"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Lause"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Järjestä:"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "järjestys"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Vaihda Salasana"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Vanha Salasana"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Uusi Salasana"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Vahvista Uusi Salasana"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Asetukset päivitetty."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Mahdollinen murtoyritys tililläsi."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Kuukausi on alueen ulkopuolella."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Virheellinen vuosi"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Käännetty \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Vahvista salasana"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Luo Pääkäyttäjä"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Sinun on syötettävä käyttäjänimi"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Käyttäjänimi on jo olemassa"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Sinun täytyy olla järjestelmänvalvoja poistaaksesi käyttäjiä"
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Käyttäjää ei ole valittu"
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Ei käyttäjiä"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Ei muutoksia tehtäväksi."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Päivitetty käyttäjä/käyttäjät:"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "jatka"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Ohjelmistovirhe"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Viesti:"
diff --git a/locale/fr/LC_MESSAGES/index.html b/locale/fr/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/fr/LC_MESSAGES/messages.po b/locale/fr/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..99f1bb7
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/messages.po
@@ -0,0 +1,1470 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Escure <escure.marion@gmail.com>, 2013
+# FabienD <facebook@fabiend.fr>, 2016
+# Froozeify, 2013-2014
+# Froozeify, 2013
+# Froozeify, 2014
+# Sean Proctor <sproctor@gmail.com>, 2022
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: French (http://www.transifex.com/sproctor/php-calendar/language/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Vous devez être connecté en tant qu’administrateur."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Calendriers"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Utilisateurs"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Importer"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Traduire"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Version"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Calendrier"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Action"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Editer"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Supprimer"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Créer un calendrier"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Liste des calendrier"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Nom d'utilisateur"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Groupes"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Éditer les Groupes"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Créer un utilisateur"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Liste des utilisateurs"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Formulaire d'Importation"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "Nom d'hôte MySQL"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "Base de données MySQL"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "Port MySQL numéro"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Laissez ce champ vide pour défaut"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "Utilisateur MySQL"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "Mot de passe MySQL"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "Préfixe des tables pour PHP-Calendar"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Importer un calendrier"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "Ce script a besoin d'un accès en lecture à votre répertoire de calendrier afin d'écrire les fichiers de traduction. Vous pouvez également exécuter translate.php à partir de la ligne de commande ou utiliser msgfmt ou tout autre outil gettext capable de générer des fichiers .mo à partir de fichiers .po."
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "Générer des Traductions"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "Configuration du Calendrier"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "Catégories"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Options"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Envoyer"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Lire"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Ecrire"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Lire uniquement"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Modifier"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Admin"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Permissions d'utilisateur"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Nom d'utilisateur"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Peut seulement créer et lire"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Pas de nom"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Aucune"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Créer une catégorie"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Catégories des calendriers"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Nom"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Couleur du texte"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Couleur d'arrière-plan"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Visible par le Groupe de l'Utilisateur"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Actions"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Créer un groupe"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Groupes des Calendriers"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Permission refusée"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "n'était pas défini."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Options mises à jour"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Langue"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Fuseau horaire"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Bienvenue"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Paramètres"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Déconnexion"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Connexion"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Ajouter un évènement"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Rechercher"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Vue par Mois"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Vue par Date"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Administration du Calendrier"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Par défaut"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Début de la semaine"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Dimanche"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Lundi"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Samedi"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24H"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Titre de l'agenda"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Longueur maximale du sujet"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Nombre Maximum d'Évènements  Affichés par Jour"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Permissions publiques"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Vous ne pouvez voir ou ajoutez d'évènement"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Vous pouvez voir mais pas ajouter d'évènement"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Vous ne pouvez pas créer mais vous pouvez modifiez les évènements"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Vous pouvez créer et modifiez les évènements"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Fuseau horaire par défaut"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Langue par défaut"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Format de la date"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Thème"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Mois Jour Année"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Année Mois Jour"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Jour Mois Année"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Vous n'avez pas la permission de faire ceci:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Erreur"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "trace"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Action invalide"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Incompatibilité de jeton secret. Possible tentative de falsification de la demande."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "config type non supporté"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "Le champs requis \"%s\" n'a pas été défini"
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "Format d'heure \"%s\" invalide : %s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Période non reconnue:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "Format de date \"%s\" invalide : %s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "date_format Invalide."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Pas de calendrier sélectionné."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Confirmer que vous voulez effacer:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Confirmer"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Refuser"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Vous n'avez pas la permission de supprimer le calendrier"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Calendrier supprimé"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Vous ne pouvez supprimer le calendrier"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Calendrier crée."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Pas de catégorie sélectionnée."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Vous n'avez pas la permission de supprimer la catégorie:"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Cat&eacute;gorie supprimée:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Impossible de supprimer la cat&eacute;gorie:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Formulaire Categorie"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Visible aux groupes"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "Sousmettre une Catégorie"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Couleur non spécifiée."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Couleur invalide."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Vous n'avez pas la permission d'ajouter des catégories à tous les calendriers"
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Vous n'avez pas la permission d'ajouter des catégories à ce calendrier"
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Vous n'avez pas la permission de modifier cette catégorie."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Cat&eacute;gorie modifi&eacute;e:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Cat&eacute;gorie cr&eacute;e:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Erreur en soumettant une catégorie."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Titre"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Heure"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Description"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Supprimer la Sélection"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Pas d'&Eacute;venements ce jour-là"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Arguments invalides."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Vous n'avez pas la permission de lire cet évènement."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "par"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Catégorie"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Quand"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Créé à:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Dernière modification à:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Modifier-Occurrence"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Effacer-Occurrence"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Occurrence précédente le"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Prochaine occurrence le"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Afficher Toutes les Occurrences"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Ajouter une occurrence"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "à"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Supprimer"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Occurrences"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "de"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "W"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Voir les Autres Évènements "
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "prolongé"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "Date invalide."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Pas de S&eacute;l&eacute;tion"
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Évènement supprimé"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Évènements supprimés"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Impossible de supprimer l'évènement"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Impossible de supprimer les évènements"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Vous n'avez pas la permission de supprimer l'évènement"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Vous n'avez pas la permission de supprimer les évènements"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Formulaire"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Suject"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Change la date et l'heure de l'évènement"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "De"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "&Agrave;"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Type d'Horaire"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normale"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Journ&eacute;e enti&egrave;re"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Annonc&eacute;"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "R&eacute;p&eacute;ter"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Jamais"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Quotidien"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Hebdo"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Mensuel"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Annuel"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Chaque"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "r&eacute;p&eacute;ter combien de jours ?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Jusqu'&agrave;"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "r&eacute;p&eacute;ter combien de semaines ?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "r&eacute;p&eacute;ter combien de mois ?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "R&eacute;p&eacute;ter combien d'ann&eacute;es ?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Envoyer"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "non reconnu"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "Un évènement ne peut avoir une fin antérieure à son début."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Vous n'avez pas la permission de supprimer le calendrier"
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "\"Jour\" n'est pas mis !"
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "jour doit &ecirc;tre au moins 1 !"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "\"Semaine\" n'est pas mis !"
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "semaine doit &ecirc;tre au moins 1 !"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "\"Mois\" n'est pas mis !"
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "Mois doit &ecirc;tre au mois 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "\"Annee\" n'est pas mis !"
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Invalide"
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Évènement modifi&eacute;:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Évènement créé:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Erreur d'envoi"
+
+#: includes/form.php:32
+msgid "required"
+msgstr "requis"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Erreur"
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Date"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Janvier"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "F&eacute;vrier"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Mars"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Avril"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Mai"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Juin"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Juillet"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Ao&ucirc;t"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Septembre"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Octobre"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Novembre"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "D&eacute;cembre"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Mardi"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Mercredi"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Jeudi"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Vendredi"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Jan"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "F&eacute;v"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mar"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Avr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Jun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Juil"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Ao&ucirc;t"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Sep"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Oct"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "D&eacute;c"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "De"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Tri croissant"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Tri décroissant"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Pas de groupe sélectionné."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Vous n'avez pas la permission de supprimer le groupe:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Groupe supprimé:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Vous ne pouvez supprimer le groupe:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Formulaire de Groupe"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "Soumettre un Groupe"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Vous n'avez pas la permission d'ajouter un groupe global."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Vous n'avez pas la permission d'ajouter un groupe à ce calendrier."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Vous n'avez pas la permission de modifier ce groupe."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Groupe modifi&eacute;:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Groupe cr&eacute;:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Erreur lors de la création du groupe."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Vous devez être \"admin\""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Erreur lors de la sélection d'évènements à l'import"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Connect&eacute;"
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Login non valable"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Les Cookies doivent &ecirc;tre activ&eacute;s"
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Mot de passe"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "d&eacute;connexion...."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID non défini."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Vous devez être connecté."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Vous n'avez pas de permission pour changer votre mot de passe."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Vous devez spécifier votre ancien mot de passe."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Le mot de passe indiqué ne correspond pas à votre ancien mot de passe."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Inscrivez un Mot de Pass"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "mauvais mot de pass"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Mot de passe mis à jour."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(sans titre)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "L'Évènement n'existe pas"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Erreur dans get_categories"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "La catégorie n'existe pas avec catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Erreur dans get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Le groupe n'existe pas avec gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Erreur dans get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Erreur dans get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Erreur (categorie) !"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Erreur dans get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Erreur dans get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Erreur dans get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Erreur lors de la suppression d'un évènement."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Erreur lors de la suppression d'un calendrier"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Erreur lors de la suppression d'une catégorie."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Erreur lors de la suppression d'un groupe."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Erreur lors de la suppression"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Impossible de lire les Permissions"
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Impossible d'acc&eacute;der aux agenda"
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Impossible d'acc&eacute;der à l'utilisateur."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Erreur (utilisateur) !"
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Erreur (creation de compte) !"
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Erreur (lecture des options) !"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Erreur (creation options) !"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Erreur de mise à jour du mot de passe."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Erreur de mise à jour du fuseau horaire."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Erreur de mise à jour de la langue."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "Erreur lors de l'ajout du groupe à l'utilisateur."
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "Erreur lors de la suppression d'un groupe de l'utilisateur."
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Erreur (creation d'un event) !"
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Erreur (modification d'un event) !"
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Erreur (creation categorie) !"
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Erreur lors de la création d'un groupe."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Erreur(modification de categorie) !"
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Erreur lors de la modification d'un groupe."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Erreur pendant la recherche !"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Erreur (permissions) !"
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "Requête SQL"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonyme"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "inconnu"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(pas de sujet)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "La base de données a renvoyé une date invalide."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "&agrave;"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "invalide"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "invalide"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Pas d'&eacute;venements pour la recherche"
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "R&eaute;sultats"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Date Heure"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Phrase"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Trier"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Ordre"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Changer Mot de Passe"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Ancien Mot de Passe"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Nouveau Mot de Passe"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Confirmer Mot de Passe"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Paramètres mis à jour."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Un pirate a peut être tenté d'accéder à votre compte."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Le mois est en dehors de la période."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Invalide"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Traduit \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Confirmer le mot de passe"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Mettre admin"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Vous devez inscrire un nom d'utilisateur"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Utilisateur existe d&eacute;j&agrave;"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "Utilisateur ajouté."
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Vous devez être administrateur pour supprimer des utilisateurs"
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Pas d'utilisateur"
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "Éditer les Groupes des Utilisateurs"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "Groupes mis à jour."
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Pas de Compte"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Pas de Changements "
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Utilisateur(s) mis à jour:"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "continuer"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Erreur du Programme"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Message:"
diff --git a/locale/fr/index.html b/locale/fr/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/gl/LC_MESSAGES/messages.po b/locale/gl/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..67543e4
--- /dev/null
+++ b/locale/gl/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Galician (http://www.transifex.com/sproctor/php-calendar/language/gl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: gl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Debes estar logueado como admin."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Eliminar"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Crear calendario"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Lista de calendarios"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Nome de usuaria"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Crear usuaria"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Lista de usuarias"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Opcións"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Enviar"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Ler"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Escribir"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Só-lectura"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Modificar"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Admin"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Permisos da usuaria"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Nome de usuaria"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Podes crear con permisos só de lectura"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Sen nome"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Ningún"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Crear categoría"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Categorías dos calendarios"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Nome"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Cor do texto"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Cor do fondo"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Denegouse o permiso"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr ""
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Opcións actualizadas"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Saír"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Entrar"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Engadir evento"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Buscar"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Ver mes"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Ver data"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Admin do calendario"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Comezo da semana"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Domingo"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Luns"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Sábado"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "Hora en 24 horas"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Título do calendario"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Lonxitude máxima do asunto"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Permisos públicos"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Non se pode ler nin escribir eventos"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Podese ler mais non escribir eventos"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Podense crear mais non modificar eventos"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Podense crear e modificar eventos"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Non tes permisos para facer iso:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Erro"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Acción non válida"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Non se seleccionou ningún calendario"
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Confirma que queres eliminar:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Confirmar"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Cancelar"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Creouse o calendario."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Non se seleccionou ningunha categría."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Non tes permisos para eliminar a categoría:"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Categoría eliminada:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Non poderías eliminar a categoría:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Formulario de categoría"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "NOn tes permisos para engadir categorías a todos os calendarios."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Non tes permisos para engadir categorías a este calendario."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Categoría modificada:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Categoría creada:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Erro enviando categoría."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Título"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Hora"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Descrición"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Eliminar selección"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Non hai eventos neste día."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Argumentos non válidos."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Non tes permisos para ler este evento."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Categoría"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Cando"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Ver todas as ocorrencias"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "a"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Non hai eventos seleccionados."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Formulario de eventos"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Asunto"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Desde"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Para"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Tipo de hora"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normal"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Todo o día"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Para anunciar"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Repeticións"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Nunca"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Diariamente"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Semanalmente"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Mensualmente"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Anualmente"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Repetir por cantos días?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Até"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Repetir por cantas semanas?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Repetir por cantos meses?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Repetir por cantos anos?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr ""
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Non se  recoñeceu o formato para a hora"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Non tes permisos para escribir neste calendario"
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "todos-os-días debe ser maior que 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "O campo obrigatorio \"todas-as-semanas\" non está activado."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "todas-as-semanas debe ser maior que 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "O campo obrigatorio \"todos-os-meses\" non está activado."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "todos-os-meses debe ser maior que 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "O campo obrigatorio \"todos-os-anos\" non está activado."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "O tipo de evento non é válido"
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Erro enviando o evento"
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Non se pode engadir un elemento que non é do formulario a un formulario."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Xaneiro"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Febreiro"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Marzo"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Abril"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Maio"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Xuño"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Xullo"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Agosto"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Setembro"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Outubro"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Novembro"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Decembro"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Martes"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Mércores"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Xoves"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Venres"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Xan"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mar"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Abr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Xun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Xul"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Ago"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Set"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Out"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Dec"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Data de comezo"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Ascendente"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Logueado."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Login incorrecto"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Tes que activar as cookies para loguearte."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Contrasinal"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Saíndo..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Debes especificar un contrasinal"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Os contrasinais non coinciden"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Sen título)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Erro en get_ocurrencees_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Erro en get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Non existe o evento"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Erro en get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Erro en get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Erro en get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Erro en get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Houbo un erro ao eliminar o evento."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Houbo un erro ao eliminar o calendario"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Houbo un erro ao eliminar a categoría"
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Houbo un erro ao eliminar"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Non se puideron ler os permisos."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Non se puideron obter os calendarios."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Non se puido obter a usuaria."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Houbo un erro ao obter a usuaria."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Houbo un erro ao crear a usuaria."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Houbo un erro ao ler as opcións"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Houbo un erro ao crear as opcións"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Houbo un erro ao crear o evento."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Houbo un erro ao modificar o evento."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Houbo un erro ao crear a categoría."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Houbo un erro ao modificar a categoría."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Houbo un erro na búsqueda"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Houbo un erro ao actualizar os permisos da usuaria."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "Consulta SQL"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anónimo"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "descoñecido"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Sen asunto)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "para"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Opción de ordeación non válida"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Opción de orde non válida"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Non se atoparon eventos que coincidan cos criterios de busca"
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Resultados da búsqueda"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Data e hora"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Frase"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Ordear por"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Orde"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "O ano non é válido"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Confirmar contrasinal"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Debes especificar un nome de usuaria"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "A usuaria xa existe."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Non se seleccionou ningunha usuaria."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Sen usuarias"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Non houbo cambios"
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/he/LC_MESSAGES/index.html b/locale/he/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/he/LC_MESSAGES/messages.po b/locale/he/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..09f9c9c
--- /dev/null
+++ b/locale/he/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Hebrew (http://www.transifex.com/sproctor/php-calendar/language/he/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: he\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "עליך להיות מחובר כמנהל."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "לוחות שנה"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "משתמשים"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "ייבא"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "תרגם"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "גרסא"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "לוח שנה"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "פעולה"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "ערוך"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "מחק"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "צור לוח שנה"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "רשימת לוחות שנה"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "שם משתמש"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "קבוצות"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "ערוך קבוצות"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "צור משתמש"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "רשימת משתמשים"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "ייבא טופס"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL Host Name"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL Database Name"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL Port Number"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "השאר ריק לברירת מחדל"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL User Name"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL User Password"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "רישא של טבלאות PHP-CALENDAR"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "ייבא לוח שנה"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "הסקריפט הזה צריך גישה לתיקיית calendar על מנת לכתוב את קבצי התרגום. אפשרות שניה היא להריץ את הקובץ translate.php מה-command line או להשתמש ב-msgfmt או כל כלי שיוצר קבצי .mo מקבצי .po"
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "צור תרגום"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "תצורת לוח שנה"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "קטגוריות"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "אפשרויות"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "שלח"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "קרא"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "כתוב"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "לקריאה בלבד"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "שנה"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "ניהול"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "הרשאות משתמשים"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "שם משתמש"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "יכול ליצור read-only"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "ללא שם"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "None"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "צור קטגוריה"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "קטגוריות לוח שנה"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "שם"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "צבע פונט"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "צבע רקע"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "גלוי לקבוצת המשתמשים"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "פעולות"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "צור קבוצה"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "קבוצות לוח שנה"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "אין הרשאה"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr " לא נקבע."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "אפשרויות מעודכנות"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "שפה"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "אזור-זמן"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "ברוך הבא"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "הגדרות"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "התנתק"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "התחבר"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "הוסף אירוע"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "חפש"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "צפה בחודש"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "צפה בתאריך"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "ניהול לוח השנה"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "ברירת מחדל"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "תחילת שבוע"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "ראשון"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "שני"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "שבת"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "זמן בתצורת 24 שעות"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "כותרת לוח השנה"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "אורך נושא מקסימלי"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "מספר אירועים מקסימלי ביום"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "הרשאות ציבוריות"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "לא יכול לכתוב או לצפות באירועים"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "יכול לצפות אך לא לכתוב אירועים"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "יכול ליצור אך לא לשנות אירועים"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "יכול ליצור ולשנות אירועים"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "אזור-זמן ברירת מחדל"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "שפת ברירת מחדל"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "פורמט התאריך"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "תבנית עיצוב"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "חודש יום שנה"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "שנה חודש יום"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "יום חודש שנה"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "אין לך הרשאות לבצע: "
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "שגיאה"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "מעקב לאחור"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "פעולה לא חוקית"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "אי התאמה בקוד סודי. ייתכן נסיון זיוף."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "סוג הקונפיגורציה לא נתמך"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "השדה המבוקש \"%s\" לא נקבע."
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "מעוות \"%s\" זמן: \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "תקופה לא מזוהה: "
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "מעוות \"%s\" תאריך: \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "פורמט התאריך שגוי."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "לא נבחר לוח שנה."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "אשר שברצונך למחוק:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "אישור"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "ביטול"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "אין לך הרשאות למחוק לוח שנה"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "לוח שנה נמחק"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "לא יכול למחוק לוח שנה"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "לוח השנה נוצר."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "לא נבחרה קטגוריה."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "אין לך הרשאות למחוק קטגוריה: "
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "קטגוריה נמחקה: "
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "לא יכול למחוק קטגוריה: "
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "טופס קטגוריה"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "גלוי עבור קבוצות"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "שלח קטגוריה"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "צבע לא הוגדר."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "צבע שגוי."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "אין לך הרשאות להוסיף קטגוריות לכל לוחות השנה."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "אין לך הרשאות להוסיף קטגוריות ללוח השנה הזה."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "אין לך הרשאות לשנות את הקטגוריה הזו."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "קטגוריה שונתה: "
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "קטגוריה נוצרה: "
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "שגיאה בשליחת הקטגוריה."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "כותרת"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "זמן"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "תיאור"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "מחק את הנבחרים"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "אין אירועים ביום זה."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "פרמטרים שגויים."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "אין לך הרשאות לקרוא אירוע זה."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "על ידי"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "קטגוריה"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "מתי"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "נוצר על ידי: "
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "שונה לאחרונה: "
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "שנה מופע"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "מחק מופע"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "מופע אחרון ב"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "מופע הבא ב"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "צפה בכל המופעים"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "הוסף מופע"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "ב"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "מחק"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "מופעים"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "החל מ"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "שבוע"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "צפה באירועים נוספים"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "המשך"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "תאריך שגוי."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "לא נבחר אירוע."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "אירוע נמחק"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "אירועים נמחקו"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "לא יכול למחוק אירוע"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "לא יכול למחוק אירועים"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "אין לך הרשאות למחוק אירוע"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "אין לך הרשאות למחוק אירועים"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "טופס יצירת אירוע"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "נושא"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "שנה תאריך ושעה של אירוע"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "החל מ"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "עד"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "סוג הזמן"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "רגיל"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "יום שלם"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "..."
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "חזרות"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "אף פעם"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "יומי"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "שבועי"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "חודשי"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "שנתי"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "כל"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "חזרה כל כמה ימים?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "עד"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "חזרה כל כמה שבועות?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "חזרה כל כמה חודשים?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "חזרה כל כמה שנים?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "שלח אירוע"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "סוג זמן לא מזוהה."
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "אירוע לא יכול להסתיים לפני שהתחיל."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "אין לך הרשאה לכתוב ללוח השנה הזה."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "שדה החובה \"כל יום\" לא הוגדר."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "כל יום חייב להיות גדול מ-1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "שדה החובה \"כל שבוע\" לא הוגדר."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "כל שבוע חייב להיות גדול מ-1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "שדה החובה \"כל חודש\" לא הוגדר."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "כל חודש חייב להיות גדול מ-1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "שדה החובה \"כל שנה\" לא הוגדר."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "סוג אירוע שגוי."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "האירוע שונה: "
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "האירוע נוצר: "
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "שגיאה בשליחת האירוע."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "חובה"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "לא ניתן להוסיף אלמנט שאינו מתאים לטופס."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "תאריך"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "ינואר"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "פבואר"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "מרץ"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "אפריל"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "מאי"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "יוני"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "יולי"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "אוגוסט"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "ספטמבר"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "אוקטובר"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "נובמבר"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "דצמבר"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "שלישי"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "רביעי"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "חמישי"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "שישי"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "ינ'"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "פב'"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "מרץ"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "אפ'"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "יונ'"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "יול'"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "אוג'"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "ספ'"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "אוק'"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "נוב'"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "דצ'"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "תאריך התחלה"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "סדר עולה"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "סדר יורד"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "לא נבחרה קבוצה."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "אין לך הרשאות למחוק קבוצה: "
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "נמחקה קבוצה: "
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "לא יכול למחוק קבוצה: "
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "טופס יצירת קבוצה"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "שלח קבוצה"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "אין לך הרשאות להוסיף קבוצה גלובלית."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "אין לך הרשאות להוסיף קבוצה ללוח השנה הזה."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "אין לך הרשאות לשנות קבוצה זו."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "קבוצה שונתה: "
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "קבוצה נוצרה: "
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "שגיאה בשליחת קבוצה."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "צריך להיות מנהל"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "שגיאה בבחירת האירועים בייבוא"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "נוצרו %s אירועים עם %s מופעים"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "התחברת."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "מצטערים, שם משתמש או ססמא שגויים"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "עליך להשתמש ב-cookies על מנת להתחבר."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "ססמא"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "מתנתק..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "טופס יצירת מופע"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "שלח מופע"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "לא יכול ליצור מופע."
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID לא הוגדר."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "מופע שונה: "
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "מופע נוצר: "
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "שגיאה בשליחת המופע."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "לא נבחר מופע."
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "מופע נמחק"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "מופעים נמחקו"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "לא ניתן למחוק מופע"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "לא ניתן למחוק מופעים"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "אין לך הרשאות למחוק את המופע."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "אין לך הרשאות למחוק את המופעים."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "עליך להיות מחובר."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "אין לך הרשאה לשנות את ססמתך."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "עליך לציין את ססמתך הישנה."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "הססמא שהקלדת לא מתאימה לססמתך הישנה."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "עליך לציין ססמא"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "הססמאות שלך לא התאימו"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "ססמא עודכנה."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(ללא כותרת)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "שגיאה ב-get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "שגיאה ב-get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "אירוע לא קיים"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "שגיאה ב-get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "אירוע לא קיים עם oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "שגיאה ב-get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "קטגוריה לא קיימת עם catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "שגיאה ב-get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "קבוצה לא קיימת עם gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "שגיאה ב-get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "שגיאה ב-get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "שגיאה ב-get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "שגיאה ב-get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "שגיאה ב-get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "שגיאה ב-get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "שגיאה בעת מחיקת אירוע."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "שגיאה בעת מחיקת מופע."
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "שגיאה בעת מחיקת לוח שנה"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "שגיאה בעת מחיקת קטגוריה."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "שגיאה בעת מחיקת קבוצה."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "שגיאה בעת מחיקת "
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "לא ניתן לקרוא הרשאות."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "לא ניתן להשיג לוחות שנה."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "ששלא ניתן להשיג משתמש."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "שגיאה בקבלת משתמש."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "שגיאה ביצירת משתמש."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "שגיאה בקריאת אפשרויות"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "שגיאה ביצירת אפשרויות"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "שגיאה בעדכון ססמא."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "שגיאה בעדכון אזור-זמן."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "שגיאה בעדכון שפה."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "שגיאה בהוספת קבוצה למשתמש."
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "שגיאה במחיקת קבוצה ממשתמש."
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "שגיאה ביצירת אירוע."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "שגיאה ביצירת מופע."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "שגיאה בשינוי מופע."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "שגיאה בשינוי אירוע."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "שגיאה ביצירת קטגוריה."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "שגיאה ביצירת קבוצה."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "שגיאה בשינוי קטגוריה."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "שגיאה בשינוי קבוצה."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "שגיאה בעת חיפוש"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "שגיאה בעדכון הרשאות משתמש."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "שגיאה בקבלת token התחברות."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "שגיאה בהוספת token התחברות."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "שגיאה בעדכון token התחברות."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "שגיאה במחיקת login tokens."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "שגיאה בניקוי login tokens."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "שאילתת SQL"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "אנונימי"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "לא ידוע"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(ללא נושא)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "מסד נתונים החזיר תאריך שגוי."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "אל"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "אפשרות מיון שגויה"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "אפשרות סידור שגויה"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "אין אירועים שמתאימים לקריטריון החיפוש שלך."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "תוצאות חיפוש"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "תאריך"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "ביטוי"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "מיין על פי"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "סדר"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "שנה ססמא"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "ססמא ישנה"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "ססמא חדשה"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "אשר ססמא חדשה"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "הגדרות עודכנו."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "ייתכן נסיון פריצה לחשבונך."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "חודש מחוץ לתחום."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "שנה שגויה"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "תורגם \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "אשר ססמא"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "הפוך למנהל"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "עליך לציין שם משתמש"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "שם משתמש קיים במערכת."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "משתמש הוסף למערכת."
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "עליך להיות מנהל על מנת למחוק משתמשים."
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "לא נבחר משתמש."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "ערוך קבוצות משתמשים"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "קבוצות עודכנו."
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "אין משתמשים"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "לא התבצעו שינויים."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "משתמש(ים) שעודכנ(ו):"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "המשך"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "שגיאת תוכנה"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "הודעה:"
diff --git a/locale/he/index.html b/locale/he/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/hu/LC_MESSAGES/messages.po b/locale/hu/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..def1ea5
--- /dev/null
+++ b/locale/hu/LC_MESSAGES/messages.po
@@ -0,0 +1,1465 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Balázs Úr, 2011
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Hungarian (http://www.transifex.com/sproctor/php-calendar/language/hu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Rendszergazdaként kell bejelentkeznie."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Törlés"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Naptár létrehozása"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Naptárlista"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Felhasználónév"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Felhasználó létrehozása"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Felhasználólista"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Beállítások"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Elküldés"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Olvasás"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Írás"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Csak olvasható"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Módosítás"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Rendszergazda"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Felhasználói jogosultságok"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Felhasználónév"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Létrehozhat csak olvashatót"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Névtelen"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Nincs"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Kategória létrehozása"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Naptárkategóriák"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Név"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Szövegszín"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Háttérszín"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Hozzáférés megtagadva"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr " nincs beállítva."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Frissített beállítások"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Kijelentkezés"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Bejelentkezés"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Esemény hozzáadása"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Keresés"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Havi nézet"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Napi nézet"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Naptár rendszergazda"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Hét kezdete"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Vasárnap"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Hétfő"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Szombat"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24 órás idő"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Naptár címe"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Maximális tárgyhossz"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Nyilvános jogosultságok"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Nem olvashat és nem írhat eseményeket"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Olvashat, de nem írhat eseményeket"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Létrehozhat, de nem módosíthat eseményeket"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Létrehozhat és módosíthat eseményeket"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Nincs jogosultsága ezt tenni: "
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Hiba"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Visszakövetés"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Érvénytelen művelet"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Nem támogatott beállítótípus"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Nincs naptár kiválasztva."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Erősítse meg törlési szándékát:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Megerősítés"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Tiltás"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Naptár létrehozva."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Nincs kategória kiválasztva."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Nincs jogosultsága a kategória törléséhez: "
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Eltávolított kategória: "
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Nem távolítható el a kategória: "
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Kategória űrlap"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Nincs jogosultsága kategóriák hozzáadására az összes naptárhoz."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Nincs jogosultsága kategóriák hozzáadására ehhez a naptárhoz."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Módosított kategória: "
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Létrehozott kategória: "
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Hiba a kategória elküldésekor."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Cím"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Idő"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Leírás"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "A kijelölt törlése"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Nincsenek események ezen a napon."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Érvénytelen argumentumok."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Nincs jogosultsága ennek az eseménynek az olvasásához."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Kategória"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Ekkor:"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Minden előfordulás megtekintése"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "ettől:"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Nincs esemény kiválasztva."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Esemény űrlap"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Tárgy"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Ettől"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Eddig"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Időtípus"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normál"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Egész nap"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Bejelenteni"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Ismétlődés"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Soha"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Naponta"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Hetente"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Havonta"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Évente"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Minden"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Minden hányadik napon ismétlődjön?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Eddig"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Minden hányadik héten ismétlődjön?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Minden hányadik hónapban ismétlődjön?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Minden hányadik évben ismétlődjön?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr ""
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Kategorizálatlan időtípus."
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Nincs írási jogosultsága ehhez a naptárhoz."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "A kötelező „every-day” mező nincs beállítva."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "Az every-day értékének nagyobbnak kell lennie 1-nél"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "A kötelező „every-week” mező nincs beállítva."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "Az every-week értékének nagyobbnak kell lennie 1-nél"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "A kötelező „every-month” mező nincs beállítva."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "Az every-month értékének nagyobbnak kell lennie 1-nél"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "A kötelező „every-year” mező nincs beállítva."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Érvénytelen eseménytípus."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Hiba az esemény elküldésekor."
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Nem adható űrlapelemen kívül más az űrlaphoz."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Január"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Február"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Március"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Április"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Május"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Június"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Július"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Augusztus"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Szeptember"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Október"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "November"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "December"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Kedd"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Szerda"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Csütörtök"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Péntek"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Jan"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Már"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Ápr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Jún"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Júl"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Aug"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Sze"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Okt"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Dec"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Kezdő dátum"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Növekvő"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Bejelentkezve."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Elnézést, érvénytelen bejelentkezés."
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Engedélyeznie kell a sütiket a belépéshez."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Jelszó"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Kijelentkezés..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Meg kell adnia egy jelszót"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "A jelszavak nem egyeztek"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Nincs cím)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Hiba a get_occurrences_by_date_range függvényben"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Hiba a get_event_by_eid függvényben"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Az esemény nem létezik"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Hiba a get_category függvényben"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Hiba a get_categories függvényben"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Hiba a get_occurrence_by_oid függvényben"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Hiba a get_occurrence_by_eid függvényben"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Hiba történt az esemény eltávolításakor."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Hiba történt a naptár eltávolításakor."
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Hiba történt a kategória eltávolításakor."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Hiba történt az eltávolításkor"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Nem olvashatók a jogosultságok."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Nem sikerült elérni a naptárakat."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Nem sikerült elérni a felhasználót."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Hiba a felhasználó elérésekor."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Hiba a felhasználó létrehozásakor."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Hiba a beállítások olvasásakor"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Hiba a beállítások létrehozásakor"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Hiba az esemény létrehozásakor."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Hiba az esemény módosításakor."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Hiba a kategória létrehozásakor."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Hiba a kategória módosításakor."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Hiba a keresés során"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Hiba a felhasználó jogosultságainak frissítésekor."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL lekérdezés"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "névtelen"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "ismeretlen"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Nincs tárgy)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "eddig:"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Érvénytelen rendezési beállítás"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Érvénytelen sorrend beállítás"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "A keresési kritériumára nem illeszkedik egyetlen esemény sem."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "A keresés eredménye"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Dátum és idő"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Kifejezés"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Rendezés"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Sorrend"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Érvénytelen év"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Jelszó megerősítése"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Rendszergazda létrehozása"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Meg kell adnia egy felhasználónevet"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "A felhasználó már létezik."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Nincs felhasználó kiválasztva."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Nincsenek felhasználók"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Nincsenek végrehajtható változtatások."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/index.html b/locale/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/it/LC_MESSAGES/index.html b/locale/it/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/it/LC_MESSAGES/messages.po b/locale/it/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..fc4cedf
--- /dev/null
+++ b/locale/it/LC_MESSAGES/messages.po
@@ -0,0 +1,1468 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Balacche4 <marcowork10@gmail.com>, 2014
+# Balacche4 <marcowork10@gmail.com>, 2014
+# Stefano <sabas88@gmail.com>, 2013
+# Stefano <sabas88@gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Italian (http://www.transifex.com/sproctor/php-calendar/language/it/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: it\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Devi essere autenticato come amministratore."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Calendari"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Utenti"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Importa"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Traduci"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Versione"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Calendario"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Azione"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Modifica"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Cancella"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Crea Calendario"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Elenco Calendari"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Nome utente"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Gruppi"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Modifica Gruppi"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Crea utente"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Elenco Utenti"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Form di importazione"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "Nome host MySQL"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "Nome del database MySQL"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "Numero della porta MySQL"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Lascia in bianco per il default"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "Nome utente MySQL"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "Password utente MySQL"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "Prefisso delle tabelle di PHP-Calendar"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Importa Calendario"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "Genera Traduzione"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "Configurazione Calendario"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "Categorie"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Opzioni"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Invia"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Lettura"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Scrittura"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Sola lettura"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Modifica"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Amministratore"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Permessi utente"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Nome utente"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Può creare in sola lettura"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Nessun nome"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Nessuno"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Crea categoria"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Categorie dei Calendari"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Nome"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Colore del testo"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Colore di sfondo"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Visibile al gruppo utenti"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Azioni"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Crea gruppo"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Gruppi Calendario"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Permesso negato"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "non è stato impostato."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Opzioni aggiornate"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Lingua"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Fuso orario"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Benvenuto"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Impostazioni"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Log out"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Log in"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Aggiungi evento"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Ricerca"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Vedi Mese"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Vedi giorno"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Amministrazione Calendari"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Default"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Inizio della settimana"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Domenica"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Lunedi"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Sabato"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "Orario a 24 ore"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Titolo del calendario"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Massima lunghezza del soggetto"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Numero massimo di eventi mostrati giornalmente"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Permessi pubblici"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Non può ne' leggere ne' scrivere eventi"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Può leggere ma non può scrivere eventi"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Può creare ma non modificare gli eventi"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Può creare e modificare eventi"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Fuso orario predefinito"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Lingua predefinita"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Formato della data"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Tema"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Mese Giorno Anno"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Anno Mese Giorno"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Giorno Mese Anno"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Non possiedi i permessi per farlo:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Errore"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Backtrace"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Azione non valida"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Token di sicurezza non corrispondente. Possibile tentativo di contraffazione della richiesta."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Tipo di configurazione non supportato"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Periodo non riconosciuto:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "Invalido date_format."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Nessun calendario selezionato."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Conferma che vuoi cancellare:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Conferma"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Nega"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Non possiedi i permessi per rimuovere il calendari"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Rimosso il calendario"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Non ho potuto rimuovere il calendari"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Calendario creato."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Nessuna categoria selezionata."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Non possiedi i permessi per cancellare la categoria:"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Rimossa la categoria:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Non ho potuto rimuovere la categoria:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Form Categoria"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Visibile ai gruppi"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Colore non specificato."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Colore non valido."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Non possiedi i permessi per aggiungere categorie a tutti i calendari."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Non possiedi i permessi per aggiungere categorie a questo calendario"
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Non possiedi i permessi per modificare questa categoria."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Categoria modificata:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Categoria creata:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Errore nell'invio della categoria."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Titolo"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Orario"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Descrizione"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Cancella i selezionati"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Nessun evento in questo giorno."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Argomenti non validi."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Non possiedi i permessi per leggere questo evento."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "di"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Categoria"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Quando"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Creazione:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Ultima modifica:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Modifica occorrenza"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Rimuovi occorrenza"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Occorrenza precedente il"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Prossima occorrenza il"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Vedi tutte le occorrenze"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Aggiungi occorrenza"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "alle"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Rimuovi"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Occorrenze"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "da"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Vedi altri eventi"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "continuato"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Nessun evento selezionato."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Evento rimosso"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Eventi rimossi"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Non ho potuto rimuovere l'evento"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Non ho potuto rimuovere gli eventi"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Non possiedi i permessi per rimuovere l'evento"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Non possiedi i permessi per rimuovere gli eventi"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Form Evento"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Soggetto"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Cambia la date e l'orario dell'evento"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Da"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "A"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Tipologia orario"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normale"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Tutto il giorno"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Da determinare"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Ripetizioni"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Mai"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Giornalmente"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Settimanalmente"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Mensilmente"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Annualmente"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Ogni"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Ogni quanti giorni ripetere?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Fino a"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Ogni quante settimane ripetere?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Ogni quanti mesi ripetere?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Ogni quanti anni ripetere?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Invia evento"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Formato dell'orario non riconosciuto."
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "Un evento non può avere una fine in anticipo rispetto all'inizio."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Non possiedi i permessi per scrivere su questo calendario."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Il campo richiesto \"every-day\" non è impostato."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "every-day deve essere maggiore di 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Il campo richiesto \"every-week\" non è impostato."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "every-week deve essere maggiore di 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Il campo richiesto \"every-month\" non è impostato."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "every-month deve essere maggiore di 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Il campo richiesto \"every-year\" non è impostato."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Tipo di evento non valido."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Evento modificato:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Evento creato:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Errore nell'invio dell'evento."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "richiesto"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Non posso aggiungere un elemento che non rappresenta un form ad un form."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Data"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Gennaio"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Febbraio"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Marzo"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Aprile"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Maggio"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Giugno"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Luglio"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Agosto"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Settembre"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Ottobre"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Novembre"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Dicembre"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Martedi"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Mercoledi"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Giovedi"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Venerdi"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Gen"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mar"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Apr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Giu"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Lug"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Ago"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Set"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Ott"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Dic"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Data di inizio"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Ascendente"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Discendente"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Nessun gruppo selezionato."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Non possiedi i permessi per cancellare il gruppo:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "RImosso il gruppo:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Non ho potuto rimuovere il gruppo:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Form Gruppo"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Non possiedi i permessi per aggiungere un gruppo globale."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Non possiedi i permessi per aggiungere un gruppo a questo calendario."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Non possiedi i permessi per modificare questo gruppo."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Gruppo modificato:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Gruppo creato:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Errore nell'invio del gruppo."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Devi essere amministratore"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Errore nella selezione dell'evento durante l'importazione"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Creati %s eventi con %s occorrenze"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Autenticato."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Scusa, login non valido"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Devi avere i cookie abilitati per autenticarti."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Password"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Uscendo..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Form Occorrenzaq"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Invia Occorrenza"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Non posso creare l'occorrenza."
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID non impostato."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Occorrenza modificata:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Occorrenza creata:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Errore nell'invio dell'occorrenza."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Nessuna occorrenza selezionata."
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Occorrenza rimossa"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Occorrenze rimosse"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Non ho potuto rimuovere l'occorrenza"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Non ho potuto rimuovere le occorrenze"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Non possiedi i permessi per rimuovere l'occorrenza."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Non possiedi i permessi per rimuovere le occorrenze."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Devi essere autenticato."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Non possiedi i permessi per cambiare la tua password."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Devi specificare la tua vecchia password."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "La password che hai inserito non corrisponde alla tua vecchia password."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Devi specificare una password"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Le tue password non corrispondono"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Password aggiornata."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Nessun titolo)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Errore in get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Errore in get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "L'evento non esiste"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Errore in get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "L'evento non esiste con oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Errore in get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "La categoria non esiste con catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Errore in get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Il gruppo non esiste con gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Errore in get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Errore in get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Errore in get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Errore in get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Errore in get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Errore in get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Errore nella rimozione di un evento."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Errore nella rimozione di una occorrenza."
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Errore nella rimozione di un calendario"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Errore nella rimozione della categoria."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Errore nella rimozione del gruppo."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Errore nella rimozione"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Non ho potuto leggere i permessi."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Non ho potuto recuperare i calendari"
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Non ho potuto recuperare l'utente"
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Errore nel recuperare l'utente."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Errore nella creazione dell'utente."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Errore nella lettura delle opzioni"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Errore nel creare le opzioni"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Errore nell'aggiornamento della password."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Errore nell'aggiornamento del fuso orario."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Errore nell'aggiornamento della lingua."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Errore nella creazione dell'evento."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Errore nella creazione dell'occorrenza."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Errore nella modifica dell'occorrenza."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Errore nella modifica dell'evento."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Errore nella creazione della categoria."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Errore nella creazione del gruppo."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Errore nella modifica della categoria."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Errore nella modifica del gruppo."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Errore durante la ricerca"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Errore nell'aggiornamento dei permessi utenti."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Errore nel recupero del token di login."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Errore nell'aggiunta del token di login."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Errore nell'aggiornamento del token di login."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Errore nella rimozione dei token di login."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Errore nella pulitura dei token di login."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "Query SQL"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonimo"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "sconosciuto"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Nessun soggetto)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "Il database ha ritornato una data non valida."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "N/D"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "a"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Opzione di classificazione non valida"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Opzione di ordinamento non valida"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Nessun evento corrisponde ai tuoi criteri di ricerca."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Risultati di ricerca"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Data Orari"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Frase"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Ordina per"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Ordinamento"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Cambia password"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Vecchia password"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Nuova password"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Conferma nuova password"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Impostazioni aggiornate."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Probabile tentativo di hacking sul tuo account."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Il mese è fuori dall'intervallo."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Anno non valido"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Tradotto \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Conferma Password"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Rendi amministratore"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Devi specificare un nome utente"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "L'utente esiste già."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Devi essere amministratore per poter cancellare gli utenti."
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Nessun utente selezionato."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Nessun utente"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Nessun cambiamento da effettuare."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Utenti aggiornati:"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "continua"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Errore del Software"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Messaggio:"
diff --git a/locale/it/index.html b/locale/it/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/ja/LC_MESSAGES/index.html b/locale/ja/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/ja/LC_MESSAGES/messages.po b/locale/ja/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..7684207
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Japanese (http://www.transifex.com/sproctor/php-calendar/language/ja/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr ""
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "削除"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr ""
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr ""
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "ユーザー名"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr ""
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr ""
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "オプション"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "送信"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr ""
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr ""
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr ""
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "修正"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr ""
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr ""
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr ""
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr ""
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr ""
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr ""
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr ""
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr ""
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr ""
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "権限で拒否されました"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr ""
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "オプションをアップデートしました"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "ログアウト"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "ログイン"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "イベント追加"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "検索"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr ""
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "1 日表示"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr ""
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr ""
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "日曜日"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "月曜日"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "土曜日"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr ""
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "カレンダーの題名"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr ""
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr ""
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr ""
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr ""
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr ""
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr ""
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr ""
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr ""
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "無効な操作"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr ""
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr ""
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr ""
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr ""
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr ""
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr ""
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr ""
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr ""
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr ""
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr ""
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "題名"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "時間"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "説明"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "選択を削除"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "この日はイベントがありません。"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr ""
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr ""
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr ""
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr ""
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr ""
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr ""
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "件名"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "差出人"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "宛先"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr ""
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "通常"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "全日"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr ""
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr ""
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "毎週"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "毎月"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr ""
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr ""
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "イベント送信"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr ""
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "1 月"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "2 月"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "3 月"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "4 月"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "5 月"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "6 月"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "7 月"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "8 月"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "9 月"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "10 月"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "11 月"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "12 月"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "火曜日"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "水曜日"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "木曜日"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "金曜日"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "1 月"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "2 月"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "3 月"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "4 月"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "5 月"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "6 月"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "7 月"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "8 月"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "9 月"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "10 月"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "11 月"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "開始日"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "昇順"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr ""
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "すみませんが無効なログインです"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "パスワード"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr ""
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr ""
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr ""
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr ""
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "検索結果"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "日時"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "フレーズ"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "ソート基準"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "ソート方向"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr ""
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr ""
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr ""
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr ""
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr ""
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr ""
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/ja/index.html b/locale/ja/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/ko_KR/LC_MESSAGES/messages.po b/locale/ko_KR/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..f6b383c
--- /dev/null
+++ b/locale/ko_KR/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Korean (Korea) (http://www.transifex.com/sproctor/php-calendar/language/ko_KR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ko_KR\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "관리자 계정으로 로그인하셔야 합니다"
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "번역"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "버전"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "캘린더"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "편집"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "삭제"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "캘린더 생성"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "캘린더 리스트"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "사용자 이름"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "사용자 생성"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "사용자 목록"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "폼 가져오기"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL 호스트 네임"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL 데이터베이스 네임"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL 포트 넘버"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "기본으로 비워둠"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL 유저 네임"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL 유저 패스워드"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar 테이블 접두어"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "옵션"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "확인"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "읽기"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "쓰기"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "읽기만 가능"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "수정"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "관리자"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "사용자 권한"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "사용자 이름"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "읽기전용 생성 권한"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr ""
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "카테고리 생성"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "캘린더 카테고리"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "이름"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "텍스트 색상"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "배경 색상"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "사용자 그룹에 공개"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "그룹 생성"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "캘린더 그룹"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "권한 거부됨"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "세팅되었습니다"
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "옵션이 업데이트되었습니다"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "언어"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "시간대"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "환영합니다"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "세팅"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "로그아웃"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "로그인"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "이벤트 추가"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "검색"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "월별 보기"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "일별 보기"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "캘린더 관리자"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "기본 설정"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "주 시작일"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "일요일"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "월요일"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "토요일"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24시간표기"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "캘린더 타이틀"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "제목 글자수 제한"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "일별 표시 이벤트수 제한"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "공공 권한"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "이벤트를 읽거나 쓸 수 없습니다"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "이벤트를 읽을 수 있으나 쓸 수 없습니다"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "이벤트를 생성할 수 있으나 수정할 수 없습니다"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "이벤트를 생성하고 수정할 수 있습니다"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "기본 시간대"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "기본 언어"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "데이터 포맷"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "테마"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "월-일-년도"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "년도-월-일"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "일-월-년도"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "권한이 없습니다"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "에러"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "잘못된 액션입니다"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "지원하지 않는 config type 입니다"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "인식할 수 없는 기간"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "캘린더를 선택하지 않았습니다"
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "삭제하려면 확인을 클릭하세요"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "확인"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "취소"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "캘린더를 삭제할 권한이 없습니다"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "캘린더 삭제"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "캘린더를 삭제할 수 없습니다"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "생성된 캘린더"
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "카테고리가 선택되지 않았습니다"
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "카테고리를 삭제할 권한이 없습니다"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "삭제된 카테고리입니다"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "카테고리를 삭제할 수 없습니다"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "카테고리 폼"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "그룹에 공개"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "색상을 지정하지 않았습니다"
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "잘못된 색상입니다"
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "카테고리를 모든 캘린더에 추가할 권한이 없습니다"
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "카테고리를 이 캘린더에 추가할 권한이 없습니다"
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "이 카테고리를 수정할 권한이 없습니다"
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "수정된 카테고리"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "생성된 카테고리"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "오류 제출된 카테고리 "
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "타이틀"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "시간"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "설명"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "선택된 항목 삭제"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "해당 일에 이벤트가 없습니다"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "잘못된 변수"
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "이 이벤트를 읽을 권한이 없습니다"
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "에 의해"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "카테고리"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "시간"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "에 생성"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "에 마지막으로 수정됨"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "일정 수정"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "일정 삭제"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "이전 일정"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "다음 일정"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "모든 일정 보기"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "일정 추가"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "에"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "삭제"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "일정"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "부터"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "추가 이벤트 보기"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "계속됨"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "이벤트가 선택되지 않았습니다"
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "제거된 이벤트"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "제거된 이벤트"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "이벤트를 제거할 수 없습니다"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "이벤트를 제거할 수 없습니다"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "이벤트를 제거할 권한이 없습니다"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "이벤트를 제거할 권한이 없습니다"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "의 이벤트"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "제목"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "이벤트 시간 변경"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "부터"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "까지"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "시간제"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "일반"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "종일"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "추후 공지"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "반복"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "반복하지 않음"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "일간"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "주간"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "월간"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "연간"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "모든"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "며칠간 반복하시겠습니까?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "까지"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "몇주간 반복하시겠습니까?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "몇달간 반복하시겠습니까?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "몇년간 반복하시겠습니까?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "이벤트 승인"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "인식할 수 없는 시간제입니다"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "이벤트의 종료시는 시작시보다 빠를 수 없습니다"
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "이 캘린더에 일정을 추가할 권한이 없습니다"
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "필수 항목 \"every-day\" 가 설정되지 않았습니다"
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "every-day 는 1보다 큰 값으로 설정되어야 합니다"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "필수 항목 \"every-week\" 가 설정되지 않았습니다"
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "every-week 는 1보다 큰 값으로 설정되어야 합니다"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "필수 항목 \"every-month\" 가 설정되지 않았습니다"
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "every-month 는 1보다 큰 값으로 설정되어야 합니다"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "필수 항목 \"every-year\" 가 설정되지 않았습니다"
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "잘못된 이벤트 타입"
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "수정된 이벤트: "
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "생성된 이벤트: "
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "오류 제출된 이벤트"
+
+#: includes/form.php:32
+msgid "required"
+msgstr "필수"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "폼이 아닌 요소를 폼에 추가할 수 없습니다"
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "날짜"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "1월"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "2월"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "3월"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "4월"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "5월"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "6월"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "7월"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "8월"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "9월"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "10월"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "11월"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "12월"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "화요일"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "수요일"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "목요일"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "금요일"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "1월"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "2월"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "3월"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "4월"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "6월"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "7월"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "8월"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "9월"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "10월"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "11월"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "12월"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "시작일"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "오름차순"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "내림차순"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "그룹이 선택되지 않았습니다"
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "그룹을 삭제할 권한이 없습니다"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "그룹 삭제"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "그룹을 삭제할 수 없습니다"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "그룹 폼"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "전역 그룹을 추가할 권한이 없습니다"
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "이 캘린더에 그룹을 추가할 권한이 없습니다"
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "이 그룹을 수정할 권한이 없습니다"
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "수정된 그룹: "
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "생성된 그룹: "
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "오류 제출된 그룹"
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "관리자 권한 필요"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "선택한 이벤트 가져오는 중 오류발생"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "%s 개의 일정과 함께 %s 개 이벤트 생성"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "로그인됨"
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "죄송합니다, 잘못된 로그인입니다"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "로그인하기 위해 인터넷 브라우저의 쿠키 설정을 허용해야 합니다"
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "패스워드"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "로그아웃합니다"
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "일정 폼"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "일정 승인"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "일정을 생성할 수 없습니다"
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID가 설정되지 않았습니다"
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "수정된 일정: "
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "생성된 일정: "
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "오류 제출된 일정"
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "일정이 선택되지 않았습니다"
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "제거된 일정"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "제거된 일정"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "일정을 제거할 수 없습니다"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "일정을 제거할 수 없습니다"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "일정을 제거할 권한이 없습니다"
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "일정을 제거할 권한이 없습니다"
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "로그인해야 합니다"
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "패스워드를 수정할 권한이 없습니다"
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "이전 패스워드를 제출해야 합니다"
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "입력한 패스워드가 이전 패스워드와 일치하지 않습니다"
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "패스워드를 지정해야 합니다"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "패스워드가 일치하지 않습니다"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "패스워드가 변경되었습니다"
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "이벤트가 존재하지 않습니다"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "이벤트를 제거하는 중 오류가 발생했습니다"
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "일정을 제거하는 중 오류가 발생했습니다"
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "캘린더를 제거하는 중 오류가 발생했습니다"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "카테고리를 제거하는 중 오류가 발생했습니다"
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "그룹을 제거하는 중 오류가 발생했습니다"
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "제거 중 오류가 발생했습니다"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "권한을 읽을 수 없습니다"
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "캘린더를 가져올 수 없습니다"
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "사용자를 가져올 수 없습니다"
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "사용자 가져오기 오류"
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "사용자 생성 오류"
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "읽기 옵션 오류"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "옵션 생성 오류"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "패스워드 업데이트 오류"
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "시간대 업데이트 오류"
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "언어 업데이트 오류"
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "이벤트 생성 오류"
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "일정 생성 오류"
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "일정 수정 오류"
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "이벤트 수정 오류"
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "카테고리 생성 오류"
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "그룹 생성 오류"
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "카테고리 수정 오류"
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "그룹 수정 오류"
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "검색중 오류"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "사용자 권한 업데이트 오류"
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "로그인 토큰 가져오기 오류"
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "로그인 토큰 추가 오류"
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "로그인 토큰 업데이트 오류"
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "로그인 토큰 제거 오류"
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "로그인 토큰 클리닝 오류"
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr ""
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "알 수 없음"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB가 잘못된 데이터를 반환했습니다"
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "까지"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "잘못된 정렬 옵션"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "잘못된 순서 옵션"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "검색 기준에 맞는 이벤트가 없습니다"
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "검색 결과"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "날짜 시간"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "문단"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "정렬"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "순서"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "패스워드 재설정"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "이전 패스워드"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "새로운 패스워드"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "새로운 패스워드 확인"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "설정이 업데이트되었습니다"
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "당신의 계정에 해킹 시도가 가능합니다"
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "기간을 벗어났습니다"
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "잘못된 년도"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "패스워드 확인"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "관리자 권한 부여"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "사용자 이름을 지정해야 합니다"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "사용자가 이미 존재합니다"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "사용자를 삭제하려면 관리자 권한이 필요합니다"
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "사용자가 선택되지 않았습니다"
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "사용자 없음"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "변경 사항이 없습니다"
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "업데이트 된 사용자"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "계속"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "소프트웨어 에러"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "메시지:"
diff --git a/locale/lt/LC_MESSAGES/messages.po b/locale/lt/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..ac5db1d
--- /dev/null
+++ b/locale/lt/LC_MESSAGES/messages.po
@@ -0,0 +1,1465 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Algimantas Stancelis <algimantas@impresspages.org>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Lithuanian (http://www.transifex.com/sproctor/php-calendar/language/lt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: lt\n"
+"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr ""
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Versija"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Kalendorius"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Veiksmas"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Redaguoti"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Trinti"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr ""
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr ""
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Vartotojo vardas"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Sukurti vartotoją"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Vartotojų sąrašas"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Nustatymai"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr ""
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr ""
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr ""
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr ""
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr ""
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Administratorius"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr ""
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Vartotojo vardas"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr ""
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Sukurti kategoriją"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr ""
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr ""
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr ""
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr ""
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Sukurti grupę"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr ""
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr ""
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr ""
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr ""
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr ""
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr ""
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr ""
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr ""
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr ""
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr ""
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr ""
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr ""
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr ""
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr ""
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr ""
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr ""
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr ""
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr ""
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr ""
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr ""
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr ""
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr ""
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr ""
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr ""
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr ""
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr ""
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr ""
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Patvirtinti"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr ""
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr ""
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr ""
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr ""
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr ""
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr ""
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr ""
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr ""
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr ""
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr ""
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr ""
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr ""
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr ""
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr ""
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr ""
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr ""
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr ""
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr ""
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr ""
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr ""
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr ""
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr ""
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr ""
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr ""
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr ""
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr ""
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr ""
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr ""
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr ""
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr ""
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr ""
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr ""
+
+#: includes/globals.php:24
+msgid "February"
+msgstr ""
+
+#: includes/globals.php:25
+msgid "March"
+msgstr ""
+
+#: includes/globals.php:26
+msgid "April"
+msgstr ""
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr ""
+
+#: includes/globals.php:28
+msgid "June"
+msgstr ""
+
+#: includes/globals.php:29
+msgid "July"
+msgstr ""
+
+#: includes/globals.php:30
+msgid "August"
+msgstr ""
+
+#: includes/globals.php:31
+msgid "September"
+msgstr ""
+
+#: includes/globals.php:32
+msgid "October"
+msgstr ""
+
+#: includes/globals.php:33
+msgid "November"
+msgstr ""
+
+#: includes/globals.php:34
+msgid "December"
+msgstr ""
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr ""
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr ""
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr ""
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr ""
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr ""
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr ""
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr ""
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr ""
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr ""
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr ""
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr ""
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr ""
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr ""
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr ""
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr ""
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr ""
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr ""
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr ""
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr ""
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Slaptažodis"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr ""
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr ""
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr ""
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr ""
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr ""
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr ""
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr ""
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr ""
+
+#: includes/search.php:118
+msgid "Order"
+msgstr ""
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr ""
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr ""
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr ""
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr ""
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr ""
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr ""
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/nl/LC_MESSAGES/index.html b/locale/nl/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/nl/LC_MESSAGES/messages.po b/locale/nl/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..b1457d8
--- /dev/null
+++ b/locale/nl/LC_MESSAGES/messages.po
@@ -0,0 +1,1468 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Jimmy Tork <transifex@mudkips.nl>, 2013-2014
+# Jimmy Tork <transifex@mudkips.nl>, 2013
+# Vivianneb <vjm.daniels@gmail.com>, 2014
+# Vivianneb <vjm.daniels@gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Dutch (http://www.transifex.com/sproctor/php-calendar/language/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Je dient ingelogd te zijn als administrator."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Kalenders"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Gebruikers"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Importeer"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Vertaal"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Versie"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Kalender"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Actie"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Wijzig"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Verwijder"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Maak kalender"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Kalenderlijst"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "naam gebruiker"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Groepen"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Edit Groepen"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Maak gebruiker aan"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Gebruikerslijst"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Importeer formulier"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MYSQL Host naam"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MYSQL Database naam"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MYSQL Poort nummer"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Laat leeg voor standaard"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MYSQL Gebruikersnaam"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MYSQL Gebruikerswachtwoord"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar Tabel voorzetsel"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Importeer Kalender"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "Dit script heeft lees rechten van de kalender directory nodig  om de vertaling files te overschrijven, je kan de translate.php vanuit de command line starten of msgfmt of elke andere gettext tool gebruiken die .mo files van .po files kan genereren."
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "Maak de Vertalingen aan"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "Kalender Configuratie"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "Categorieen"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "opties"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Verstuur"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Lezen"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Schrijven"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Allen lezen"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "wijzigen"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Administrator"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Gebruikersbevoegdheden"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Gebruikersnaam"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Kan alleen-lezen aanmaken"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Geen naam"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Geen"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Maak categorie"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Kalendercategoriën"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Naam"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Tekstkleur"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Achtergrondkleur"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Zichtbaar voor gebruikersgroep"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Acties"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Maak groep"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Kalendergroepen"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "geen toestimming gekregen"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "is niet ingesteld."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "update opties"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Taal"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Tijdzone"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Welkom"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Instellingen"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "doei zeggen"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "inloggen"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Voeg gebeurtenis toe"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Zoeken"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Laat de maand zien"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "datum laten zien"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Kalenderbeheer"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Standaard"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Begin van de week"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "zondag"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "maandag"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "zaterdag"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "Tijd in 24-uurs weergave"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Kalender voor 55plus activiteiten"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Maximale lengte van onderwerp"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Maximaal aantal gebeurtenissen weer te geven per dag"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Publiekelijke bevoegdheden"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Kan geen gebeurtenissen lezen of schrijven"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Kan gebeurtenissen lezen maar niet schrijven"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Kan gebeurtenissen aanmaken maar niet bewerken"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Kan gebeurtenissen aanmaken en bewerken"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Standaard tijdzone"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Standaardtaal"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Datum lay-out"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Thema"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Maand Dag Jaar"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Jaar Maand Dag"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Dag Maand Jaar"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Je hebt geen bevoegdheden dit uit te voeren:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Fout"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Traceren"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "ongeldige actie"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Geheime token klopt niet."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Niet-ondersteunde configuratietype"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "Vereiste veld \"%s\" is niet ingesteld."
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "Ongeldige \"%s\" tijd: \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Niet herkende periode:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "Ongeldige \"%s\" datum: \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "Invalide date_format."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Geen kalender geselecteerd"
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Bevestig dat je wilt verwijderen:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Bevestig"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Weiger"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Je hebt geen bevoegdheden om de kalender te verwijderen"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Verwijderde kalender"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Je kon de kalender niet verwijderen"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Kalender aangemaakt."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Geen categorie geselecteerd."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Je hebt geen bevoegdheden om deze categorie te verwijderen:"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Verwijderde categorie:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Kon deze categorie niet verwijderen:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Categorieformulier"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Zichtbaar voor groepen"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "Voeg Categorie toe"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Kleur niet gespecificeerd."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Ongeldige kleur"
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Je hebt geen toestemming om categorieën aan alle kalenders toe te voegen."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Je hebt geen toestemming om categorieën aan deze kalender toe te voegen."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Je hebt geen toestemming om deze categorie te wijzigen."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Gewijzigde categorie:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Categorie gecreëerd:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Fout tijdens versturen van categorie."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Titel"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "tijd"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "omschrijving"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "gekozen termijn wissen"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "vandaag geen termijn"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Ongeldige argumenten."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Je hebt geen bevoegdheid om deze gebeurtenis te lezen."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "door"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Categorie"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Wanneer"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Gemaakt op:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Laatst gewijzigd op:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Wijzig gebeurtenis"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Verwijder gebeurtenis"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Vorige gebeurtenis op"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Volgende gebeurtenis op"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Bekijk alle gebeurtenissen"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Voeg gebeurtenis toe"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "op"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Gebeurtenissen"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "van"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "W"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Bekijk extra gebeurtenissen"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "vervolgd"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "Invalide datum."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Geen gebeurtenis geselecteerd."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Gebeurtenis verwijderd"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Gebeurtenissen verwijderd"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Kon gebeurtenis niet verwijderen"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Kon gebeurtenissen niet verwijderen"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Je hebt geen bevoegdheden om de gebeurtenis te verwijderen"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Je hebt geen bevoegdheden om de gebeurtenissen te verwijderen"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Gebeurtenisformulier"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "betref"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Verander de datum en tijd van evenement"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "van"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "aan"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Tijdstype"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "normaal"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Volledige dag"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Wordt nog aangekondigd"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Herhalingen"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Nooit"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Dagelijks"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "wekelijks"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Maandelijks"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Jaarlijks"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Iedere"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Herhaal om de hoeveel dagen?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Tot"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Herhaal om de hoeveel weken?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Herhaal om de hoeveel maanden?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Herhaal om de hoeveel jaar?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Verstuur gebeurtenis"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Tijdstype niet herkend."
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "Een gebeurtenis kan niet eerder eindigen dan het begon."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Je hebt geen bevoegdheden om deze kalender te beschrijven."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Vereist veld 'iedere dag' is niet ingesteld."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "'iedere dag' moet groter zijn dan 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Vereist veld 'iedere week' is niet ingesteld."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "'iedere week' moet groter zijn dan 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Vereist veld 'iedere maand' is niet ingesteld."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "'iedere maand' moet groter zijn dan 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Vereist veld 'ieder jaar' is niet ingesteld."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Ongeldig gebeurtenistype."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Gewijzigde gebeurtenis:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Gebeurtenis gemaakt:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Fout tijdens versturen van gebeurtenis."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "vereist"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Kan geen niet-formulier-element toevoegen aan formulier."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Datum"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "januari"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "februari"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "maart"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "april"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "mei"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "juni"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "juli"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "augustus"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "september"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "oktober"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "november"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "december"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "dinsdag"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "woensdag"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "donderdag"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "vrijdag"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "jan"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "mrt"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "apr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "jun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "jul"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "aug"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "sep"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "okt"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "dec"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Begindatum"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "stijgend"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Aflopen"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Geen groep geselecteerd."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Je hebt geen bevoegdheden om de groep te verwijderen:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Verwijderde groep:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Kon deze groep niet verwijderen:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Groepformulier"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "Voeg Groep toe"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Je hebt geen bevoegdheden om een globale groep toe te voegen."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Je hebt geen bevoegdheden om een groep aan deze kalender toe te voegen."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Je hebt geen bevoegdheden om deze groep te wijzigen."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Gewijzigde groep:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Groep gecreëerd:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Fout tijdens versturen van groep."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Moet administrator zijn"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Fout tijdens het selecteren van evenementen om te importeren"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "%s evenementen met %s gebeurtenissen gemaakt"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Ingelogd."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "sorry, foutieve aanmelding"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Je moet cookies hebben geactiveerd om in te loggen."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Wachtwoord"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Uitloggen."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Gebeurtenissenformulier"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Voeg gebeurtenis toe"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Kon gebeurtenis niet maken."
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID niet ingesteld."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Gebeurtenis gewijzigd:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Gebeurtenis aangemaakt:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Fout tijdens versturen van gebeurtenis."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Geen gebeurtenis geselecteerd."
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Gebeurtenis verwijderd"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Gebeurtenissen verwijderd"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Kon gebeurtenis niet verwijderen"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Kon gebeurtenissen niet verwijderen"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Je hebt geen bevoegdheden om de gebeurtenis te verwijderen."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Je hebt geen bevoegdheden om de gebeurtenissen te verwijderen."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Je moet ingelogd zijn."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Je hebt geen toestemming om je wachtwoord aan te passen."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Je moet je oude wachtwoord invullen."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Het wachtwoord dat je ingevuld hebt is niet gelijk aan je oude wachtwoord."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Je moet een wachtwoord invullen"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Je wachtwoorden zijn niet gelijk"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Wachtwoord geüpdatet."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Geen titel)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Fout in get_occurences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Fout in get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Gebeurtenis bestaat niet"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Fout in get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Gebeurtenis met oid bestaat niet"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Fout in get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Categorie met catid bestaat niet"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Fout in get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Groep met gid bestaat niet"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Fout in get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Fout in get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Fout in get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Fout in get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Fout in get_occurence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Fout in get_occurences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Fout tijdens het verwijderen van gebeurtenis."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Fout tijdens het verwijderen van een gebeurtenis."
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Fout tijdens het verwijderen van een kalender"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Fout tijdens het verwijderen van categorie."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Fout tijdens het verwijderen van groep."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Fout tijdens het verwijderen"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Kon bevoegdheden niet lezen."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Kon kalenders niet bemachtigen"
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Kon gebruiker niet bemachtigen."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Fout tijdens het verkrijgen van gebruiker."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Fout tijdens het maken van gebruiker."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Fout tijdens het uitlezen van opties"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Fout tijdens het aanmaken van opties"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Fout tijdens het updaten van wachtwoord."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Fout tijdens updaten van tijdzone."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Fout tijdens het updaten van de taal."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "Error groep toevoegen aan gebruiker."
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "Error weghalen groep van gebruiker."
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Fout tijdens het maken van evenement."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Fout tijdens het maken van gebeurtenis."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Fout tijdens het bewerken van gebeurtenis."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Fout tijdens het bewerken van evenement."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Fout tijdens het maken van categorie."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Fout tijdens het maken van groep."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Fout tijdens het bewerken van categorie."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Fout tijdens het bewerken van groep."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Fout tijdens het zoeken"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Fout tijdens het updaten van gebruikersbevoegdheden."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Fout tijdens het verkrijgen van het logintoken."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Error toevoegen login token."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Error updaten login token."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Error weghalen login token."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Error leeghalen login token."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL query"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anoniem"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "onbekend"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Geen onderwerp)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB geeft een invalide datum terug."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "tot"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Invalide sorteer optie"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Invalide volgorde optie"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Geen evenementen gevonden overeenkomstig met de zoek criteria."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Zoek Resultaten"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Datum Tijd"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "phrase"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "sorteren naar"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "volgorde"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Verander Wachtwoord"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Oud Wachtwoord"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Nieuw Wachtwoord"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Bevestig Nieuw Wachtwoord"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Settings geupdate."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Mogelijke hack poging op uw account."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Maand is buiten het bereik."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Verkeerd jaar"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Vertaald \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Bevestig wachtwoord"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Maak administator"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Je moet een gebruikersnaam invullen"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Gebruiker bestaat al."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "gebruiker aangemaakt"
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Je moet een admin zijn om gebruikers te verwijderen."
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Geen gebruiker geselecteerd."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "Edit Gebruikers Groepen"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "Groepen geüpdatet."
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Geen gebruikers"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Geen veranderingen om door te voeren."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Geüpdatete gebruiker(s):"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "doorgaan"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Software Error"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Bericht:"
diff --git a/locale/nl/index.html b/locale/nl/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/no/LC_MESSAGES/messages.po b/locale/no/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..8ba21f5
--- /dev/null
+++ b/locale/no/LC_MESSAGES/messages.po
@@ -0,0 +1,1466 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Dagfinn Glad <dagfinn.glad@online.no>, 2015
+# lindquist <macbackpain@gmail.com>, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2017-09-23 20:46+0000\n"
+"Last-Translator: Dagfinn Glad <dagfinn.glad@online.no>\n"
+"Language-Team: Norwegian (http://www.transifex.com/sproctor/php-calendar/language/no/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: no\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Du m&aring; v&aelig;re logget inn som admin."
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Kalendre"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Brukere"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Importer"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Oversett"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Versjon"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Kalender"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Handling"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Rediger"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Slett"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Opprett kalender"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Kalenderliste"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Brukernavn"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Grupper"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Rediger grupper"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Opprett bruker"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Brukerliste"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Importer skjema"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL Vertsnavn"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL Databasenavn"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL Portnummer"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "La st&aring; tom for standard"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL Brukernavn"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL Passord"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar tabell prefiks"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Importer kalender"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "Dette script har m&aring; ha skrivetilgang til din kalendermappe for &aring; kunne skrive oversettelsesfilene. Alternativt kan du kj&oslash;re translate.php fra kommandlinjen eller bruke msgfmt eller et annet gettext verkt&oslash;y som kan generere .mo filer fra .po filer."
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "Generer oversettelser"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "Kalender konfigurasjon"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "Kategorier"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Innstillinger"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Arkiver"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Les"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Skriv"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Skrivebeskyttet"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Rediger"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Administrator"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Brukerrettigheter"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Brukernavn"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Kan opprette skrivebeskyttede"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Ikke navngitt"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Ingen"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Opprett kategori"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Kalender kategorier"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Navn"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Tekstfarge"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Bakgrunnsfarge"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Synlig for brukergruppe"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Handlinger"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Opprett gruppe"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Kalendergrupper"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Adgang nektet"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "var ikke satt."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Oppdaterte innstillinger"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Spr&aring;k"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Tidssone"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Velkommen"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Innstillinger"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Logg ut"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Logg inn"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Legg til begivenhet"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "S&oslash;k"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Vis m&aring;ned"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Vis dato"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Kalender-admin"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Standard"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Uken starter"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "S&oslash;ndag"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Mandag"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "L&oslash;rdag"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24 timers klokke"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Kalendertittel"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Max emnelengde"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Daglig max for begivenhetsvisning"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Offentlig adgang"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Kan hverken lese eller skrive begivenheter"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Kan lese, men ikke skrive begivenheter"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Kan opprette, men ikke redigere begivenheter"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Kan opprette og redigere begivenheter"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Standard tidssone"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Standard spr&aring;k"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Datoformat"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Tema"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "M&aring;ned Dag &Aring;r"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "&Aring;r M&aring;ned Dag"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Dag M&aring;ned &Aring;r"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Du har ikke rettigheter til denne handling:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Feil"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Spor bakover"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Ugyldig handling"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Hemmelig token uoverensstemmelse. Mulig fors&oslash;k p&aring; foresp&oslash;rselsforfalskning."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Ikke st&oslash;ttet config type"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "P&aring;krved felt \"%s\" ble ikke satt."
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "Misdannet \"%s\" tid: \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Periode ikke gjenkjent:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "Misdannet \"%s\" dato: \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "Ugyldig date_format."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Ingen kalender valgt."
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Bekreft slettning:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Bekreft"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Nekt"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Du har ikke rettigheter til &aring; fjerne kalender"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Fjernede kalendre"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Kunne ikke fjerne kalender"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Kalender opprettet."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Ingen kategori valgt."
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Du har ikke rettigheter til &aring; slette kategorien:"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Slettede kategorier:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Kunne ikke fjerne kategori:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Kategoriskjema"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Synlig for grupper"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "Lagre kategori"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Farge ikke spesifisert."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Ugyldig farge."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Du har ikke rettigheter til &aring; tilf&oslash;je kategorier til alle kalendere."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Du har ikke rettigheter til &aring; legge til kategorier til denne kalender."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Du har ikke rettigheter til &aring; endre denne kategori."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Enndrede kategorier:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Oprettede kategorier:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Feil, kunne ikke lagre kategori."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Tittel"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Tid"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Beskrivelse"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Slett valgte"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Ingen begivenheter denne dagen."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Ugyldige argumenter."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Du har ikke rettigheter til &aring; lese denne begivenhet."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "av"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Kategori"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "N&aring;r"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Oprettet:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Sist endret:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Rediger forekomst"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Slett forekomst"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Forrige forekomst p&aring;"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Neste forekomst p&aring;"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Vis alle forekomster"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Legg til forekomst"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "-"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Fjern"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Forekomster"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "fra"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "U"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Vis ytterligere begivenheter"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "fortsatt"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "Ugyldig dato."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Ingen begivenhet valgt."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Fjernet begivenhet"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Fjernede begivenheter"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Kunne ikke fjerne begivenhet"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Kunne ikke fjerne begivenheter"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Du har ikke rettigheter til &aring; fjerne begivenhet"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Du har ikke rettigheter til &aring; fjerne begivenheter"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Begivenhetskjema"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Emne"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Rediger begivenhetens dato og tidspunkt"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Fra"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Til"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Tidstype"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normal"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Hele dagen"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Ikke opplyst enda"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Gjentas"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Aldri"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Daglig"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Ukentlig"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "M&aring;nedlig"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "&Aring;rlig"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Hver"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Gjenta med hvor mange dagers mellomrom?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Inntil"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Gjenta med hvor mange ukers mellomrom?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Gjenta med hvor mange m&aring;neders mellomrom?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Gjenta med hvor mange &aring;rs mellomrom?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Lagre begivenhet"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Tidstype ikke gjenkjent."
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "En begivenhet kan ikke slutte f&oslash;r den begynner."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Du har ikke rettigheder til &aring; skrive til denne kalender."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "P&aring;krevd felt \"hver-dag\" er ikke utfylt."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "hver-dag skal v&aelig;re st&oslash;rre enn 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "P&aring;kreved felt \"hver-uke\" er ikke utfylt."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "hver-uke skal v&aelig;re st&oslash;rre enn 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "P&aring;krevd felt \"hver-m&aring;ned\" er ikke utfylt."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "hver-m&aring;ned skal v&aelig;re st&oslash;rre enn 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "P&aring;krevd felt \"hvert-&aring;r\" er ikke utfylt."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Ugyldig begivenhetstype."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Endrede begivenheter:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Oprettet begivenhet:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Feil, kunne ikke lagre begivenhet."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "p&aring;krevd"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Kan ikke legge til et ikke-skjema element til en skjema."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Dato"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Januar"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Februar"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Mars"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "April"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Mai"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Juni"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Juli"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "August"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "September"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Oktober"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "November"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Desember"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Tirsdag"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Onsdag"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Torsdag"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Fredag"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Jan"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mar"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Apr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Jun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Jul"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Aug"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Sep"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Okt"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Des"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Startdato"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Stigende"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Synkende"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Ingen gruppe valgt."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Du har ikke rettigheter til &aring; slette gruppe:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Fjernet gruppe:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Kunne ikke fjerne gruppe:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Gruppeskjema"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "Lagre gruppe"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Du har ikke rettigheter til &aring; legg til en global gruppe."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Du har ikke rettigheter til &aring; legge til en gruppe til denne kalender."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Du har ikke rettigheter til &aring; endre denne gruppe."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Endret gruppe:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Oprettet gruppe:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Feil, kunne ikke lagre gruppe."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "N&oslash;dt til &aring; v&aelig;re administrator"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Feil ved valg av begivenheter under import"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Oprettet %s begivenheter med %s forekomster"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Logget inn."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Beklager, ugyldig logginn"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Du m&aring; ha cookies sl&aring;tt p&aring; for &aring; logge inn."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Passord"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Logger ut…"
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Forekomstskjema"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Lagre forekomst"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Kan ikke opprette forekomst."
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID ikke satt."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Endret forekomst:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Opprettet forekomst:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Feil, kunne ikke lagre forekomst."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Ingen forekomst valgt."
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Fjernet forekomst"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Fjernede forekomster"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Kunne ikke fjerne forekomst"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Kunne ikke fjerne forekomster"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Du har ikke rettigheter til &aring; fjerne forekomsten."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Du har ikke rettigheter til &aring; fjerne forekomster."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Du m&aring; v&aelig;re logget inn."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Du har ikke rettigheter til &aring; endre ditt passord."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Du m&aring; oppgi ditt gamle passord."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Passordet du oppga var ikke ditt gamle passord."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Du m&aring; oppgi et passord"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Dine passord  var ikke like"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Passord oppdatert."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Ingen tittel)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Feil i get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Feil i get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Begivenhet eksisterer ikke"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Feil i get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Begivenhet eksisterer ikke med oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Feil i get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Kategori eksisterer ikke med catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Feil i get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Gruppe eksisterer ikke med gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Feil i get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Feil i get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Feil i get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Feil i get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Feil i get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Feil i get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Feil ved sletting av begivenhet."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Feil ved sletting av forekomst."
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Feil ved sletting av kalender"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Feil ved sletting av kategori."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Feil ved sletting av gruppe."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Feil ved sletting"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Kunne ikke lese rettigheter."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Kunne ikke hente kalendre."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Kunne ikke hente bruker."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Feil ved lesing av bruker."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Feil ved opprettelse av bruker."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Feil ved lesing av innstillinger"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Feil ved opprettelse av innstillinger"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Feil ved oppdatering av passord."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Feil ved oppdatering av tidssone."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Feil ved oppdatering av spr&aring;k."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "Feil, kunne ikke legge gruppe til bruker."
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "Feil, kunne ikke fjerne gruppe fra bruker."
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Feil ved opprettelse av begivenhet."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Feil ved opprettelse av forekomst."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Feil ved endring av forekomst."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Feil ved endring av begivenhet."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Feil ved opprettelse av kategori."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Feil ved opprettelse av gruppe."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Feil ved endring av kategori."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Feil ved endring av gruppe."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Feil ved s&oslash;king"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Feil ved oppdatering av brukerrettigheter."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Kunne ikke hente login token."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Kunne ikke legge til login token."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Feil ved oppdatering av login token."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Kunne ikke fjerne login tokens."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Kunne ikke rense login tokens."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL foresp&oslash;rsel"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonym"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "ukjent"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Intet emne)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB returnerte en ugyldig dato."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "til"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Ugyldig sorteringsinnstilling"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Ugyldig rekkef&oslash;lgeinnstilling"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Ingen begivenheter stemte med dine s&oslash;kekriterier."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "S&oslash;keresultater"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Dato Tid"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Setning"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Sorter etter"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Rekkef&oslash;lge"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Bytt passord"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Gammelt passord"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Nytt passord"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Bekreft nytt passord"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Innstillinger oppdatert."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Mulig hacking fors&oslash;k p&aring; din konto."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "M&aring;ned utenfor gyldig intervall."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Ugyldig &aring;r"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Oversatte \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Bekreft passord"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Opprett administrator"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Du m&aring; angi et brukernavn"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Bruker eksisterer allerede"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "La til bruker."
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Du m&aring; v&aelig;re administrator for &aring; slette brukere."
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Ingen bruker valgt."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "Rediger brukergrupper"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "Grupper oppdatert."
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Ingen brukere"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Ingen endringer &aring; foreta."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Oppdaterte bruker(e):"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "fortsett"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Programvarefeil"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Beskjed:"
diff --git a/locale/pl_PL/LC_MESSAGES/messages.po b/locale/pl_PL/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..a40471a
--- /dev/null
+++ b/locale/pl_PL/LC_MESSAGES/messages.po
@@ -0,0 +1,1466 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# grzegorz.zielinski <grzegorz.zielinski@bkrmedia.pl>, 2014
+# grzegorz.zielinski <grzegorz.zielinski@bkrmedia.pl>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Polish (Poland) (http://www.transifex.com/sproctor/php-calendar/language/pl_PL/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pl_PL\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Musisz być zalogowany z prawami administratora"
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Tłumacz"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Wersja"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Kalendarz"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Akcja"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Edytuj"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Usuń"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Utwórz Kalendarz"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Lista kalendarzy"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Nazwa użytkownika"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Utwórz użytkownika"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Lista użytkowników"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Import"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "Nazwa hosta MySQL"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "Nazwa bazy danych MySQL"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "Numer portu MySQL"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Domyślnie zostaw puste"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "Nazwa użytkownika MySQL"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "Hasło użytkownika MySQL"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "Prefix tabel PHP-Calendar"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Opcje"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Zapisz"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Odczyt"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Zapis"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Tylko do odczytu"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Edytuj"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Administrator"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Prawa dostępu"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Nazwa użytkownika"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Może tworzyć tylko do odczytu"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Bez nazwy"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Brak"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Utwórz kategorię"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Kategorie kalendarzy"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Nazwa"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Kolor tekstu"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Kolor tła"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Widoczne dla grupy użytkowników"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Akcje"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Utwórz grupę"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Grupy kalendarzy"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Odmowa dostępu"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "nie ustawiono."
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Uaktualniono opcje"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Język"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Strefa czasowa"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Witaj"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Ustawienia"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Wyloguj"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Zaloguj"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Dodaj wydarzenie"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Szukaj"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Pokaż miesiąc"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Pokaż datę"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Zarządzaj"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Domyślne"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Początek tygodnia"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Niedziela"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Poniedziałek"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Sobota"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "Czas 24-godzinny"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Nazwa kalendarza"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Maksymalna długość tematu"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Maksymalna ilość wyświetlanych wydarzeń"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Prawa dostępu"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Brak możliwości odczytu i zapisu wydarzeń"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Może odczytać wydarzenia"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Może tworzyć wydarzenia bez możliwości modyfikacji"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Może tworzyć i modyfikować wydarzenia"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Domyślna strefa czasowa"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Domyślny język"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Format daty"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Skórka"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Miesiąc Dzień Rok"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Rok Miesiąc Dzień"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Dzień Miesiąc Rok"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Brak uprawnień aby:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Błąd"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Ścieżka kroków"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Nieprawidłowa akcja"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Błędy sekretny token. Prawdopodobnie próba fałszywego zapytania."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Niewłaściwy typ konfiguracji"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Nierozpoznany okres:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Brak wybranego kalendarza"
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Potwierdź usunięcie:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Potwierdź"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Odmowa"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Brak uprawnień aby usunąć kalendarz"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Usunięto kalendarz"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Nie można usunąć kalendarza"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Utworzono kalendarz."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Brak wybranej kategorii"
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Brak uprawnień do usunięcia kategorii:"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Usunięta kategoria:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Nie można usunąć kategorii: "
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Kategoria"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Widoczne dla grup"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Nie wybrano koloru"
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Nieprawidłowy kolor"
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Brak uprawnień do dodania kategorii do wszystkich kalendarzy."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Brak uprawnień do dodania kategorii do tego kalendarza"
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Brak uprawnień do modyfikacji tej kategorii."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Zmodyfikowana kategoria:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Utworzona kategoria:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Błąd dodania kategorii."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Tytuł"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Czas"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Opis"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Wybrano usunięcie"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Brak wydarzeń tego dnia."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Nieprawidłowe parametry."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Brak uprawnień do odczytu tego wydarzenia."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "przez"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Kategoria"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Kiedy"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Utworzona:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Ostatnia modyfikacja:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Edytuj wystąpienie"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Usuń wystąpienie"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Poprzednie wystąpienie"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Następne wystąpienie"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Pokaż wszystkie wystąpienia"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Dodaj wystąpienie"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "w"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Usuń"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Wystąpienia"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "od"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Pokaż dodatkowe wydarzenia"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "kontynuowany"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Brak wybranego wydarzenia."
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Usunięto wydarzenie"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Usunięto wydarzenia"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Nie można usunąć wydarzenia"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Nie można usunąć wydarzeń"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Brak uprawnień aby usunąć wydarzenie"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Brak uprawnień aby usunąć wydarzenia"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Wydarzenie"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Temat"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Zmień datę i czas wydarzenia"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Od"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Do"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Typ czasu"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normalny"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Całodniowy"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Do ogłoszenia"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Powtórzenia"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Nigdy"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Dzienne"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Tygodniowe"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Miesięczne"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Roczne"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Co"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "ile dni?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Do"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "ile tygodni?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "ile miesięcy?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "ile lat?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Dodaj wydarzenie"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Nie rozpoznano typu czasu."
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "Data zakończenia wydarzenia nie może być przed datą startu."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Brak uprawnień zapisu dla tego kalendarza."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Wymagane pole \"dzienne\" nie ustawione."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "Pole \"dzienne\" mieć wartość większą niż 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Wymagane pole \"tygodniowe\" nie ustawione."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "Pole \"tygodniowe\" mieć wartość większą niż 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Wymagane pole \"miesięczne\" nie ustawione."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "Pole \"miesięczne\" musi mieć wartość większą niż 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Wymagane pole \"roczne\" nie ustawione."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Nieprawidłowy typ wydarzenia."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Zmodyfikowano wydarzenie:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Utworzono wydarzenie:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Błąd dodania wydarzenia."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "wymagane"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Nie można dodać do formularza."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Data"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Styczeń"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Luty"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Marzec"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Kwiecień"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Maj"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Czerwiec"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Lipiec"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Sierpień"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Wrzesień"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Październik"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Listopad"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Grudzień"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Wtorek"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Środa"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Czwartek"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Piątek"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Sty"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Lut"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mar"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Kwi"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Cze"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Lip"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Sie"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Wrz"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Paź"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Lis"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Gru"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Data rozpoczęcia"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Rosnąco"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Malejąco"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Brak wybranej grupy."
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Brak uprawnień do usunięcia grupy:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Usunięto grupę:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Nie można usunąć grupy:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Grupa"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Brak uprawnień aby dodać grupę globalną."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Brak uprawnień aby dodać grupę do tego kalendarza."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Brak uprawnień aby modyfikować tę grupę."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Zmodyfikowano grupę:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Utworzono grupę:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Błąd dodania grupy."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Należy posiadać prawa administratora"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Błąd wyboru wydarzeń do importu"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Utworzony %s wydarzeń z %s wystąpieniami"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Zalogowano"
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Przepraszamy, nieprawidłowy login"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Musisz mieć włączone cookies aby się zalogować"
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Hasło"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Wylogowywanie..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Wystąpienie"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Dodaj wystąpienie"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Nie można utworzyć wystąpienia"
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "Nie ustawiono ID wydarzenia."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Zmodyfikowano wystąpienie:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Utworzono wystąpienie:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Błąd dodania wystąpienia."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Brak wybranych wystąpień."
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Usunięto wystąpienie"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Usunięto wystąpienia"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Nie można usunąć wystąpienia"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Nie można usunąć wystąpień"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Brak uprawnień aby usunąć wystąpienie."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Brak uprawnień aby usunąć wystąpienia."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Musisz być zalogowany."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Brak uprawnień do zmiany hasła."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Musisz podać stare hasło"
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Wprowadzone hasło jest niezgodne ze starym hasłem."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Musisz podać hasło"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Niezgodność haseł"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Hasło uaktualnione."
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Brak tytułu)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Błąd w get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Błąd w get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Wydarzenie nie istnieje"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Błąd w get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Wydarzenie nie istnieje z tym oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Błąd w get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Kategoria z podanym ID nie istnieje"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Błąd w get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Grupa z podanym ID nie istnieje"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Błąd w get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Błąd w get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Błąd w get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Błąd w get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Błąd w get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Błąd w get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Błąd usuwania wydarzenia."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Błąd usuwania wystąpienia"
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Błąd usuwania kalendarza"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Błąd usuwania kategorii."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Błąd usuwania grupy."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Błąd usuwania."
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Nie można odczytać praw dostępu."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Nie można uzyskać kalendarzy."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Nie można otrzymać użytkownika."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Błąd."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Błąd tworzenia użytkownika."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Błąd odczytu opcji"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Błąd tworzenia opcji"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Błąd uaktualnienia hasła."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Błąd uaktualnienia strefy czasowej."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Błąd uaktualnienia języka."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Błąd tworzenia wydarzenia."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Błąd tworzenia wystąpienia."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Błąd modyfikacji wystąpienia."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Błąd modyfikacji wydarzenia."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Błąd tworzenia kategorii."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Błąd tworzenia grupy."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Błąd modyfikacji kategorii."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Błąd modyfikacji grupy."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Błąd wyszukiwania"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Błąd uaktualnienia praw dostępu użytkownika."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Błąd przyznania tokenu logowania."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Błąd dodania tokenu logowania."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Błąd uaktualnienia tokenów logowania."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Błąd usuwania tokenów logowania."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Błąd czyszczenia tokenów logowania."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "zapytanie SQL"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonimowy"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "nieznany"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Brak tematu)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "BD zwróciła nieprawidłową datę"
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "Do ogłoszenia"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "do"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Nieprawidłowa opcja sortowania"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Nieprawidłowa opcja kolejności"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Brak wydarzeń spełniających warunki wyszukiwania"
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Wyniki wyszukiwania"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Data"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Fraza"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Sortuj po"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Kolejność"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Zmień hasło"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Stare hasło"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Nowe hasło"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Potwierdź nowe hasło"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Ustawienia uaktualniono."
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Prawdopodobnie ktoś próbował włamać się na Twoje konto."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Miesiąc poza zasięgiem."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Nieprawidłowy rok"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Przetłumaczono \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Potwierdź Hasło"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Dodaj administratora"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Musisz podać nazwę użytkownika"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Użytkownik już istnieje."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Musisz mieć prawa administratora by usuwać użytkowników"
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Brak wybranego użytkownika"
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Brak użytkowników"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Brak zmian."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Uaktualniono użytkownika/ów:"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "kontynuuj"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Błąd aplikacji"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Wiadomość:"
diff --git a/locale/pt/LC_MESSAGES/messages.po b/locale/pt/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..2a40369
--- /dev/null
+++ b/locale/pt/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Portuguese (http://www.transifex.com/sproctor/php-calendar/language/pt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr ""
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr ""
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr ""
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr ""
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr ""
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr ""
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr ""
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr ""
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr ""
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr ""
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr ""
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr ""
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr ""
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr ""
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr ""
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr ""
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr ""
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr ""
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr ""
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr ""
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr ""
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr ""
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr ""
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr ""
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr ""
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr ""
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr ""
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr ""
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr ""
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr ""
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr ""
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr ""
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr ""
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr ""
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr ""
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr ""
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr ""
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr ""
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr ""
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr ""
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr ""
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr ""
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr ""
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr ""
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr ""
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr ""
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr ""
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr ""
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr ""
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr ""
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr ""
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr ""
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr ""
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr ""
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr ""
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr ""
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr ""
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr ""
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr ""
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr ""
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr ""
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr ""
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr ""
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr ""
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr ""
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr ""
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr ""
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr ""
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr ""
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr ""
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr ""
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr ""
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr ""
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr ""
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr ""
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr ""
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr ""
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr ""
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr ""
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr ""
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr ""
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr ""
+
+#: includes/globals.php:24
+msgid "February"
+msgstr ""
+
+#: includes/globals.php:25
+msgid "March"
+msgstr ""
+
+#: includes/globals.php:26
+msgid "April"
+msgstr ""
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr ""
+
+#: includes/globals.php:28
+msgid "June"
+msgstr ""
+
+#: includes/globals.php:29
+msgid "July"
+msgstr ""
+
+#: includes/globals.php:30
+msgid "August"
+msgstr ""
+
+#: includes/globals.php:31
+msgid "September"
+msgstr ""
+
+#: includes/globals.php:32
+msgid "October"
+msgstr ""
+
+#: includes/globals.php:33
+msgid "November"
+msgstr ""
+
+#: includes/globals.php:34
+msgid "December"
+msgstr ""
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr ""
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr ""
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr ""
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr ""
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr ""
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr ""
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr ""
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr ""
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr ""
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr ""
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr ""
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr ""
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr ""
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr ""
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr ""
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr ""
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr ""
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr ""
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr ""
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr ""
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr ""
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr ""
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr ""
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr ""
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr ""
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr ""
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr ""
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr ""
+
+#: includes/search.php:118
+msgid "Order"
+msgstr ""
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr ""
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr ""
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr ""
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr ""
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr ""
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr ""
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/pt_BR/LC_MESSAGES/messages.po b/locale/pt_BR/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..4f46cf4
--- /dev/null
+++ b/locale/pt_BR/LC_MESSAGES/messages.po
@@ -0,0 +1,1468 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Ernesto Niklaus <ernesto@ernesto.niklaus.nom.br>, 2021
+# Hebert Porto <hebertporto@gmail.com>, 2013
+# Jefferson Greick <jgr@live.in>, 2016
+# Rodrigo Tschope <tschope@gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/sproctor/php-calendar/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Você deve estar logado como Administrador"
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "Calendários"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "Usuários"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "Importar"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Tradução"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Versão"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Calendário"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Ação"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Editar"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Deletar"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Novo Calendário"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Listar Calendários"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Nome de Usuário"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "Grupos"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "Editar grupos"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Criar Usuário"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Lista de Usuários"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Formulário de Importação"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL - Nome do Servidor"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL - Nome do Banco de Dados "
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL - Porta "
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Deixe em branco para padrão"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL - Nome do Usuário"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL - Senha do Usuário"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar Table Prefix"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "Importar calendário"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "Esse scrip precisa de permissão de leitura ao diretório do calendário para gravação dos arquivos de tradução. Alternativamente você pode executar o arquivo \"translate.php\" na linha de comando, usar \"msgfmt\" ou outro aplicativo que faça a edição de arquivos .mo a partir de arquivos .po."
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "Gerar traduções"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "Configuração do Calendário"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "Categorias"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Opções"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Enviar"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Ler"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Escrever"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Somente Leitura"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Modificar"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Administrador "
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Permissões de Usuário"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Nome de Usuário"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Pode Criar Somente Leitura"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Sem Nome"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Nenhuma"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Criar Categoria"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Categorias de Calendários"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Nome"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Cor do Texto"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Cor do Plano de Fundo"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Visível para usuários do grupo"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Ações"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Criar Grupo"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Grupos de Calendários"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Permissão Negada"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "Não definido"
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Atualizar Opções"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Idioma"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Fuso Horário"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Bem Vindo"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Configurações"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Sair"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Entrar"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Adicionar Agendamento"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Procurar"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Visualizar Mês"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Visualizar Dia Atual"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Administração do Calendário"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Padrão"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Começo da Semana"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Domingo"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Segunda"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Sábado"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24 horas"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Nome do Calendário"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Tamanho máximo do Título"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Quantidade Máxima de Eventos Exibidos Diariamente"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Permissões Públicas "
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Não permitir visualizar ou editar agendamentos"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Permitir acesso a visualizar agendamentos e não editar"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Permitir Adicionar Agendamentos mas não editar"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Permitir visualizar e editar agendamentos"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Fuso Horário Padrão"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Idioma Padrão"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Formato de Data"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Tema"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Mês Dia Ano"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Ano Mês Dia"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Dia Mês Ano"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Você não possuí permissão para realizar essa ação"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Erro"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Retorno"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Ação Inválida"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Token secreto inválido. Possivelmente tentativa de falsificação"
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Tipo de configuração não suportado."
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "Campo Mandatório \"%s\" não foi preenchido."
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "Malformado \"%s\" Hora: \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Período não reconhecido: "
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "Malformado \"%s\" Data: \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "Formato da data não é válido."
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Nenhum calendário selecionado"
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Confirma solicitação de exclusão"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Confirmar"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Negado"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Você não tem permissão para excluir esse calendário"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Calendário Removido"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Não foi possível excluir o canlendário"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Calendário criado"
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Nenhuma categoria Selecionada"
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Você não possuí permissão para excluir essa categoria"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Categoria excluída: "
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Não foi possível remover a categoria: "
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Formulário de Categoria"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Visualizado pelos grupos"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "Enviar categoria"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Cor não especificada"
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Cor inválida"
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Você não possuí permissão para adicionar categoria para todos os calendários"
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Você não possuí permissão para adicionar categoria para esse calendário"
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Você não possui permissão para alterar essa categoria"
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Categoria alterada"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Categoria criada"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Erro ao enviar categoria"
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Título"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Tempo"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Descrição"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Exclusão Selecionada"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Nenhum agendamento nesta data"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Parâmetro Inválido"
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Você não possui permissão para visualizar esse agendamento"
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "por"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Categoria"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Quando"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Criado em"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Última modificação realizada em:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Editar Ocorrência"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Excluir Ocorrência"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Ocorrência Prévia em"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Próxima ocorrência em"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Visualizar toda as ocorrências"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Adicionar Ocorrência"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "em"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Remover"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Ocorrências"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "de"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "S"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Visualizar Agendamentos Adicionais"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "Continuado"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "Data inválida."
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Nenhuma Agendamento Selecionado"
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Agendamento Removido"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Agendamentos Removidos"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Não foi possível remover o agendamento"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Não foi possível remover os agendamentos"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Você não possui permissão para remover esse agendamento"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Você não possui permissão para remover esses agendamentos"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Agendamento de"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Assunto"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Alterar data e hora do agendamento"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "De"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Para"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Tipo de Hora"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normal"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Dia Completo"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "A ser confirmado"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Repetir"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Nunca"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Diariamente"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Semanalmente"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Mensalmente"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Anualmente"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Sempre"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Repetir a cada quantos dias ?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Até"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Repetir a cada quantas semanas ?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Repetir a cada quantos meses ?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Repetir a cada quantos anos ?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Enviar Agendamento"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Tipo de hora não reconhecido"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "O Agendamento não pode terminar antes de começar."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Você não possuí permissão para editar esse calendário"
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Opção requerida \"todos os dias\" não está selecionada"
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "Todos os dias devem ser maior que 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Opção requerida \"todas as semanas\" não está selecionada"
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "Toda semana precisa ser maior que 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Opção requerida \"todos os meses\" não está selecionada"
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "Todos os meses precisam ser maior que 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Opção obrigatória \"todos anos\" não está selecionada"
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Tipo de agendamento inválido."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Agendamento alterado:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Agendamento Criado"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Erro ao enviar agendamento"
+
+#: includes/form.php:32
+msgid "required"
+msgstr "obrigatório"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Não é possível adicionar um não-formulário ao formulário"
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Data"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Janeiro"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Fevereiro"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Março"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Abril"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Maio"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Junho"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Julho"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Agosto"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Setembro"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Outubro"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Novembro"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Dezembro"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Terça"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Quarta"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Quinta"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Sexta"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Jan"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Fev"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Mar"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Abr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Jun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Jul"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Ago"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Set"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Out"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Dez"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Data Início"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Crescente"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Decrescente"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Nenhum grupo selecionado"
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Você não possuí permissão para excluir o grupo:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Grupo excluído: "
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Não foi possível remover o grupo: "
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Grupo de"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "Enviar grupo"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Você não possuí permissão para adicionar um grupo global"
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Você não tem permissão para adicionar grupo neste calendário"
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Você não possui permissão para alterar este grupo."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Grupo modificado:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Grupo criado:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Erro ao enviar grupo:"
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Precisa de nível de administrador"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Erro ao importar agendamentos"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Criado %s agendamentos com %s ocorrências"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Logado"
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Desculpe, Login Inválido"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Você precisa habilitar os cookies para logar"
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Senha"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Saindo..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Formulário de ocorrência"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Enviar ocorrência"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Foi não possível ler visualizar "
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID não informado."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Ocorrência Modificada:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Ocorrência criada"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Erro ao enviar ocorrência"
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Nenhum ocorrência selecionada"
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Ocorrência Removida"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Ocorrências Removidas"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Não foi possível remover ocorrência."
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Não foi possível remover as ocorrências"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Você não tem permissão para remover a ocorrência."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Você não tem permissão para remover ocorrências."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Você precisa estar logado."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Você não possui permissão para alterar sua senha"
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Você deve especificar a última senha."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "A senha está incorreta"
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Você deve especificar sua senha"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "As senhas estão diferentes"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Senha atualizada"
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(sem título)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Erro ao selecionar ocorrências neste período"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Erro ao selecionar agendamento pelo id"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Agendamento inexistente "
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Erro ao selecionar agendamentos antigos"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Não existe agendamento por iod"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Erro em get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "A categoria não existem com catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Erro em get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "O grupo não existem com este gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Erro em get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Erro em get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Erro em get_visible_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Erro em get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Erro em get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Erro em get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Erro ao remover um agendamento."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Erro durante remoção de uma ocorrência"
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Erro durante remoção do calendário"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Erro ao excluir categoria"
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Erro ao excluir grupo"
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Erro ao excluir"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Não foi possível ler permissões"
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Não foi possível selecionar calendários"
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Não foi possível selecionar o usuário"
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Erro ao selecionar usuário"
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Erro ao criar usuário"
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Erro ao ler opções"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Erro ao criar opções"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Erro ao atualizar a senha."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Erro ao atualizar fuso horário"
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Erro ao atualizar idioma"
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "Erro ao adicionar grupo ao usuário."
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "Erro ao remover grupo do usuário."
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Erro ao criar agendamento"
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Erro ao criar ocorrência"
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Erro ao alterar ocorrência"
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Erro ao alterar agendamento"
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Erro ao criar categoria"
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Erro ao criar grupo"
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Erro ao alterar categoria"
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Erro ao alterar grupo."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Erro durante a pesquisa"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Erro ao atualizar permissões de usuário"
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Erro ao receber token do login"
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Erro ao adicionar token do login"
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Erro ao atualizar token do login"
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Erro ao remover token de login"
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Erro ao limpar token do login"
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL Query"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "Visitante"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "desconhecido"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Sem Assunto)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB retornou um data inválidad"
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "Para"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Opção de ordem inválida."
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Opção de "
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Nenhum resultado encontrado"
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Resultado das Pesquisas"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Data e hora"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Frase"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Classificar por"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Ordem"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Mudar Senha"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Senha Antiga"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Nova Senha"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Repetir nova senha"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Configurações Atualizadas"
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Possível tentativa de invasão da sua conta"
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Mês incorreto"
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Ano Inválido"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Traduzido \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Confirmar Senha"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Promover a Administrador"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Você deve digitar um nome de usuario"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Usuário já cadastrado"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "Usuário adicionado."
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Você precisa ser Administrador para excluir usuários"
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Nenhum usuário selecionado"
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "Editar Grupo de Usuários"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "Grupos atualizados."
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Sem usuários"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Não há alterações para realizar"
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Usuários atualizado(s)"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "Continuar"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Erro no Aplicativo"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Mensagem:"
diff --git a/locale/ru/LC_MESSAGES/messages.po b/locale/ru/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..00fe7c2
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/messages.po
@@ -0,0 +1,1466 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# ded_Pihto <ded_Pihto@bk.ru>, 2013
+# ded_Pihto <ded_Pihto@bk.ru>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Russian (http://www.transifex.com/sproctor/php-calendar/language/ru/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Необходимо зарегистрироваться как администратор"
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "перевод"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Версия"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Календарь"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Действие"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Изменить"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Удалить"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Создать календарь"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Список календарей"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Пользователь"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "Создать пользователя"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Список пользователей"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Импорт формы"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL хост"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL база данных"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL порт"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "оставьте пустым для значения по-умолчанию"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL имя пользователя"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL пароль"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "Префикс таблиц для PHP-Calendar"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Настройки"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Подтвердить"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Чтение"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Запись"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Только чтение"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Изменение"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Администратор"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Права пользователя"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Имя пользователя"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Возможно создать только для чтения"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Без имени"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Нет"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Создать категорию"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Категории календарей"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Название"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Цвет текста"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Цвет фона"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Видимость для группы"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Действие"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Создать группу"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Группы календарей"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "В доступе отказано"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "не установлено"
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "Настройки обновлены"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Язык"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Часовая зона"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Привет, "
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Настройки"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Выход"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Вход"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Добавить событие"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Поиск"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Месяц"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Дата"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Админстрирование"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "по-умолчанию"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Начало недели"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "Воскресенье"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "Понедельник"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Суббота"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24х часовой формат"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Заголовок календаря"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Максимальная длина темы"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Максимальная длина события дня"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Публичный доступ"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Нельзя читать и записывать событие"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Событие можно прочитать, нельзя записывать"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "Возможно создать событие без права редактирования"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Возможно чтение и запись события"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Зона времени по-умолчанию"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Язык по-умолчанию"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Формат даты"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Тема"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Месяц/День/Год"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "Год/Месяц/День"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "День/Месяц/Год"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Нет прав для выполнения:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Ошибка"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Отслеживание"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Неверное действие"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Несовпадение секретного токена. Возможно потребуется перезапрос."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Недопустимый тип конфигурации"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "Недопустимый период:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Не выбран календарь"
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Подтвердите удаление:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Да"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Нет"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "У Вас нет прав на удаление календаря"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Календарь удален"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Календарь не удален"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Календарь создан"
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Не выбрано категории"
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Нет прав на удаление категории"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Удаление категории:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Не удалена категория"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Форма категории"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Видимые для групп"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Цвет не определен"
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Неверный цвет"
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Нет прав на добавление категории во все календари"
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Нет прав на добавление категории в этот календарь"
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Нет прав на изменение этой категории"
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Изменена категория:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Создана категория:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Ошибка подтверждения категории"
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Заголовок"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Время"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Описание"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Удалить выделенное"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Нет события за этот день"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Неверный аргумент"
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Нет прав для чтения этого события"
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "by"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Категория"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "Когда"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Создано:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Последнее изменение:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Изменить раписание"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Удалить раписание"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Предидущее раписание на"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Следующее раписание на"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Просмотр всех расписаний"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Добавить расписание"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "от"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Удалить"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Расписания"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "от"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Просмотр дополнительных событий"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "продолжить"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Не выделено событий"
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Событие удалено"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "События удалены"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Событие не удалено"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Не удалены события"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Нет прав для удаления события"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "Нет прав для удаления событий"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Форма события"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Тема"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Изменить дату и время события"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "От"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "До"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Тип времени"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Нормальный"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Целый день"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Будет объявлено"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Повтор"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Никогда"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Ежедневно"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Еженедельно"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Ежемесячно"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Ежегодно"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Всегда"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Сколько дней повторять всегда?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Вплоть до"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Сколько недель повторять всегда?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Сколько месяцев повторять всегда?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Сколько лет повторять всегда?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Подтвердетить событие"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Неверный формат времени"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "Событие не может заканчиваться раньше чем началось"
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Нет прав на запись в этот календарь"
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Обязательно поле \"ежедневно\" не задано"
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "\"ежедневно\" должно быть больше, чем 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Обязательно поле \"еженедельно\" не задано"
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "\"еженедельно\" должно быть больше, чем 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Обязательно поле \"ежемесячно\" не задано"
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "\"ежемесячно\" должно быть больше, чем 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Обязательно поле \"ежегодно\" не задано"
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Неверный тип события"
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Изменено событие:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Создано событие:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Ошибка подтверждения события"
+
+#: includes/form.php:32
+msgid "required"
+msgstr "обязательно"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Нельзя добавить элемент в форму"
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Дата"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "Январь"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "Февраль"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "Март"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "Апрель"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "Май"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "Июнь"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "Июль"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "Август"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "Сентябрь"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "Октябрь"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "Ноябрь"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "Декабрь"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "Вторник"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "Среда"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "Четверг"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "Пятница"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "Янв"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "Фев"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "Мар"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "Апр"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "Июн"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "Июл"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "Авг"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "Сен"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "Окт"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "Ноя"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "Дек"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Дата начала"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Увеличение"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Уменьшение"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Не выбрана группа"
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Нет прав на удаление групы:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Группа удалена"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Группа не удалена"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Форма группы"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Нет прав на добавление глобальной группы"
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Нет прав на добавление группы в этот календарь"
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Нет прав на изменения  в этой группе"
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Изменена группа:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Создана группа"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Ошибка подтверждения группы"
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "Требуется админситратор"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Неверные выбранные события для импорта"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Создано %s событий с %s occurences"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "В системе."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Ошибочный вход."
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "У вас должен быть включены cookies"
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Пароль"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Выход"
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Форма расписания"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Подтвердить расписание"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Не создано расписание"
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID не установлено"
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Изменено расписание:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Создано расписание:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Ошибка подтверждения расписания"
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Не выбрано раписание"
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Удалено раписание"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Удалены расписания"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Не удалено раписание"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Не удалены раписания"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "Нет прав на удаление раписания"
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Нет прав для удаления расписаний"
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Необходимо войти в систему"
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Нет прав для смены пароля"
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Укажите старый пароль"
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Ваш пароль не совпал с старым паролем"
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Укажите пароль"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Ваш пароль не подошел"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Пароль обновлен"
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(без заголовка)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Ошибка в получении расписания по диапазону дат"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Ошибка в  get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Событие не существует"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Ошибка в get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Нет события с oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Ошибка в категории"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Нет категории с catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Ошибка в get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Нет группы с gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Ошибка в get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Ошибка в  get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Ошибка в get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Ошибка в get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Ошибка в get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Ошибка в get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Ошибка при удалении события"
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Ошибка при удалении раписания"
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Ошибка при удалении календаря"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Ошибка при удалении категории"
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "Ошибка при удалении группы"
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Ошибка при удалении"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Нет прав на чтение"
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Не получены календари"
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Не получен пользователь"
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Ошибка получения пользователя"
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Ошибка создания пользователя"
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Ошибка чтения настроек"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Ошибка создания настроек"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Ошибка обновления пароля"
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Ошибка обновления зоны времени"
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Ошибка обновления языка"
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Ошибка создания события"
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Ошибка создания расписания"
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Ошибка изменения расписания"
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Ошибка изменения события"
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Ошибка создания категории"
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Ошибка создания группы"
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Ошибка изменения категории"
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Ошибка изменения группы"
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Ошибка при поиске"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Ошибка обновления прав доступа"
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Ошибка получения токена"
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Ошибка при создании токена логина"
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Ошибка обновления токена логина"
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "Ошибка удаления токена логина"
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Ошибка очистки токена"
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL запрос"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonymous"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "неизвестно"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(без темы)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "БД вернула неверную дату"
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "до"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Неверные параметры сортировки"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Неверный порядок сортировки"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Нет совпадений с заданными криетриями"
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Результат поиска"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Дата и время"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Фраза"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Сортировать по"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Сортировка"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Изменить пароль"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Старый пароль"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Новый пароль"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Подтвердить пароль"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "настройки обновлены"
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Возможно попытка взлома вашего аккаунта"
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "неверный месяц"
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "неверный год"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Перевод \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Подтвердите пароль"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Сделать администратором"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Укажите имя пользователя"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Пользователь уже существует"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Нужен администратор для удаления пользователя"
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Не выбран пользователь"
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Нет пользователя"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Нет изменений"
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Обновлены пользователь(и)"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "продолжить"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Програмная ошибка"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Сообщение:"
diff --git a/locale/sl/LC_MESSAGES/messages.po b/locale/sl/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..6c8c82c
--- /dev/null
+++ b/locale/sl/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Slovenian (http://www.transifex.com/sproctor/php-calendar/language/sl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sl\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr ""
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr ""
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr ""
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr ""
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr ""
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr ""
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr ""
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr ""
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr ""
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr ""
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr ""
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr ""
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr ""
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr ""
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr ""
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr ""
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr ""
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr ""
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr ""
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr ""
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr ""
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr ""
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr ""
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr ""
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr ""
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr ""
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr ""
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr ""
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr ""
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr ""
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr ""
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr ""
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr ""
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr ""
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr ""
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr ""
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr ""
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr ""
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr ""
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr ""
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr ""
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr ""
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr ""
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr ""
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr ""
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr ""
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr ""
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr ""
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr ""
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr ""
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr ""
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr ""
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr ""
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr ""
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr ""
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr ""
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr ""
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr ""
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr ""
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr ""
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr ""
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr ""
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr ""
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr ""
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr ""
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr ""
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr ""
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr ""
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr ""
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr ""
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr ""
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr ""
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr ""
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr ""
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr ""
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr ""
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr ""
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr ""
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr ""
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr ""
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr ""
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr ""
+
+#: includes/globals.php:24
+msgid "February"
+msgstr ""
+
+#: includes/globals.php:25
+msgid "March"
+msgstr ""
+
+#: includes/globals.php:26
+msgid "April"
+msgstr ""
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr ""
+
+#: includes/globals.php:28
+msgid "June"
+msgstr ""
+
+#: includes/globals.php:29
+msgid "July"
+msgstr ""
+
+#: includes/globals.php:30
+msgid "August"
+msgstr ""
+
+#: includes/globals.php:31
+msgid "September"
+msgstr ""
+
+#: includes/globals.php:32
+msgid "October"
+msgstr ""
+
+#: includes/globals.php:33
+msgid "November"
+msgstr ""
+
+#: includes/globals.php:34
+msgid "December"
+msgstr ""
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr ""
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr ""
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr ""
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr ""
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr ""
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr ""
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr ""
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr ""
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr ""
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr ""
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr ""
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr ""
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr ""
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr ""
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr ""
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr ""
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr ""
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr ""
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr ""
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr ""
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr ""
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr ""
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr ""
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr ""
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr ""
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr ""
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr ""
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr ""
+
+#: includes/search.php:118
+msgid "Order"
+msgstr ""
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr ""
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr ""
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr ""
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr ""
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr ""
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr ""
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/sv/LC_MESSAGES/messages.po b/locale/sv/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..50bad9f
--- /dev/null
+++ b/locale/sv/LC_MESSAGES/messages.po
@@ -0,0 +1,1466 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Christer Sagman <ches.serr@gmail.com>, 2013
+# Christer Sagman <ches.serr@gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Swedish (http://www.transifex.com/sproctor/php-calendar/language/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "Du måste logga in som admin"
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "Översätt"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "Version"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "Kalender"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "Åtgärd"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "Redigera"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "Radera"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "Skapa kalender"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "Kalender-lista"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "Användarnamn"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr " Skapa användare"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "Användarförteckning"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "Importformulär"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL Värd-namn"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL databasnamn"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL Port-nummer"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "Lämnas blankt pga förval"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL användarnamn"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL användar-lösenord"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar tabell-prefix"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "Alternativ"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "Skicka"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "Läs"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "Skriv"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "Read-only"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "Ändra"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "Admin"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "Användar-behörighet"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "Användarnamn"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "Kan skapa Read-Only"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "Inget namn"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "Inget"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "Skapa kategori"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "Kalender kategorier"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "Namn"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "Textfärg"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "Bakgrundsfärg"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "Synlig för användargrupp"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "Åtgärder"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "Skapa grupp"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "Kalendergrupp"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "Tillstånd nekades"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr " blev inte inställd"
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr " uppdaterade alternativ"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "Språk"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "Tidszon"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "Välkommen"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "Inställningar"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "Logga ut"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "Logga in"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "Lägg till händelse"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "Sök"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "Visa månad"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "Visa datum"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "Kalender-admin"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "Förvalt"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "Veckans början"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "söndag"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "måndag"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "Lördag"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24 timmars visning"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "Kalenderns namn"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "Rubrikens max-längd"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "Max-visning av händelser"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "Allmänna behörigheter"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "Kan varken läsa eller skriva händelser"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "Kan läsa men inte skriva händelser"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr " Kan skapa men inte ändra händelser"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "Kan skapa och ändra händelser"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "Förvald tidszon"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "Förvalt språk"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "Datumformat"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "Tema"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "Månad Dag År"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "År Månad Dag"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "Dag Månad År"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "Du har inte behörighet att göra det:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "Fel"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "Backtrace"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "Ogiltig åtgärd"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "Hemliga tecken ihopblandade. Ett möjligt försök till intrång."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "Konfigurationstyp stöds ej"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr " Okänd period:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "Ingen kalender vald"
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "Bekräfta att du vill radera:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "Bekräfta"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "Neka"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "Du har inte behörighet att ta bort kalendern"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "Borttagen kalender"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "Kunde inte ta bort kalender"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "Kalender skapad."
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "Ingen kategori vald"
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "Du har inte behörigheten att radera kategori"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "Borttagen kategori:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "Kunde inte ta bort kategori:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "Kategoriform"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "Synlig för gruppen"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "Färg är inte specifierad."
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "Ogiltig färg."
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "Du har inte behörighet att lägga till kategorier för alla kalendrar."
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "Du har inte behörighet att lägga till kategorier för den här kalendern."
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "Du har inte behörighet att ändra denna kategori."
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "Ändrad kategori:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "Skapad kategori:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "Fel vid begäran om kategori."
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "Titel"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "Tid"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "Beskrivning"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "Radera vald"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "Inga evenemang denna dag."
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "Ogiltiga argument."
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "Du har inte behörighet att läsa om denna händelse."
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "av"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "Kategori"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "När"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "Skapad:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "Senast ändrad:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "Ändrad händelse"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "Ta bort händelse"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "Föregående händelse"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "Nästa händelse"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "Visa alla händelser"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "Lägg till händelse"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "på"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "Ta bort"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "Händelser"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "från"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "Se ytterligare evenemang"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "fortsatt"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "Inget  evenemang valt"
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "Raderat evenemang"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "Raderade evenemang"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "Kunde inte ta bort evenemang"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "Kunde inte ta bort evenemangen"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "Du har inte behörighet att ta bort ett evenemang"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr " Du har inte behörighet att ta bort  evenemang"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "Händelseformulär"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "Ämne"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "Ändra evenemangets datum och tid "
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "Från"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "Till"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "Tidstyp"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "Normal"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "Heldag"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "Kommer att meddelas"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "Upprepas"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "Aldrig"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "Dagligen"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "Veckovis"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "Månadsvis"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "Årligen"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "Varje"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "Upprepa varje så många dagar?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "Tills"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "Upprepa varje så många veckor?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "Upprepa varje så många månader?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "Upprepa varje så många år?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "Bekräfta händelse"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "Okänd tidstyp."
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "En händelse kan inte ha ett slut tidigare än starten."
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "Du har inte behörighet att skriva till den här kalendern."
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "Obligatoriska fält \"varje-dag\" är inte inställd."
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "varje dag måste vara mer än 1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "Obligatoriska fält \"varje-vecka\" är inte inställd."
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "varje vecka måste vara mer än 1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "Obligatoriska fält \"varje månad\" är inte inställd."
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "varje månad måste vara mer än 1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "Obligatoriska fält \"varje år\" är inte inställd."
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "Ogiltig händelsetyp."
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "Ändrat evenemang:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "Skapat evenemang:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "Fel vid bekräftelse av evenemang."
+
+#: includes/form.php:32
+msgid "required"
+msgstr "krävs"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "Det går inte att lägga till ett icke-formelement till ett formulär."
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "Datum"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "januari"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "februari"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "mars"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "april"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "maj"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "juni"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "juli"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "augusti"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "september"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "oktober"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "november"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "december"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "tisdag"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "onsdag"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "torsdag"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "fredag"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "jan"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "feb"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "mars"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "apr"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "jun"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "jul"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "aug"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "sep"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "okt"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "nov"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "dec"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "Startdatum"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "Stigande"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "Fallande"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "Ingen grupp vald"
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "Du har inte behörighet att ta bort gruppen:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "Raderad grupp:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "Kunde inte ta bort grupp:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "Gruppformulär"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "Du har inte behörighet att lägga till en global grupp."
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "Du har inte behörighet att lägga till en grupp till den här kalendern."
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "Du har inte behörighet att ändra denna grupp."
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "Ändrad grupp:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "Skapad grupp:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "Fel vid bekräftelse av grupp."
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr " Du måste vara admin"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "Fel vid val av händelser i import"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "Skapad %s evenemang med %s förekomster"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "Inloggad."
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "Felaktig inloggning"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "Du måste ge tillåtelse för cookies för att kunna logga in."
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "Lösenord"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "Loggar ut..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "Händelseformulär"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "Bekräfta händelse"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "Kan inte skapa händelse"
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID är inte inställt."
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "Ändrad händelse:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "Skapad händelse:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "Fel vi bekräftelse av händelse."
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "Ingen händelse vald."
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "Raderad händelse"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "Raderade händelser"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "Kunde inte radera händelse"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "Kunde inte radera händelser"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr " Du har inte behörighet att ta bort händelsen."
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "Du har inte behörighet att ta bort händelser."
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "Du måste vara inloggad."
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "Du har inte behörighet att ändra ditt lösenord."
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "Du måste ange ditt gamla lösenord."
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "Lösenordet matchade inte ditt gamla lösenord."
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "Du måste ange ett lösenord"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "Dina lösenord matchar inte"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "Lösenordet har ändrats"
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(Ingen titel)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "Fel i get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "Fel i get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "Evenemanget finns inte"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "Fel i get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "Evenemanget finns inte med oid"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "Fel i get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "Kategori finns inte med catid"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "Fel i get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "Gruppen finns inte med gid"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "Fel i get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "Fel i get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "Fel i get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "Fel i get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "Fel i get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "Fel i  get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "Fel uppstår när du tar bort ett evenemang."
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "Fel uppstår när du tar bort en händelse."
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "Fel uppstår när du tar bort en kalender"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "Fel uppstår när du tar bort en kategori."
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr " Fel uppstår när du tar bort en grupp."
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "Fel uppstår när du tar bort "
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "Det gick inte att läsa behörigheter."
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "Det gick inte att få fram kalendrar."
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "Kunde inte få fram användare."
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "Fel vid att få tag i användare."
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "Fel uppstår vid skapandet av användare."
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "Fel vid läsning av alternativ"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "Fel vid skapande av alternativ"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "Fel vid ändring av lösenord."
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "Fel vid ändring av tidszon."
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "Fel vid ändring av språk."
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "Fel vid skapandet av evenemang."
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "Fel vid skapandet av händelse."
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "Fel vid ändring av händelse."
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "Fel vid ändring av evenemang."
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "Fel vid skapandet av kategori."
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "Fel när du skapade grupp."
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "Fel vid ändring av kategori."
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "Fel vid ändring av grupp."
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "Fel under sökning"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "Fel vid uppdatering av användarbehörigheter."
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "Fel vid inmatning av tecken vid inloggning."
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "Fel när tecken skulle läggas till vid inloggning."
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "Fel vid uppdatering av logintecken."
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr " Fel vid borttagande av logintecken."
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "Fel vid rensning av logintecken."
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL fråga"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "anonym"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "okänd"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(Inget ämne)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB svarade med ett felaktigt datum."
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "TBA"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "till"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "Ogiltigt sorteringsalternativ"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "Ogiltigt ordningsalternativ"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "Inga evenemang hittades för dina sökkriteria."
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "Sökresultat"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "Datum Tid"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "Fras"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "Sortera efter"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "Ordning"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "Ändra lösenord"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "Gammalt lösenord"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "Nytt lösenord"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "Bekräfta nytt lösenord"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "Inställningarna sparades"
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "Möjlig intrångsförsök på ditt konto."
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "Månad är utanför intervallet."
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "Ogiltigt år"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "Översatt \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "Bekräfta lösenord"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "Skapa admin"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "Du måste ange ett användarnamn"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "Användaren finns redan."
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "Du måste vara admin för att kunna radera användare."
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "Ingen användare vald."
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "Ingen användare"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "Inga ändringar att utföra."
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "Uppdaterade användare(-arna):"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "fortsätt"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "Programfel"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "Meddelande:"
diff --git a/locale/th/LC_MESSAGES/messages.po b/locale/th/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..2bdd492
--- /dev/null
+++ b/locale/th/LC_MESSAGES/messages.po
@@ -0,0 +1,1465 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# leosoft yupp <yuparat_ouy@hotmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Thai (http://www.transifex.com/sproctor/php-calendar/language/th/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: th\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "คุณต้องเข้าสู่ระบบในฐานะผู้ดูแลระบบ"
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "แปลความ"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "เวอร์ชั่น"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "ปฏิทิน"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "ดำเนินการ"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "แก้ไข"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "ลบ"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "สร้างปฏิทิน"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "รายการปฏิทิน"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "ชื่อผู้ใช้"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "สร้างผู้ใช้"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr ""
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "นำเข้าจาก"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "mysql เซอร์เวอร์"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "ชื่อฐานข้อมูล"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "หมายเลข port"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "ปล่อยว่างไว้สำหรับค่าตั้งต้น"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "ชื่อผุ้ใช้ฐานข้อมูล"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "รหัสผ่านฐานข้อมูล"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr ""
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "ตกลง"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "อ่าน"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "เขียน"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "อ่านอย่างเดียว"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "แก้ไข"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "ผู้ดูแลระบบ"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "สิทธิ์ของผู้ใช้"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "ชื่อผู้ใช้"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "ไม่ระบุชื่อ"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "สร้างหมวดหมู่"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "หมวดหมู่ปฏิทิน"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "ชื่อ"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "สีตัวอักษร"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "สีพื้นหลัง"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "การดำเนินการ"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "สร้างกลุ่ม"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "กลุ่มปฏิทิน"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "ไม่อนุญาตให้ใช้"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "ไม่ได้ตั้งค่า"
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr ""
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "ภาษา"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "เขตเวลา"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "ยินดีต้อนรับ"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "ตั้งค่า"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "ออกจากระบบ"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr ""
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "เพิ่มเหตุการณ์"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "ค้นหา"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "ดูรายเดือน"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "ดูรายวัน"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr ""
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "ค่าตั้งต้น"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "เริ่มสัปดาห์"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "อาทิตย์"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "จันทร์"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "เสาร์"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24 ชั่วโมง"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "หัวข้อปฏิทิน"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "ความยาวสูงสุดหัวเรื่อง"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "เหตุการณ์ที่เกิดขึ้นแสดงสูงสุดประจำวัน"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "การอนุญาตสาธารณะ"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "ไม่สามารถอ่านหรือเขียนเหตุการณ์"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "สามารถอ่าน แต่ไม่สามารถเขียนเหตุการณ์"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "สามารถสร้าง แต่ไม่สามาถแก้ไขเหตุการณ์"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "สามารถสร้างและแก้ไขเหตุการณ์"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "โซนเริ่มต้น"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "ภาษาเริ่มต้น"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "รูปแบบวันที่"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "รูปแบบ"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "เดือน วัน ปี"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "ปี เดือน วัน"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "วัน เดือน ปี"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "คุณไม่ได้รับสิทธิ์ที่จะกระทำ"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "ผิดพลาด"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "การกระทำที่ไม่ถูกต้อง"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr ""
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "ยืนยัน คุณต้องการลบ"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "ยืนยัน"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "ปฎิเสธ"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "คุณไม่ได้รับสิทธิ์ในการลบปฏิทิน"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "ลบปฏิทิน"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "ไม่สามารถลบปฏิทิน"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "สร้างปฏิทิน"
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr ""
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr ""
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr ""
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr ""
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "สีไม่ถูกต้อง"
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "แก้ไขหมวดหมู่"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "หัวข้อ"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "เวลา"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "รายละเอียด"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "ลบรายการที่เลือก"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "ไม่มีกิจกรรมในวันนี้"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "โดย"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "หมวดหมุ่"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "เมื่อ"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "สร้างเมื่อ"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "ปรับปรุงครั้งล่าสุด"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "การปรับปรุงที่เกิดขึ้น"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "การลบที่เกิดขึ้น"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "ปรากฏการณ์ที่เกิดขึ้นก่อนหน้านี้"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "การเปลี่ยนแปลที่จะเกิดขึ้น"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "ดูที่เกิดขึ้นทั้งหมด"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "ที่"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "เอาออก"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "จาก"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "ดูเหตุการณ์เพิ่มเติม"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "ต่อเนื่อง"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "ไม่ได้เลือกเหตุการณ์"
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "เอาเหตุการณ์ออก"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "ยกเลิกเหตุการณ์ทั้งหมด"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "ไม่สามารถยกเลิกเหตุการณ์ได้"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "ไม่สามารถลบเหตุการณ์"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "คุณไม่มีสิทธิ์ยกเลิกเหตุการณ์"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "คุณไม่มีสิทธิ์ยกเลิกเหตุการณ์ทั้งหมด"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "ฟอร์มเหตุการณ์"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "เรื่อง"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "เปลี่ยนวันที่และเวลาเหตุการณ์"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "จาก"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "ถึง"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "ประเภทเวลา"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "ปกติ"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "เต็มวัน"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "ทำซ้ำ"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "ทุกวัน"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "ทุกสัปดาห์"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "ทุกเดือน"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "ทุกปี"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "จนถึง"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "ทำซ้ำทุกกี่สัปดาห์?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "ทำซ้ำทุกกี่เดือน?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "ทำซ้ำทุกกี่ปี?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "ส่งกิจกรรม"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "ไม่รู้จักประเภทเวลา"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "ไม่สามารถเพิ่มเหตุกาณ์ที่สิ้นสุดก่อนเริ่มต้น"
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "คุณไม่มีสิทธิ์ที่จะเขียนปฏิทินนี้"
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "ฟิลด์ที่จำเป็น \"ทุกวัน\" ไม่ได้ตั้งค่า"
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "แก้ไขเหตุการณ์"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "สร้างเหตุการณ์:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "ส่งเหตุการณ์ผิดพลาด"
+
+#: includes/form.php:32
+msgid "required"
+msgstr "จำเป็นต้องมี"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "วันที่"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "มกราคม"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "กุมภาพันธ์"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "มีนาคม"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "เมษายน"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "พฤษภาคม"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "มิถุนายน"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "กรกฎาคม"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "สิงหาคม"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "กันยายน"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "ตุลาคม"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "พศจิกายน"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "ธันวาคม"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "อังคาร"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "พุธ"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "พฤหัสบดี"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "ศูกร์"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "ม.ค."
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "ก.พ."
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "มี.ค."
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "เม.ย."
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "พ.ค."
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "ก.ค."
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "ส.ค."
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "ก.ย."
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "ต.ค."
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "พ.ย."
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "ธ.ค."
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "เริ่มวันที่"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "น้อยไปมาก"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "มากไปน้อย"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "ไม่ได้เลือกกลุ่ม"
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "คุณไม่มีสิทธิ์ลบกลุ่ม"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "ลบกลุ่ม"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "ไม่สามารถลบกลุ่ม"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "รูปแบบกลุ่ม"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "แก้ไขกลุ่ม"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "เข้าใช้งานอยู่"
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "ขออภัย, ไม่ถูกต้อง"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "รหัสผ่าน"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "ออกจากระบบ..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(ไม่มีหัวข้อ)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "ไม่มีเหตุการณ์"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "บุคคลทั่วไป"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "ไม่ทราบ"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(ไม่มีหัวเรื่อง)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "ถึง"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "ผลการค้นหา"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "วัน เวลา"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr ""
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "เรียงโดย"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr ""
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "เปลี่ยนรหัสผ่าน"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "รหัสผ่านเดิม"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "รหัสผ่านใหม่"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "ยืนยันรหัสผ่านใหม่"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "ปรับปรุงการตั้งค่า"
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr ""
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "ยืนยันรหัสผ่าน"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "คุณต้องระบบผู้ใช้งาน"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "ผู้ใช้งานมีอยู่แล้ว"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "ไม่ได้เลือกผู้ใช้งาน"
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "ไม่มีผู้ใช้"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "ไม่สามารถทำการเปลี่ยนแปลง"
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "ต่อเนื่อง"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "โปรแกรมผิดพลาด"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "ข้อความ:"
diff --git a/locale/vi/LC_MESSAGES/messages.po b/locale/vi/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..a7aa878
--- /dev/null
+++ b/locale/vi/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Vietnamese (http://www.transifex.com/sproctor/php-calendar/language/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr ""
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr ""
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr ""
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr ""
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr ""
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr ""
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr ""
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr ""
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr ""
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr ""
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr ""
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr ""
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr ""
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr ""
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr ""
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr ""
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr ""
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr ""
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr ""
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr ""
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr ""
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr ""
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr ""
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr ""
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr ""
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr ""
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr ""
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr ""
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr ""
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr ""
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr ""
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr ""
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr ""
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr ""
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr ""
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr ""
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr ""
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr ""
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr ""
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr ""
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr ""
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr ""
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr ""
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr ""
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr ""
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr ""
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr ""
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr ""
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr ""
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr ""
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr ""
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr ""
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr ""
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr ""
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr ""
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr ""
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr ""
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr ""
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr ""
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr ""
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr ""
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr ""
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr ""
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr ""
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr ""
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr ""
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr ""
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr ""
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr ""
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr ""
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr ""
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr ""
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr ""
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr ""
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr ""
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr ""
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr ""
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr ""
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr ""
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr ""
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr ""
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr ""
+
+#: includes/globals.php:24
+msgid "February"
+msgstr ""
+
+#: includes/globals.php:25
+msgid "March"
+msgstr ""
+
+#: includes/globals.php:26
+msgid "April"
+msgstr ""
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr ""
+
+#: includes/globals.php:28
+msgid "June"
+msgstr ""
+
+#: includes/globals.php:29
+msgid "July"
+msgstr ""
+
+#: includes/globals.php:30
+msgid "August"
+msgstr ""
+
+#: includes/globals.php:31
+msgid "September"
+msgstr ""
+
+#: includes/globals.php:32
+msgid "October"
+msgstr ""
+
+#: includes/globals.php:33
+msgid "November"
+msgstr ""
+
+#: includes/globals.php:34
+msgid "December"
+msgstr ""
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr ""
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr ""
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr ""
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr ""
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr ""
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr ""
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr ""
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr ""
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr ""
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr ""
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr ""
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr ""
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr ""
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr ""
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr ""
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr ""
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr ""
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr ""
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr ""
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr ""
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr ""
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr ""
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr ""
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr ""
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr ""
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr ""
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr ""
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr ""
+
+#: includes/search.php:118
+msgid "Order"
+msgstr ""
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr ""
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr ""
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr ""
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr ""
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr ""
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr ""
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/zh/LC_MESSAGES/index.html b/locale/zh/LC_MESSAGES/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/zh/LC_MESSAGES/messages.po b/locale/zh/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..59c059d
--- /dev/null
+++ b/locale/zh/LC_MESSAGES/messages.po
@@ -0,0 +1,1467 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# xinmate <DISLONGJIALU@126.com>, 2013
+# strangesheep <strangesheep@gmail.com>, 2018
+# xinmate <DISLONGJIALU@126.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Chinese (http://www.transifex.com/sproctor/php-calendar/language/zh/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "您必须登录为管理员"
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "日程表组"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "用户"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "导入"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "翻译"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "版本"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "日程表"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "行为"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "修改"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "删除"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "创建日程表"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "日程表"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "用户名"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "组"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "编辑组"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "新用户"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "用户列表"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "导入表单"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL主机名"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL 数据库名"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL 端口"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "默认为空"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL用户名"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL用户密码"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar表前缀"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "导入日程表"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "这个脚本需要访问你的php-calendar所在的目录来写入译文。除此之外，你还可以在命令行运行translate.php,或者通过其它可以从.po文件生成.mo文件的工具，比如msgfmt以及其它的获取文本工具。"
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "生成译文"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "日程表配置"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "类别组"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "选项组"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "提交"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "读取"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "写入"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "只读"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "修改"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "管理员"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "用户权限"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "用户名"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "可以创建只读"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "没有名称"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "无"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "创建分类"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "日历分类组"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "名称"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "文字颜色"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "背景颜色"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "在用户组中可见"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "行为组"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "创建用户组"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "日程表群组"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "没有权限"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "未设置"
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "更新选项。"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "语言"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "时区"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "欢迎"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "设置"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "注销"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "登录"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "新增日程"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "搜索"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "月视图"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "日视图"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "日程表管理"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "默认"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "每周从周几开始"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "星期日"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "星期一"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "星期六"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24小时制"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "日程表标题"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "最大标题字数限制"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "每天日程数最多显示"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "公共权限"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "不能读取或写入日程"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "可以读取但不能写入日程"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "可以创建但不能修改日程"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "可以创建和修改日程"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "默认时区"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "默认语言"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "日期格式"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "主题"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "月日年"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "年月日"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "日月年"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "你没有权限执行："
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "错误"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "回溯"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "无效行为"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "秘钥不匹配，可能有伪造企图。"
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "不支持的配置类型"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "必须填写必填项 \"%s\"。"
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "异常\"%s\" 时间： \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "无法识别的时间段："
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "异常\"%s\" 日期： \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "日期格式无效。"
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "没有日程表被选择。"
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "确认删除："
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "确认"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "拒绝"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "你没有权限删除日程表"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "删除日程表"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "无法删除日程表"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "日程表创建成功。"
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "没有选择类别。"
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "你没有权限删除类别："
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "删除类别："
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "无法删除类别："
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "类别表单"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "对组可见"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "提交类别"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "没有指定颜色。"
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "颜色无效。"
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "你没有权限在所有的日程表中添加类别。"
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "你没有权限在这个日程表中添加类别。"
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "您没有权限修改此类别。"
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "更改类别："
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "建立类别："
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "提交类别出错。"
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "标题"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "时间"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "描述"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "删除已选定"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "今日无日程。"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "无效参数。"
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "您没有权限读取此日程。"
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "申请人"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "类别"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "时限"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "创建："
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "最后修改："
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "修改记录"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "删除记录"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "上次记录"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "下次记录"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "查看所有记录"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "添加记录"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "在"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "删除"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "记录"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "从"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "W"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "日程显示"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "继续"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "无效日期"
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "没有选取日程"
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "删除日程"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "批量删除日程"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "不能删除日程"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "不能批量删除日程"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "你没有权限删除日程"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "你没有权限批量删除日程"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "日程表单"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "主题"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "改变日程的日期和时间"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "从"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "到"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "时间类型"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "普通"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "全天"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "公告"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "重复"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "永不"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "日度"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "周度"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "月度"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "年度"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "每"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "重复周期（天）？"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "直到"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "重复周期（周）？"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "重复周期（月）？"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "重复周期（年）？"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "提交日程"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "无法识别的时间类型。"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "一个日程不能在开始前结束。"
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "您没有权限写入该日程。"
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "必填字段 \"every-day（每天）\"未设置。"
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "每天必须大于1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "必填字段 \"every-week（每周）\"未设置。"
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "每周必须大于1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "必填字段 \"every-month（每月）\"未设置。"
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "每月必须大于1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "必填字段 \"every-year（每年）\"未设置。"
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "无效日程类型。"
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "修改日程："
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "建立日程："
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "提交日程时发生错误。"
+
+#: includes/form.php:32
+msgid "required"
+msgstr "必填项"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "不能给一个表单添加非表单元素。"
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "日期"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "一月"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "二月"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "三月"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "四月"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "五月"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "六月"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "七月"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "八月"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "九月"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "十月"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "十一月"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "十二月"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "星期二"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "星期三"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "星期四"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "星期五"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "一月"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "二月"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "三月"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "四月"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "六月"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "七月"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "八月"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "九月"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "十月"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "十一月"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "十二月"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "开始日期"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "升序"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "降序"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "没有选择组。"
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "你没有权限删除组："
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "删除组："
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "无法删除组："
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "从组"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "提交组"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "你没有权限添加全局组。"
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "你没有权限在这个日程表中添加组。"
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "你没有权限修改此组。"
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "更改组："
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "新增群组："
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "提交组时发生错误。"
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "需要管理员权限"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "导入日程过程中选择日程错误"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "创建包含突发事件%s的日程%s成功"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "登录成功。"
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "对不起，登录无效。"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "您必须启用Cookies才能登录。"
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "密码"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "注销..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "突发事件表单"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "确认突发事件"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "不能创建突发事件。"
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "未设置EID。"
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "修改突发事件："
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "创建突发事件："
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "提交突发事件时发生错误。"
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "没有突发事件被选择。"
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "删除突发事件"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "删除突发事件组"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "无法删除突发事件"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "无法批量删除突发事件组"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "你没有权限删除突发事件。"
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "你没有权限突发事件组。"
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "你必须先登录。"
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "你没有权限修改你的密码。"
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "你必须输入你的旧密码。"
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "您输入的密码和你的旧密码不匹配。"
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "您必须输入一个密码"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "前后输入的密码不匹配。"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "修改密码成功。"
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(无标题)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "在get_occurrences_by_date_range发生错误"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "在get_event_by_eid发生错误"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "日程不存在"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr "在get_event_by_oid发生错误"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "有此oid的日志不存在。"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "在get_category发生错误"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "有此catid的类别不存在。"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "在get_group发生错误"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "有此gid的组不存在"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "在get_groups发生错误"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "在get_user_groups发生错误"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "在get_categories发生错误"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "在get_visible_categories发生错误"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "在get_occurrence_by_oid发生错误"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "在get_occurrences_by_eid发生错误"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "移除日程时发送错误。"
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "移除记录时发生错误。"
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "移除日程表时发生错误。"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "移除分类时发生错误。"
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "删除群组时发生错误。"
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "删除时发生错误。"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "无法读取权限。"
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "无法批量取得日程表。"
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "无法获得用户。"
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "获得用户时发生错误。"
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "添加用户时发生错误。"
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "读取选项时发生错误。"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "创建选项时发生错误。"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "更新密码时发生错误。"
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "更新时区时发生错误。"
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "更新语言时发生错误。"
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "用户设置组时发生错误。"
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "用户移除组时发生错误。"
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "创建日程时发生错误。"
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "创建突发事件时发生错误。"
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "修改突发事件时发生错误。"
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "修改日程时发生错误。"
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "创建分类时发生错误。"
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "添加群组时发生错误"
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "修改分类时发生错误。"
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "修改群组时发生错误。"
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "搜索时发生错误"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "更新用户权限时发生错误。"
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "获取登录令牌时发生错误。"
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "添加登录令牌时发生错误。"
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "更新登录令牌时发生错误。"
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "修改登录令牌时发生错误。"
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "清除登录令牌时发生错误。"
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL查询"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "匿名"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "未知"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "（无主题）"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB（数据库）返回一个无效的日期。"
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "公告"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "到"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "无效的分类选项"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "无效的排序选项"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "没有符合搜索条件的事件"
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "搜寻结果"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "日期时间"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "习惯用法"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "分类"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "排序"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "更改密码"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "旧密码"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "新密码"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "确认新密码"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "设置更新。"
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "可能通过你的账号进行黑客攻击。"
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "月越界"
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "无效年"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "翻译 \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "确认密码"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "创建管理员"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "您必须指定一个用户名"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "此用户已经存在。"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "增加用户成功。"
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "你必须是管理员才能删除用户。"
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "没有选择任何用户。"
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "编辑用户组"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "组更新成功。"
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "没有用户"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "没有改变。"
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr "更新用户："
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "继续"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "软件错误"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "信息："
diff --git a/locale/zh/index.html b/locale/zh/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/locale/zh_CN/LC_MESSAGES/messages.po b/locale/zh_CN/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..a357b36
--- /dev/null
+++ b/locale/zh_CN/LC_MESSAGES/messages.po
@@ -0,0 +1,1464 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2022-01-28 15:21+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Chinese (China) (http://www.transifex.com/sproctor/php-calendar/language/zh_CN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr ""
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr ""
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr ""
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr ""
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr ""
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr ""
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr ""
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr ""
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr ""
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr ""
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr ""
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr ""
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr ""
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr ""
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr ""
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr ""
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr ""
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr ""
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr ""
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr ""
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr ""
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr ""
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr ""
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr ""
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr ""
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr ""
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr ""
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr ""
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr ""
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr ""
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr ""
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr ""
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr ""
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr ""
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr ""
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr ""
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr ""
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr ""
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr ""
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr ""
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr ""
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr ""
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr ""
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr ""
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr ""
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr ""
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr ""
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr ""
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr ""
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr ""
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr ""
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr ""
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr ""
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr ""
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr ""
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr ""
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr ""
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr ""
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr ""
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr ""
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr ""
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr ""
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr ""
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr ""
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr ""
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr ""
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr ""
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr ""
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr ""
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr ""
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr ""
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr ""
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr ""
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr ""
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr ""
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr ""
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr ""
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr ""
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr ""
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr ""
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr ""
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr ""
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr ""
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr ""
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr ""
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr ""
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr ""
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr ""
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr ""
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr ""
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr ""
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr ""
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr ""
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr ""
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr ""
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr ""
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr ""
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr ""
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr ""
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr ""
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr ""
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr ""
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr ""
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr ""
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr ""
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr ""
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr ""
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr ""
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr ""
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr ""
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr ""
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr ""
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr ""
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr ""
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr ""
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr ""
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr ""
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr ""
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr ""
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr ""
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr ""
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr ""
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr ""
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr ""
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr ""
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr ""
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr ""
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr ""
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr ""
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr ""
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr ""
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr ""
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr ""
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr ""
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr ""
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr ""
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr ""
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr ""
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr ""
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr ""
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr ""
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr ""
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr ""
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr ""
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr ""
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr ""
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr ""
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr ""
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr ""
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr ""
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr ""
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr ""
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr ""
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr ""
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr ""
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr ""
+
+#: includes/form.php:32
+msgid "required"
+msgstr ""
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr ""
+
+#: includes/form.php:428
+msgid "Date"
+msgstr ""
+
+#: includes/globals.php:23
+msgid "January"
+msgstr ""
+
+#: includes/globals.php:24
+msgid "February"
+msgstr ""
+
+#: includes/globals.php:25
+msgid "March"
+msgstr ""
+
+#: includes/globals.php:26
+msgid "April"
+msgstr ""
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr ""
+
+#: includes/globals.php:28
+msgid "June"
+msgstr ""
+
+#: includes/globals.php:29
+msgid "July"
+msgstr ""
+
+#: includes/globals.php:30
+msgid "August"
+msgstr ""
+
+#: includes/globals.php:31
+msgid "September"
+msgstr ""
+
+#: includes/globals.php:32
+msgid "October"
+msgstr ""
+
+#: includes/globals.php:33
+msgid "November"
+msgstr ""
+
+#: includes/globals.php:34
+msgid "December"
+msgstr ""
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr ""
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr ""
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr ""
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr ""
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr ""
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr ""
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr ""
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr ""
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr ""
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr ""
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr ""
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr ""
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr ""
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr ""
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr ""
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr ""
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr ""
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr ""
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr ""
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr ""
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr ""
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr ""
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr ""
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr ""
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr ""
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr ""
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr ""
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr ""
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr ""
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr ""
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr ""
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr ""
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr ""
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr ""
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr ""
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr ""
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr ""
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr ""
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr ""
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr ""
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr ""
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr ""
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr ""
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr ""
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr ""
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr ""
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr ""
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr ""
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr ""
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr ""
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr ""
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr ""
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr ""
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr ""
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr ""
+
+#: includes/search.php:118
+msgid "Order"
+msgstr ""
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr ""
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr ""
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr ""
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr ""
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr ""
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr ""
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr ""
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr ""
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr ""
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr ""
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr ""
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr ""
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr ""
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr ""
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr ""
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr ""
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr ""
+
+#: includes/util.php:75
+msgid "continue"
+msgstr ""
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr ""
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr ""
diff --git a/locale/zh_TW/LC_MESSAGES/messages.po b/locale/zh_TW/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..a52375b
--- /dev/null
+++ b/locale/zh_TW/LC_MESSAGES/messages.po
@@ -0,0 +1,1466 @@
+# PHP-Calendar.
+# Copyright (C) 2014 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# 
+# Translators:
+# Wayne <wayne.cw.kao@gmail.com>, 2014
+# Wayne <wayne.cw.kao@gmail.com>, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: php-calendar\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2014-02-18 09:54-0500\n"
+"PO-Revision-Date: 2017-09-23 19:34+0000\n"
+"Last-Translator: Wayne <wayne.cw.kao@gmail.com>\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/sproctor/php-calendar/language/zh_TW/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh_TW\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: includes/admin.php:28 includes/cadmin.php:26
+msgid "You must be logged in as an admin."
+msgstr "您必須以一個管理員登入"
+
+#: includes/admin.php:33
+msgid "Calendars"
+msgstr "行事曆"
+
+#: includes/admin.php:35 includes/cadmin.php:33
+msgid "Users"
+msgstr "使用者"
+
+#: includes/admin.php:37
+msgid "Import"
+msgstr "匯入"
+
+#: includes/admin.php:39 includes/translate.php:38
+msgid "Translate"
+msgstr "翻譯"
+
+#: includes/admin.php:42
+msgid "Version"
+msgstr "版本"
+
+#: includes/admin.php:55
+msgid "Calendar"
+msgstr "行事曆"
+
+#: includes/admin.php:56 includes/admin.php:91
+msgid "Action"
+msgstr "動作"
+
+#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
+#: includes/display_event.php:193
+msgid "Edit"
+msgstr "編輯"
+
+#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
+#: includes/cadmin.php:206 includes/display_event.php:78
+#: includes/display_event.php:166
+msgid "Delete"
+msgstr "刪除"
+
+#: includes/admin.php:70 includes/calendar_form.php:85
+msgid "Create Calendar"
+msgstr "建立行事曆"
+
+#: includes/admin.php:74
+msgid "Calendar List"
+msgstr "行事曆清單"
+
+#: includes/admin.php:88 includes/login.php:77
+msgid "Username"
+msgstr "使用者名稱"
+
+#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
+#: includes/user_create.php:73
+msgid "Groups"
+msgstr "群組"
+
+#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
+#: includes/cadmin.php:131
+msgid "Edit Groups"
+msgstr "編輯群組"
+
+#: includes/admin.php:106 includes/user_create.php:51
+msgid "Create User"
+msgstr "建立使用者"
+
+#: includes/admin.php:110
+msgid "User List"
+msgstr "使用者清單"
+
+#: includes/admin.php:121
+msgid "Import Form"
+msgstr "匯入表單"
+
+#: includes/admin.php:122
+msgid "MySQL Host Name"
+msgstr "MySQL 主機名稱"
+
+#: includes/admin.php:123
+msgid "MySQL Database Name"
+msgstr "MySQL 資料庫名稱"
+
+#: includes/admin.php:124
+msgid "MySQL Port Number"
+msgstr "MySQL 連接埠數字"
+
+#: includes/admin.php:124
+msgid "Leave blank for default"
+msgstr "留下空白為預設"
+
+#: includes/admin.php:125
+msgid "MySQL User Name"
+msgstr "MySQL 使用者名稱"
+
+#: includes/admin.php:126
+msgid "MySQL User Password"
+msgstr "MySQL 使用者密碼"
+
+#: includes/admin.php:129
+msgid "PHP-Calendar Table Prefix"
+msgstr "PHP-Calendar 表格字首"
+
+#: includes/admin.php:134
+msgid "Import Calendar"
+msgstr "匯入行事曆"
+
+#: includes/admin.php:150
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr "為了寫入翻譯檔案此腳本需要讀取存取您的行事曆目錄. 或者, 您能從命令列執行 translate.php 或是使用 msgfmt 或任何其它 gettext 工具可以產生 .mo 檔案從 .po 檔案."
+
+#: includes/admin.php:153
+msgid "Generate Translations"
+msgstr "產生翻譯"
+
+#: includes/cadmin.php:31
+msgid "Calendar Configuration"
+msgstr "行事曆組態"
+
+#: includes/cadmin.php:35
+msgid "Categories"
+msgstr "類別"
+
+#: includes/cadmin.php:68
+msgid "Options"
+msgstr "選項"
+
+#: includes/cadmin.php:72 includes/cadmin.php:121
+#: includes/calendar_form.php:92 includes/settings.php:58
+#: includes/settings.php:98 includes/user_create.php:58
+#: includes/user_groups.php:70
+msgid "Submit"
+msgstr "提出"
+
+#: includes/cadmin.php:98 includes/cadmin.php:125
+msgid "Read"
+msgstr "讀取"
+
+#: includes/cadmin.php:99 includes/cadmin.php:126
+msgid "Write"
+msgstr "寫入"
+
+#: includes/cadmin.php:100 includes/event_form.php:110
+msgid "Read-only"
+msgstr "唯讀"
+
+#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
+#: includes/display_event.php:76 includes/display_event.php:162
+msgid "Modify"
+msgstr "修改"
+
+#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
+#: includes/user_create.php:71
+msgid "Admin"
+msgstr "管理員"
+
+#: includes/cadmin.php:117
+msgid "User Permissions"
+msgstr "使用者權限"
+
+#: includes/cadmin.php:124 includes/user_create.php:61
+msgid "User Name"
+msgstr "使用者名稱"
+
+#: includes/cadmin.php:127
+msgid "Can Create Read-Only"
+msgstr "可建立唯讀"
+
+#: includes/cadmin.php:146 includes/cadmin.php:197
+msgid "No Name"
+msgstr "沒有名稱"
+
+#: includes/cadmin.php:149 includes/category_form.php:44
+#: includes/event_form.php:113
+msgid "None"
+msgstr "無"
+
+#: includes/cadmin.php:168
+msgid "Create category"
+msgstr "建立類別"
+
+#: includes/cadmin.php:171
+msgid "Calendar Categories"
+msgstr "行事曆類別"
+
+#: includes/cadmin.php:174 includes/cadmin.php:218
+#: includes/category_form.php:28 includes/group_form.php:28
+msgid "Name"
+msgstr "名稱"
+
+#: includes/cadmin.php:175 includes/category_form.php:40
+msgid "Text Color"
+msgstr "文字顏色"
+
+#: includes/cadmin.php:176 includes/category_form.php:41
+msgid "Background Color"
+msgstr "背景顏色"
+
+#: includes/cadmin.php:177
+msgid "Visible to User Group"
+msgstr "可檢視於使用者群組"
+
+#: includes/cadmin.php:178 includes/cadmin.php:219
+msgid "Actions"
+msgstr "動作"
+
+#: includes/cadmin.php:212
+msgid "Create group"
+msgstr "建立群組"
+
+#: includes/cadmin.php:215
+msgid "Calendar Groups"
+msgstr "行事曆群組"
+
+#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
+#: includes/user_create.php:26 includes/user_groups.php:26
+#: includes/user_permissions_submit.php:27
+msgid "Permission denied"
+msgstr "權限被拒絕"
+
+#: includes/cadmin_submit.php:39
+msgid " was not set."
+msgstr "並未設定"
+
+#: includes/cadmin_submit.php:46
+msgid "Updated options"
+msgstr "已更新選項"
+
+#: includes/calendar.php:118 includes/settings.php:104
+msgid "Language"
+msgstr "語言"
+
+#: includes/calendar.php:119 includes/settings.php:101
+msgid "Timezone"
+msgstr "時區"
+
+#: includes/calendar.php:443
+msgid "Welcome"
+msgstr "歡迎"
+
+#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
+msgid "Settings"
+msgstr "設定值"
+
+#: includes/calendar.php:453
+msgid "Log out"
+msgstr "登出"
+
+#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
+msgid "Log in"
+msgstr "登入"
+
+#: includes/calendar.php:475
+msgid "Add Event"
+msgstr "加入事件"
+
+#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
+msgid "Search"
+msgstr "搜尋"
+
+#: includes/calendar.php:483
+msgid "View Month"
+msgstr "檢視月份"
+
+#: includes/calendar.php:488
+msgid "View date"
+msgstr "檢視日期"
+
+#: includes/calendar.php:492
+msgid "Calendar Admin"
+msgstr "行事曆管理員"
+
+#: includes/calendar.php:527 includes/calendar.php:588
+#: includes/calendar.php:597 includes/settings.php:81
+msgid "Default"
+msgstr "預設"
+
+#: includes/calendar.php:533
+msgid "Week Start"
+msgstr "週開始於"
+
+#: includes/calendar.php:535 includes/globals.php:38
+msgid "Sunday"
+msgstr "週日"
+
+#: includes/calendar.php:536 includes/globals.php:39
+msgid "Monday"
+msgstr "週一"
+
+#: includes/calendar.php:537 includes/globals.php:44
+msgid "Saturday"
+msgstr "週六"
+
+#: includes/calendar.php:539
+msgid "24 Hour Time"
+msgstr "24 小時時制"
+
+#: includes/calendar.php:540
+msgid "Calendar Title"
+msgstr "行事曆標題"
+
+#: includes/calendar.php:541
+msgid "Maximum Subject Length"
+msgstr "最大主題長度"
+
+#: includes/calendar.php:542
+msgid "Events Display Daily Maximum"
+msgstr "每日事件顯示最大數"
+
+#: includes/calendar.php:543
+msgid "Public Permissions"
+msgstr "公眾權限"
+
+#: includes/calendar.php:545
+msgid "Cannot read nor write events"
+msgstr "無法讀取和寫入事件"
+
+#: includes/calendar.php:546
+msgid "Can read but not write events"
+msgstr "可以讀取但無法寫入事件"
+
+#: includes/calendar.php:547
+msgid "Can create but not modify events"
+msgstr "可以建立但不能修改事件"
+
+#: includes/calendar.php:548
+msgid "Can create and modify events"
+msgstr "可以建立和修改事件"
+
+#: includes/calendar.php:551
+msgid "Default Timezone"
+msgstr "預設時區"
+
+#: includes/calendar.php:552
+msgid "Default Language"
+msgstr "預設語言"
+
+#: includes/calendar.php:554
+msgid "Date Format"
+msgstr "日期格式"
+
+#: includes/calendar.php:556
+msgid "Theme"
+msgstr "主題"
+
+#: includes/calendar.php:615
+msgid "Month Day Year"
+msgstr "月 日 年"
+
+#: includes/calendar.php:616
+msgid "Year Month Day"
+msgstr "年 月 日"
+
+#: includes/calendar.php:617
+msgid "Day Month Year"
+msgstr "日 月 年"
+
+#: includes/calendar.php:649
+msgid "You do not have permission to do that: "
+msgstr "您沒有權限去做那個:"
+
+#: includes/calendar.php:662 includes/util.php:156
+msgid "Error"
+msgstr "錯誤"
+
+#: includes/calendar.php:664 includes/util.php:160
+msgid "Backtrace"
+msgstr "回溯"
+
+#: includes/calendar.php:676
+msgid "Invalid action"
+msgstr "無效的動作"
+
+#: includes/calendar.php:721
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr "秘密記號不相符. 可能要求偽造嘗試."
+
+#: includes/calendar.php:800
+msgid "Unsupported config type"
+msgstr "不支援的組態類型"
+
+#: includes/calendar.php:810
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr "要求的欄位 \"%s\" 沒有設定"
+
+#: includes/calendar.php:819
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr "畸形的 \"%s\" 時間: \"%s\""
+
+#: includes/calendar.php:834
+msgid "Unrecognized period: "
+msgstr "無法辨識的時段:"
+
+#: includes/calendar.php:842
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr "畸形的 \"%s\" 日期: \"%s\""
+
+#: includes/calendar.php:863
+msgid "Invalid date_format."
+msgstr "無效的 date_format"
+
+#: includes/calendar_delete.php:29
+msgid "No calendar selected."
+msgstr "沒有行事曆被選取"
+
+#: includes/calendar_delete.php:45 includes/category_delete.php:49
+#: includes/event_delete.php:46 includes/group_delete.php:49
+#: includes/occurrence_delete.php:48 includes/user_delete.php:50
+msgid "Confirm you want to delete:"
+msgstr "確定您要刪除:"
+
+#: includes/calendar_delete.php:47 includes/category_delete.php:51
+#: includes/event_delete.php:48 includes/group_delete.php:51
+#: includes/occurrence_delete.php:50 includes/user_delete.php:52
+msgid "Confirm"
+msgstr "確定"
+
+#: includes/calendar_delete.php:50 includes/category_delete.php:54
+#: includes/event_delete.php:51 includes/group_delete.php:54
+#: includes/occurrence_delete.php:53 includes/user_delete.php:55
+msgid "Deny"
+msgstr "拒絕"
+
+#: includes/calendar_delete.php:58
+msgid "You do not have permission to remove calendar"
+msgstr "您沒有權限移除行事曆"
+
+#: includes/calendar_delete.php:63
+msgid "Removed calendar"
+msgstr "已移除的行事曆"
+
+#: includes/calendar_delete.php:65
+msgid "Could not remove calendar"
+msgstr "不能移除行事曆"
+
+#: includes/calendar_form.php:64
+msgid "Calendar created."
+msgstr "行事曆已建立"
+
+#: includes/category_delete.php:29
+msgid "No category selected."
+msgstr "沒有類別被選取"
+
+#: includes/category_delete.php:63
+msgid "You do not have permission to delete category: "
+msgstr "您沒有權限刪除類別:"
+
+#: includes/category_delete.php:68
+msgid "Removed category: "
+msgstr "已移除的類別:"
+
+#: includes/category_delete.php:71
+msgid "Could not remove category: "
+msgstr "無法移除類別:"
+
+#: includes/category_form.php:27
+msgid "Category Form"
+msgstr "類別表單"
+
+#: includes/category_form.php:43
+msgid "Visible to groups"
+msgstr "可檢視於群組"
+
+#: includes/category_form.php:49
+msgid "Submit Category"
+msgstr "提出類別"
+
+#: includes/category_submit.php:33
+msgid "Color not specified."
+msgstr "顏色未指定"
+
+#: includes/category_submit.php:47
+msgid "Invalid color."
+msgstr "無效的顏色"
+
+#: includes/category_submit.php:55
+msgid "You do not have permission to add categories to all calendars."
+msgstr "您沒有權限加入類別到所有行事曆"
+
+#: includes/category_submit.php:60
+msgid "You do not have permission to add categories to this calendar."
+msgstr "您沒有權限加入類別到此行事曆"
+
+#: includes/category_submit.php:73
+msgid "You do not have permission to modify this category."
+msgstr "您沒有權限修改此類別"
+
+#: includes/category_submit.php:82
+msgid "Modified category: "
+msgstr "已修改的類別:"
+
+#: includes/category_submit.php:86
+msgid "Created category: "
+msgstr "已建立的類別:"
+
+#: includes/category_submit.php:90
+msgid "Error submitting category."
+msgstr "提出類別時錯誤"
+
+#: includes/display_day.php:45
+msgid "Title"
+msgstr "標題"
+
+#: includes/display_day.php:46 includes/form.php:431
+msgid "Time"
+msgstr "時間"
+
+#: includes/display_day.php:47 includes/display_event.php:127
+#: includes/display_event.php:171 includes/event_form.php:44
+#: includes/search.php:92
+msgid "Description"
+msgstr "描述"
+
+#: includes/display_day.php:58
+msgid "Delete Selected"
+msgstr "刪除已選取的"
+
+#: includes/display_day.php:111
+msgid "No events on this day."
+msgstr "沒有事件於此日"
+
+#: includes/display_event.php:41
+msgid "Invalid arguments."
+msgstr "無效的引數"
+
+#: includes/display_event.php:53 includes/display_event.php:142
+msgid "You do not have permission to read this event."
+msgstr "您沒有權限讀取此事件"
+
+#: includes/display_event.php:57 includes/display_event.php:146
+#: includes/display_event.php:218
+msgid "by"
+msgstr "由"
+
+#: includes/display_event.php:62 includes/display_event.php:156
+#: includes/display_event.php:226 includes/event_form.php:112
+msgid "Category"
+msgstr "類別"
+
+#: includes/display_event.php:66 includes/event_form.php:46
+#: includes/occur_form.php:42
+msgid "When"
+msgstr "何時"
+
+#: includes/display_event.php:68 includes/display_event.php:149
+msgid "Created at: "
+msgstr "已建立於:"
+
+#: includes/display_event.php:70 includes/display_event.php:151
+msgid "Last modified at: "
+msgstr "最後修改於:"
+
+#: includes/display_event.php:80
+msgid "Modify Occurrence"
+msgstr "修改發生事件"
+
+#: includes/display_event.php:82
+msgid "Remove Occurrence"
+msgstr "移除發生事件"
+
+#: includes/display_event.php:101
+msgid "Previous occurrence on"
+msgstr "前次發生事件於"
+
+#: includes/display_event.php:111
+msgid "Next occurrence on"
+msgstr "下次事件發生於"
+
+#: includes/display_event.php:117
+msgid "View All Occurrences"
+msgstr "檢視所有發生事件"
+
+#: includes/display_event.php:164
+msgid "Add Occurrence"
+msgstr "加入發生事件"
+
+#: includes/display_event.php:187 includes/occurrence_delete.php:45
+#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
+#: includes/phpcoccurrence.class.php:255
+msgid "at"
+msgstr "於"
+
+#: includes/display_event.php:194
+msgid "Remove"
+msgstr "移除"
+
+#: includes/display_event.php:201
+msgid "Occurrences"
+msgstr "發生事件"
+
+#: includes/display_event.php:228
+msgid "from"
+msgstr "從"
+
+#: includes/display_month.php:32 includes/display_week.php:32
+msgctxt "Week"
+msgid "W"
+msgstr "W"
+
+#: includes/display_month.php:231 includes/display_week.php:215
+msgid "View Additional Events"
+msgstr "檢視額外的事件"
+
+#: includes/display_month.php:245 includes/display_week.php:229
+msgid "continued"
+msgstr "已繼續"
+
+#: includes/display_week.php:39
+msgid "Invalid date."
+msgstr "無效的日期"
+
+#: includes/event_delete.php:29
+msgid "No event selected."
+msgstr "沒有事件被選取"
+
+#: includes/event_delete.php:75
+msgid "Removed event"
+msgstr "已移除的事件"
+
+#: includes/event_delete.php:77
+msgid "Removed events"
+msgstr "已移除的事件"
+
+#: includes/event_delete.php:84
+msgid "Could not remove event"
+msgstr "無法移除事件"
+
+#: includes/event_delete.php:86
+msgid "Could not remove events"
+msgstr "無法移除事件"
+
+#: includes/event_delete.php:93
+msgid "You do not have permission to remove event"
+msgstr "您沒有權限移除事件"
+
+#: includes/event_delete.php:95
+msgid "You do not have permission to remove events"
+msgstr "您沒有權限移除事件"
+
+#: includes/event_form.php:40
+msgid "Event Form"
+msgstr "事件表單"
+
+#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
+msgid "Subject"
+msgstr "主題"
+
+#: includes/event_form.php:50
+msgid "Change the event date and time"
+msgstr "變更事件日期和時間"
+
+#: includes/event_form.php:53 includes/occur_form.php:44
+#: includes/phpcoccurrence.class.php:252 includes/search.php:111
+msgid "From"
+msgstr "從"
+
+#: includes/event_form.php:54 includes/occur_form.php:45
+#: includes/search.php:113
+msgid "To"
+msgstr "到"
+
+#: includes/event_form.php:57 includes/occur_form.php:48
+msgid "Time Type"
+msgstr "時間類型"
+
+#: includes/event_form.php:58 includes/occur_form.php:49
+msgid "Normal"
+msgstr "正常"
+
+#: includes/event_form.php:59 includes/occur_form.php:50
+msgid "Full Day"
+msgstr "全日"
+
+#: includes/event_form.php:60 includes/occur_form.php:51
+msgid "To Be Announced"
+msgstr "將被公布"
+
+#: includes/event_form.php:66
+msgid "Repeats"
+msgstr "重複"
+
+#: includes/event_form.php:68
+msgid "Never"
+msgstr "絕不"
+
+#: includes/event_form.php:70
+msgid "Daily"
+msgstr "每日的"
+
+#: includes/event_form.php:72
+msgid "Weekly"
+msgstr "每週的"
+
+#: includes/event_form.php:74
+msgid "Monthly"
+msgstr "每月的"
+
+#: includes/event_form.php:76
+msgid "Yearly"
+msgstr "年度的"
+
+#: includes/event_form.php:78 includes/event_form.php:85
+#: includes/event_form.php:92 includes/event_form.php:99
+msgid "Every"
+msgstr "每一"
+
+#: includes/event_form.php:79
+msgid "Repeat every how many days?"
+msgstr "重複每多少日?"
+
+#: includes/event_form.php:82 includes/event_form.php:90
+#: includes/event_form.php:97 includes/event_form.php:104
+msgid "Until"
+msgstr "直到"
+
+#: includes/event_form.php:86
+msgid "Repeat every how many weeks?"
+msgstr "重複每多少週?"
+
+#: includes/event_form.php:93
+msgid "Repeat every how many months?"
+msgstr "重複每多少月?"
+
+#: includes/event_form.php:100
+msgid "Repeat every how many years?"
+msgstr "重複每多少年?"
+
+#: includes/event_form.php:129
+msgid "Submit Event"
+msgstr "提出事件"
+
+#: includes/event_form.php:296 includes/occur_form.php:134
+msgid "Unrecognized Time Type."
+msgstr "無法辨識的時間類型"
+
+#: includes/event_form.php:301 includes/occur_form.php:139
+msgid "An event cannot have an end earlier than its start."
+msgstr "一件事件不能終於比它開始更早"
+
+#: includes/event_form.php:309 includes/occur_form.php:144
+msgid "You do not have permission to write to this calendar."
+msgstr "您沒有權限寫入此行事曆"
+
+#: includes/event_form.php:342
+msgid "Required field \"every-day\" is not set."
+msgstr "要求的欄位 \"每一日\" 沒有設定"
+
+#: includes/event_form.php:345
+msgid "every-day must be greater than 1"
+msgstr "每一日必須大於1"
+
+#: includes/event_form.php:361
+msgid "Required field \"every-week\" is not set."
+msgstr "要求的欄位 \"每一週\" 沒有設定"
+
+#: includes/event_form.php:363
+msgid "every-week must be greater than 1"
+msgstr "每一週必須大於1"
+
+#: includes/event_form.php:380
+msgid "Required field \"every-month\" is not set."
+msgstr "要求的欄位 \"每一月\" 沒有設定"
+
+#: includes/event_form.php:382 includes/event_form.php:401
+msgid "every-month must be greater than 1"
+msgstr "每一月必須大於1"
+
+#: includes/event_form.php:399
+msgid "Required field \"every-year\" is not set."
+msgstr "要求的欄位 \"每一年\" 沒有設定"
+
+#: includes/event_form.php:417
+msgid "Invalid event type."
+msgstr "無效的事件類型"
+
+#: includes/event_form.php:423
+msgid "Modified event: "
+msgstr "已修改的事件:"
+
+#: includes/event_form.php:425
+msgid "Created event: "
+msgstr "已建立的事件:"
+
+#: includes/event_form.php:432
+msgid "Error submitting event."
+msgstr "提出事件時錯誤"
+
+#: includes/form.php:32
+msgid "required"
+msgstr "被要求的"
+
+#: includes/form.php:102
+msgid "Cannot add a non-form element to a form."
+msgstr "無法加入一個非表單的元素到一個表單"
+
+#: includes/form.php:428
+msgid "Date"
+msgstr "日期"
+
+#: includes/globals.php:23
+msgid "January"
+msgstr "一月"
+
+#: includes/globals.php:24
+msgid "February"
+msgstr "二月"
+
+#: includes/globals.php:25
+msgid "March"
+msgstr "三月"
+
+#: includes/globals.php:26
+msgid "April"
+msgstr "四月"
+
+#: includes/globals.php:27 includes/globals.php:52
+msgid "May"
+msgstr "五月"
+
+#: includes/globals.php:28
+msgid "June"
+msgstr "六月"
+
+#: includes/globals.php:29
+msgid "July"
+msgstr "七月"
+
+#: includes/globals.php:30
+msgid "August"
+msgstr "八月"
+
+#: includes/globals.php:31
+msgid "September"
+msgstr "九月"
+
+#: includes/globals.php:32
+msgid "October"
+msgstr "十月"
+
+#: includes/globals.php:33
+msgid "November"
+msgstr "十一月"
+
+#: includes/globals.php:34
+msgid "December"
+msgstr "十二月"
+
+#: includes/globals.php:40
+msgid "Tuesday"
+msgstr "週二"
+
+#: includes/globals.php:41
+msgid "Wednesday"
+msgstr "週三"
+
+#: includes/globals.php:42
+msgid "Thursday"
+msgstr "週四"
+
+#: includes/globals.php:43
+msgid "Friday"
+msgstr "週五"
+
+#: includes/globals.php:48
+msgid "Jan"
+msgstr "一月"
+
+#: includes/globals.php:49
+msgid "Feb"
+msgstr "二月"
+
+#: includes/globals.php:50
+msgid "Mar"
+msgstr "三月"
+
+#: includes/globals.php:51
+msgid "Apr"
+msgstr "四月"
+
+#: includes/globals.php:53
+msgid "Jun"
+msgstr "六月"
+
+#: includes/globals.php:54
+msgid "Jul"
+msgstr "七月"
+
+#: includes/globals.php:55
+msgid "Aug"
+msgstr "八月"
+
+#: includes/globals.php:56
+msgid "Sep"
+msgstr "九月"
+
+#: includes/globals.php:57
+msgid "Oct"
+msgstr "十月"
+
+#: includes/globals.php:58
+msgid "Nov"
+msgstr "十一月"
+
+#: includes/globals.php:59
+msgid "Dec"
+msgstr "十二月"
+
+#: includes/globals.php:69
+msgid "Start Date"
+msgstr "開始日期"
+
+#: includes/globals.php:74
+msgid "Ascending"
+msgstr "升序"
+
+#: includes/globals.php:75
+msgid "Descending"
+msgstr "降序"
+
+#: includes/group_delete.php:29
+msgid "No group selected."
+msgstr "沒有群組被選取"
+
+#: includes/group_delete.php:63
+msgid "You do not have permission to delete group: "
+msgstr "您沒有權限刪除群組:"
+
+#: includes/group_delete.php:68
+msgid "Removed group: "
+msgstr "已移除的群組:"
+
+#: includes/group_delete.php:71
+msgid "Could not remove group: "
+msgstr "無法移除群組:"
+
+#: includes/group_form.php:27
+msgid "Group Form"
+msgstr "群組表單"
+
+#: includes/group_form.php:34
+msgid "Submit Group"
+msgstr "提出群組"
+
+#: includes/group_submit.php:32
+msgid "You do not have permission to add a global group."
+msgstr "您沒有權限加入一個全域群組"
+
+#: includes/group_submit.php:37
+msgid "You do not have permission to add a group to this calendar."
+msgstr "您沒有權限加入一個群組到此行事曆"
+
+#: includes/group_submit.php:49
+msgid "You do not have permission to modify this group."
+msgstr "您沒有權限修改此群組"
+
+#: includes/group_submit.php:57
+msgid "Modified group: "
+msgstr "已修改的群組:"
+
+#: includes/group_submit.php:61
+msgid "Created group: "
+msgstr "已建立的群組:"
+
+#: includes/group_submit.php:65
+msgid "Error submitting group."
+msgstr "提出群組時錯誤"
+
+#: includes/import.php:26 includes/translate.php:28
+msgid "Need to be admin"
+msgstr "需要是管理員"
+
+#: includes/import.php:69
+msgid "Error selecting events in import"
+msgstr "選取事件於匯入時錯誤"
+
+#: includes/import.php:154
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr "已建立 %s 事件用 %s 發生事件"
+
+#: includes/login.php:39
+msgid "Logged in."
+msgstr "已登入"
+
+#: includes/login.php:42
+msgid "Sorry, Invalid Login"
+msgstr "抱歉, 無效的登入"
+
+#: includes/login.php:72
+msgid "You must have cookies enabled to login."
+msgstr "您必須啟用 cookies 以登入"
+
+#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
+msgid "Password"
+msgstr "密碼"
+
+#: includes/logout.php:29
+msgid "Loggin out..."
+msgstr "登出..."
+
+#: includes/occur_form.php:40
+msgid "Occurrence Form"
+msgstr "發生事件表單"
+
+#: includes/occur_form.php:105
+msgid "Submit Occurrence"
+msgstr "提出發生事件"
+
+#: includes/occur_form.php:115
+msgid "Cannot create occurrence."
+msgstr "無法建立發生事件"
+
+#: includes/occur_form.php:149
+msgid "EID not set."
+msgstr "EID 沒有設定"
+
+#: includes/occur_form.php:161
+msgid "Modified occurence: "
+msgstr "已修改的發生事件:"
+
+#: includes/occur_form.php:163
+msgid "Created occurence: "
+msgstr "已建立的發生事件:"
+
+#: includes/occur_form.php:170
+msgid "Error submitting occurrence."
+msgstr "提出發生事件時錯誤"
+
+#: includes/occurrence_delete.php:29
+msgid "No occurrence selected."
+msgstr "沒有發生事件被選取"
+
+#: includes/occurrence_delete.php:79
+msgid "Removed occurrence"
+msgstr "已移除的發生事件"
+
+#: includes/occurrence_delete.php:81
+msgid "Removed occurrences"
+msgstr "已移除的發生事件"
+
+#: includes/occurrence_delete.php:88
+msgid "Could not remove occurrence"
+msgstr "無法移除發生事件"
+
+#: includes/occurrence_delete.php:90
+msgid "Could not remove occurrences"
+msgstr "無法移除發生事件"
+
+#: includes/occurrence_delete.php:97
+msgid "You do not have permission to remove the occurrence."
+msgstr "您沒有權限移除發生事件"
+
+#: includes/occurrence_delete.php:99
+msgid "You do not have permission to remove occurrences."
+msgstr "您沒有權限移除發生事件"
+
+#: includes/password_submit.php:27
+msgid "You must be logged in."
+msgstr "您必須是已登入"
+
+#: includes/password_submit.php:33
+msgid "You do not have permission to change your password."
+msgstr "您沒有權限變更您的密碼"
+
+#: includes/password_submit.php:36
+msgid "You must specify your old password."
+msgstr "您必須指定您的舊密碼"
+
+#: includes/password_submit.php:42
+msgid "The password you entered did not match your old password."
+msgstr "您輸入的密碼與您的舊密碼不相符"
+
+#: includes/password_submit.php:46 includes/user_create.php:90
+msgid "You must specify a password"
+msgstr "您必須指定一組密碼"
+
+#: includes/password_submit.php:51 includes/user_create.php:95
+msgid "Your passwords did not match"
+msgstr "您的密碼不相符"
+
+#: includes/password_submit.php:58
+msgid "Password updated."
+msgstr "密碼已更新"
+
+#: includes/phpccalendar.class.php:51
+msgid "(No title)"
+msgstr "(沒有標題)"
+
+#: includes/phpcdatabase.class.php:93
+msgid "Error in get_occurrences_by_date_range"
+msgstr "錯誤於 get_occurrences_by_date_range"
+
+#: includes/phpcdatabase.class.php:145
+msgid "Error in get_event_by_eid"
+msgstr "錯誤於 get_event_by_eid"
+
+#: includes/phpcdatabase.class.php:149
+msgid "Event doesn't exist"
+msgstr "事件並不存在"
+
+#: includes/phpcdatabase.class.php:171
+msgid "Error in get_event_by_oid"
+msgstr " 錯誤於 get_event_by_oid"
+
+#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
+msgid "Event doesn't exist with oid"
+msgstr "用 oid 事件並不存在"
+
+#: includes/phpcdatabase.class.php:195
+msgid "Error in get_category"
+msgstr "錯誤於 get_category"
+
+#: includes/phpcdatabase.class.php:198
+msgid "Category doesn't exist with catid"
+msgstr "用 catid 類別並不存在"
+
+#: includes/phpcdatabase.class.php:212
+msgid "Error in get_group"
+msgstr "錯誤於 get_group"
+
+#: includes/phpcdatabase.class.php:215
+msgid "Group doesn't exist with gid"
+msgstr "用 gid 群組並不存在"
+
+#: includes/phpcdatabase.class.php:231
+msgid "Error in get_groups"
+msgstr "錯誤於 get_groups"
+
+#: includes/phpcdatabase.class.php:250
+msgid "Error in get_user_groups"
+msgstr "錯誤於 get_user_groups"
+
+#: includes/phpcdatabase.class.php:279
+msgid "Error in get_categories"
+msgstr "錯誤於 get_categories"
+
+#: includes/phpcdatabase.class.php:308
+msgid "Error in get_visible_categories"
+msgstr "錯誤於 get_visible_categories"
+
+#: includes/phpcdatabase.class.php:336
+msgid "Error in get_occurrence_by_oid"
+msgstr "錯誤於 get_occurrence_by_oid"
+
+#: includes/phpcdatabase.class.php:362
+msgid "Error in get_occurrences_by_eid"
+msgstr "錯誤於 get_occurrences_by_eid"
+
+#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
+msgid "Error while removing an event."
+msgstr "當移除一個事件時錯誤"
+
+#: includes/phpcdatabase.class.php:407
+msgid "Error while removing an occurrence."
+msgstr "當移除一個發生事件時錯誤"
+
+#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
+msgid "Error while removing a calendar"
+msgstr "當移除一個行事曆時錯誤"
+
+#: includes/phpcdatabase.class.php:433
+msgid "Error while removing category."
+msgstr "當移除類別時錯誤"
+
+#: includes/phpcdatabase.class.php:446
+msgid "Error while removing group."
+msgstr "當移除群組時錯誤"
+
+#: includes/phpcdatabase.class.php:466
+msgid "Error while removing "
+msgstr "當移除時錯誤"
+
+#: includes/phpcdatabase.class.php:485
+msgid "Could not read permissions."
+msgstr "無法讀取權限"
+
+#: includes/phpcdatabase.class.php:500
+msgid "Could not get calendars."
+msgstr "無法獲取行事曆"
+
+#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
+msgid "Could not get user."
+msgstr "無法獲取使用者"
+
+#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
+msgid "Error getting user."
+msgstr "獲取使用者時錯誤"
+
+#: includes/phpcdatabase.class.php:597
+msgid "Error creating user."
+msgstr "建立使用者時錯誤"
+
+#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
+msgid "Error reading options"
+msgstr "讀取選項時錯誤"
+
+#: includes/phpcdatabase.class.php:631
+msgid "Error creating options"
+msgstr "建立選項時錯誤"
+
+#: includes/phpcdatabase.class.php:641
+msgid "Error updating password."
+msgstr "更新密碼時錯誤"
+
+#: includes/phpcdatabase.class.php:652
+msgid "Error updating timezone."
+msgstr "更新時區時錯誤"
+
+#: includes/phpcdatabase.class.php:663
+msgid "Error updating language."
+msgstr "更新語言時錯誤"
+
+#: includes/phpcdatabase.class.php:675
+msgid "Error adding group to user."
+msgstr "加入群組到使用者時錯誤"
+
+#: includes/phpcdatabase.class.php:686
+msgid "Error removing group from user."
+msgstr "移除群組從使用者時錯誤"
+
+#: includes/phpcdatabase.class.php:706
+msgid "Error creating event."
+msgstr "建立事件時錯誤"
+
+#: includes/phpcdatabase.class.php:733
+msgid "Error creating occurrence."
+msgstr "建立發生事件時錯誤"
+
+#: includes/phpcdatabase.class.php:758
+msgid "Error modifying occurrence."
+msgstr "修改發生事件時錯誤"
+
+#: includes/phpcdatabase.class.php:780
+msgid "Error modifying event."
+msgstr "修改事件時錯誤"
+
+#: includes/phpcdatabase.class.php:794
+msgid "Error creating category."
+msgstr "建立類別時錯誤"
+
+#: includes/phpcdatabase.class.php:807
+msgid "Error creating group."
+msgstr "建立群組時錯誤"
+
+#: includes/phpcdatabase.class.php:823
+msgid "Error modifying category."
+msgstr "修改類別時錯誤"
+
+#: includes/phpcdatabase.class.php:836
+msgid "Error modifying group."
+msgstr "修改群組時錯誤"
+
+#: includes/phpcdatabase.class.php:871
+msgid "Error during searching"
+msgstr "搜尋時錯誤"
+
+#: includes/phpcdatabase.class.php:897
+msgid "Error updating user permissions."
+msgstr "更新使用者權限時錯誤"
+
+#: includes/phpcdatabase.class.php:906
+msgid "Error getting login token."
+msgstr "獲取登入記號時錯誤"
+
+#: includes/phpcdatabase.class.php:921
+msgid "Error adding login token."
+msgstr "加入登入記號時錯誤"
+
+#: includes/phpcdatabase.class.php:931
+msgid "Error updating login token."
+msgstr "更新登入記號時錯誤"
+
+#: includes/phpcdatabase.class.php:940
+msgid "Error removing login tokens."
+msgstr "移除登入記號時錯誤"
+
+#: includes/phpcdatabase.class.php:949
+msgid "Error cleaning login tokens."
+msgstr "清除登入記號時錯誤"
+
+#: includes/phpcdatabase.class.php:959
+msgid "SQL query"
+msgstr "SQL 查詢"
+
+#: includes/phpcevent.class.php:43
+msgid "anonymous"
+msgstr "匿名者"
+
+#: includes/phpcevent.class.php:45
+msgid "unknown"
+msgstr "未知的"
+
+#: includes/phpcevent.class.php:72
+msgid "(No subject)"
+msgstr "(沒有主題)"
+
+#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr "DB 已返回一個無效的日期"
+
+#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
+msgid "TBA"
+msgstr "將被公布"
+
+#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
+msgid "to"
+msgstr "到"
+
+#: includes/search.php:43
+msgid "Invalid sort option"
+msgstr "無效的排序選項"
+
+#: includes/search.php:49
+msgid "Invalid order option"
+msgstr "無效的順序選項"
+
+#: includes/search.php:83
+msgid "No events matched your search criteria."
+msgstr "沒有事件與您的搜尋條件相符"
+
+#: includes/search.php:87
+msgid "Search Results"
+msgstr "搜尋結果"
+
+#: includes/search.php:91
+msgid "Date Time"
+msgstr "日期時間"
+
+#: includes/search.php:107
+msgid "Phrase"
+msgstr "片語"
+
+#: includes/search.php:115
+msgid "Sort By"
+msgstr "排序按照"
+
+#: includes/search.php:118
+msgid "Order"
+msgstr "順序"
+
+#: includes/settings.php:52
+msgid "Change Password"
+msgstr "變更密碼"
+
+#: includes/settings.php:61
+msgid "Old Password"
+msgstr "舊密碼"
+
+#: includes/settings.php:64
+msgid "New Password"
+msgstr "新密碼"
+
+#: includes/settings.php:67
+msgid "Confirm New Password"
+msgstr "確定新密碼"
+
+#: includes/settings.php:139
+msgid "Settings updated."
+msgstr "設定值已更新"
+
+#: includes/setup.php:78
+msgid "Possible hacking attempt on your account."
+msgstr "可能駭客嘗試於您的帳號"
+
+#: includes/setup.php:187
+msgid "Month is out of range."
+msgstr "月份超過範圍"
+
+#: includes/setup.php:195
+msgid "Invalid year"
+msgstr "無效的年份"
+
+#: includes/translate.php:52
+#, php-format
+msgid "Translated \"%s\""
+msgstr "已翻譯 \"%s\""
+
+#: includes/user_create.php:67
+msgid "Confirm Password"
+msgstr "確定密碼"
+
+#: includes/user_create.php:70
+msgid "Make Admin"
+msgstr "成為管理員"
+
+#: includes/user_create.php:86
+msgid "You must specify a user name"
+msgstr "您必須指定一個使用者名稱"
+
+#: includes/user_create.php:103
+msgid "User already exists."
+msgstr "使用者已存在"
+
+#: includes/user_create.php:113
+msgid "Added user."
+msgstr "已加入的使用者"
+
+#: includes/user_delete.php:29
+msgid "You must be an admin to delete users."
+msgstr "您必須是一個管理者以刪除使用者"
+
+#: includes/user_delete.php:34
+msgid "No user selected."
+msgstr "沒有使用者被選取"
+
+#: includes/user_groups.php:58
+msgid "Edit User Groups"
+msgstr "編輯使用者群組"
+
+#: includes/user_groups.php:99
+msgid "Groups updated."
+msgstr "群組已更新"
+
+#: includes/user_permissions_submit.php:31
+msgid "No users"
+msgstr "沒有使用者"
+
+#: includes/user_permissions_submit.php:59
+msgid "No changes to make."
+msgstr "沒有變更發生"
+
+#: includes/user_permissions_submit.php:61
+msgid "Updated user(s):"
+msgstr " 已更新使用者(們):"
+
+#: includes/util.php:75
+msgid "continue"
+msgstr "繼續"
+
+#: includes/util.php:157
+msgid "Software Error"
+msgstr "軟體錯誤"
+
+#: includes/util.php:158
+msgid "Message:"
+msgstr "訊息:"
diff --git a/messages.po b/messages.po
new file mode 100644
index 0000000..aa7da68
--- /dev/null
+++ b/messages.po
@@ -0,0 +1,1461 @@
+# PHP-Calendar.
+# Copyright (C) 2022 Sean Proctor
+# This file is distributed under the same license as the PHP-Calendar package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PHP-Calendar 2.0.13\n"
+"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
+"POT-Creation-Date: 2022-01-28 09:19-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/admin.php:31 src/cadmin.php:30
+msgid "You must be logged in as an admin."
+msgstr ""
+
+#: src/admin.php:36
+msgid "Calendars"
+msgstr ""
+
+#: src/admin.php:38 src/cadmin.php:37
+msgid "Users"
+msgstr ""
+
+#: src/admin.php:40
+msgid "Import"
+msgstr ""
+
+#: src/admin.php:42 src/translate.php:41
+msgid "Translate"
+msgstr ""
+
+#: src/admin.php:45
+msgid "Version"
+msgstr ""
+
+#: src/admin.php:61
+msgid "Calendar"
+msgstr ""
+
+#: src/admin.php:62 src/admin.php:100
+msgid "Action"
+msgstr ""
+
+#: src/admin.php:69 src/cadmin.php:161 src/cadmin.php:208
+#: src/display_event.php:205
+msgid "Edit"
+msgstr ""
+
+#: src/admin.php:71 src/admin.php:112 src/cadmin.php:166 src/cadmin.php:212
+#: src/display_event.php:85 src/display_event.php:178
+msgid "Delete"
+msgstr ""
+
+#: src/admin.php:76 src/calendar_form.php:92
+msgid "Create Calendar"
+msgstr ""
+
+#: src/admin.php:80
+msgid "Calendar List"
+msgstr ""
+
+#: src/admin.php:97 src/login.php:82
+msgid "Username"
+msgstr ""
+
+#: src/admin.php:98 src/cadmin.php:41 src/cadmin.php:135 src/user_create.php:79
+msgid "Groups"
+msgstr ""
+
+#: src/admin.php:99 src/admin.php:110 src/cadmin.php:109 src/cadmin.php:136
+msgid "Edit Groups"
+msgstr ""
+
+#: src/admin.php:117 src/user_create.php:57
+msgid "Create User"
+msgstr ""
+
+#: src/admin.php:121
+msgid "User List"
+msgstr ""
+
+#: src/admin.php:135
+msgid "Import Form"
+msgstr ""
+
+#: src/admin.php:136
+msgid "MySQL Host Name"
+msgstr ""
+
+#: src/admin.php:137
+msgid "MySQL Database Name"
+msgstr ""
+
+#: src/admin.php:138
+msgid "MySQL Port Number"
+msgstr ""
+
+#: src/admin.php:138
+msgid "Leave blank for default"
+msgstr ""
+
+#: src/admin.php:139
+msgid "MySQL User Name"
+msgstr ""
+
+#: src/admin.php:140
+msgid "MySQL User Password"
+msgstr ""
+
+#: src/admin.php:143
+msgid "PHP-Calendar Table Prefix"
+msgstr ""
+
+#: src/admin.php:148
+msgid "Import Calendar"
+msgstr ""
+
+#: src/admin.php:167
+msgid ""
+"This script needs read access to your calendar directory in order to write "
+"the translation files. Alternatively, you could run translate.php from the "
+"command line or use msgfmt or any other gettext tool that can generate .mo "
+"files from .po files."
+msgstr ""
+
+#: src/admin.php:170
+msgid "Generate Translations"
+msgstr ""
+
+#: src/cadmin.php:35
+msgid "Calendar Configuration"
+msgstr ""
+
+#: src/cadmin.php:39
+msgid "Categories"
+msgstr ""
+
+#: src/cadmin.php:73
+msgid "Options"
+msgstr ""
+
+#: src/cadmin.php:77 src/cadmin.php:126 src/calendar_form.php:99
+#: src/settings.php:65 src/settings.php:108 src/user_create.php:64
+#: src/user_groups.php:76
+msgid "Submit"
+msgstr ""
+
+#: src/cadmin.php:103 src/cadmin.php:130
+msgid "Read"
+msgstr ""
+
+#: src/cadmin.php:104 src/cadmin.php:131
+msgid "Write"
+msgstr ""
+
+#: src/cadmin.php:105 src/event_form.php:117
+msgid "Read-only"
+msgstr ""
+
+#: src/cadmin.php:106 src/cadmin.php:133 src/display_day.php:88
+#: src/display_event.php:83 src/display_event.php:174
+msgid "Modify"
+msgstr ""
+
+#: src/cadmin.php:107 src/cadmin.php:134 src/calendar.php:646
+#: src/user_create.php:77
+msgid "Admin"
+msgstr ""
+
+#: src/cadmin.php:122
+msgid "User Permissions"
+msgstr ""
+
+#: src/cadmin.php:129 src/user_create.php:67
+msgid "User Name"
+msgstr ""
+
+#: src/cadmin.php:132
+msgid "Can Create Read-Only"
+msgstr ""
+
+#: src/cadmin.php:151 src/cadmin.php:203
+msgid "No Name"
+msgstr ""
+
+#: src/cadmin.php:154 src/category_form.php:47 src/event_form.php:120
+msgid "None"
+msgstr ""
+
+#: src/cadmin.php:173
+msgid "Create category"
+msgstr ""
+
+#: src/cadmin.php:176
+msgid "Calendar Categories"
+msgstr ""
+
+#: src/cadmin.php:179 src/cadmin.php:224 src/category_form.php:31
+#: src/group_form.php:31
+msgid "Name"
+msgstr ""
+
+#: src/cadmin.php:180 src/category_form.php:43
+msgid "Text Color"
+msgstr ""
+
+#: src/cadmin.php:181 src/category_form.php:44
+msgid "Background Color"
+msgstr ""
+
+#: src/cadmin.php:182
+msgid "Visible to User Group"
+msgstr ""
+
+#: src/cadmin.php:183 src/cadmin.php:225
+msgid "Actions"
+msgstr ""
+
+#: src/cadmin.php:218
+msgid "Create group"
+msgstr ""
+
+#: src/cadmin.php:221
+msgid "Calendar Groups"
+msgstr ""
+
+#: src/cadmin_submit.php:29 src/calendar_form.php:30 src/user_create.php:29
+#: src/user_groups.php:29 src/user_permissions_submit.php:30
+msgid "Permission denied"
+msgstr ""
+
+#: src/cadmin_submit.php:42
+msgid " was not set."
+msgstr ""
+
+#: src/cadmin_submit.php:49
+msgid "Updated options"
+msgstr ""
+
+#: src/calendar.php:147 src/settings.php:114
+msgid "Language"
+msgstr ""
+
+#: src/calendar.php:148 src/settings.php:111
+msgid "Timezone"
+msgstr ""
+
+#: src/calendar.php:590
+msgid "Welcome"
+msgstr ""
+
+#: src/calendar.php:597 src/settings.php:35 src/settings.php:101
+msgid "Settings"
+msgstr ""
+
+#: src/calendar.php:600
+msgid "Log out"
+msgstr ""
+
+#: src/calendar.php:604 src/login.php:62 src/login.php:73
+msgid "Log in"
+msgstr ""
+
+#: src/calendar.php:625
+msgid "Add Event"
+msgstr ""
+
+#: src/calendar.php:629 src/search.php:110 src/search.php:125
+msgid "Search"
+msgstr ""
+
+#: src/calendar.php:633
+msgid "View Month"
+msgstr ""
+
+#: src/calendar.php:638
+msgid "View date"
+msgstr ""
+
+#: src/calendar.php:642
+msgid "Calendar Admin"
+msgstr ""
+
+#: src/calendar.php:690 src/calendar.php:754 src/calendar.php:766
+#: src/settings.php:91
+msgid "Default"
+msgstr ""
+
+#: src/calendar.php:696
+msgid "Week Start"
+msgstr ""
+
+#: src/calendar.php:698 src/globals.php:38
+msgid "Sunday"
+msgstr ""
+
+#: src/calendar.php:699 src/globals.php:39
+msgid "Monday"
+msgstr ""
+
+#: src/calendar.php:700 src/globals.php:44
+msgid "Saturday"
+msgstr ""
+
+#: src/calendar.php:702
+msgid "24 Hour Time"
+msgstr ""
+
+#: src/calendar.php:703
+msgid "Calendar Title"
+msgstr ""
+
+#: src/calendar.php:704
+msgid "Maximum Subject Length"
+msgstr ""
+
+#: src/calendar.php:705
+msgid "Events Display Daily Maximum"
+msgstr ""
+
+#: src/calendar.php:706
+msgid "Public Permissions"
+msgstr ""
+
+#: src/calendar.php:708
+msgid "Cannot read nor write events"
+msgstr ""
+
+#: src/calendar.php:709
+msgid "Can read but not write events"
+msgstr ""
+
+#: src/calendar.php:710
+msgid "Can create but not modify events"
+msgstr ""
+
+#: src/calendar.php:711
+msgid "Can create and modify events"
+msgstr ""
+
+#: src/calendar.php:714
+msgid "Default Timezone"
+msgstr ""
+
+#: src/calendar.php:715
+msgid "Default Language"
+msgstr ""
+
+#: src/calendar.php:717
+msgid "Date Format"
+msgstr ""
+
+#: src/calendar.php:719
+msgid "Theme"
+msgstr ""
+
+#: src/calendar.php:787
+msgid "Month Day Year"
+msgstr ""
+
+#: src/calendar.php:788
+msgid "Year Month Day"
+msgstr ""
+
+#: src/calendar.php:789
+msgid "Day Month Year"
+msgstr ""
+
+#: src/calendar.php:837
+msgid "You do not have permission to do that: "
+msgstr ""
+
+#: src/calendar.php:850 src/util.php:229
+msgid "Error"
+msgstr ""
+
+#: src/calendar.php:852 src/util.php:233
+msgid "Backtrace"
+msgstr ""
+
+#: src/calendar.php:868
+msgid "Invalid action"
+msgstr ""
+
+#: src/calendar.php:925
+msgid "Secret token mismatch. Possible request forgery attempt."
+msgstr ""
+
+#: src/calendar.php:1009
+msgid "Unsupported config type"
+msgstr ""
+
+#: src/calendar.php:1030
+#, php-format
+msgid "Required field \"%s\" was not set."
+msgstr ""
+
+#: src/calendar.php:1036
+#, php-format
+msgid "Malformed \"%s\" time: \"%s\""
+msgstr ""
+
+#: src/calendar.php:1051
+msgid "Unrecognized period: "
+msgstr ""
+
+#: src/calendar.php:1059
+#, php-format
+msgid "Malformed \"%s\" date: \"%s\""
+msgstr ""
+
+#: src/calendar.php:1080
+msgid "Invalid date_format."
+msgstr ""
+
+#: src/calendar_delete.php:32
+msgid "No calendar selected."
+msgstr ""
+
+#: src/calendar_delete.php:40 src/setup.php:95
+msgid "Invalid calendar ID."
+msgstr ""
+
+#: src/calendar_delete.php:43
+msgid "Confirm you want to delete calendar:"
+msgstr ""
+
+#: src/calendar_delete.php:44 src/category_delete.php:54
+#: src/event_delete.php:51 src/group_delete.php:54 src/occurrence_delete.php:53
+#: src/user_delete.php:55
+msgid "Confirm"
+msgstr ""
+
+#: src/calendar_delete.php:47 src/category_delete.php:57
+#: src/event_delete.php:54 src/group_delete.php:57 src/occurrence_delete.php:56
+#: src/user_delete.php:58
+msgid "Deny"
+msgstr ""
+
+#: src/calendar_delete.php:53
+msgid "You do not have permission to remove calendar"
+msgstr ""
+
+#: src/calendar_delete.php:58
+msgid "Removed calendar"
+msgstr ""
+
+#: src/calendar_delete.php:60
+msgid "Could not remove calendar"
+msgstr ""
+
+#: src/calendar_form.php:68
+msgid "Calendar created."
+msgstr ""
+
+#: src/category_delete.php:32
+msgid "No category selected."
+msgstr ""
+
+#: src/category_delete.php:52 src/event_delete.php:49 src/group_delete.php:52
+#: src/occurrence_delete.php:51 src/user_delete.php:53
+msgid "Confirm you want to delete:"
+msgstr ""
+
+#: src/category_delete.php:66
+msgid "You do not have permission to delete category: "
+msgstr ""
+
+#: src/category_delete.php:71
+msgid "Removed category: "
+msgstr ""
+
+#: src/category_delete.php:74
+msgid "Could not remove category: "
+msgstr ""
+
+#: src/category_form.php:30
+msgid "Category Form"
+msgstr ""
+
+#: src/category_form.php:46
+msgid "Visible to groups"
+msgstr ""
+
+#: src/category_form.php:52
+msgid "Submit Category"
+msgstr ""
+
+#: src/category_submit.php:36
+msgid "Color not specified."
+msgstr ""
+
+#: src/category_submit.php:50 src/category_submit.php:53
+msgid "Invalid color: "
+msgstr ""
+
+#: src/category_submit.php:62
+msgid "You do not have permission to add categories to all calendars."
+msgstr ""
+
+#: src/category_submit.php:67
+msgid "You do not have permission to add categories to this calendar."
+msgstr ""
+
+#: src/category_submit.php:80
+msgid "You do not have permission to modify this category."
+msgstr ""
+
+#: src/category_submit.php:89
+msgid "Modified category: "
+msgstr ""
+
+#: src/category_submit.php:93
+msgid "Created category: "
+msgstr ""
+
+#: src/category_submit.php:97
+msgid "Error submitting category."
+msgstr ""
+
+#: src/display_day.php:44
+msgid "Title"
+msgstr ""
+
+#: src/display_day.php:45 src/form.php:365
+msgid "Time"
+msgstr ""
+
+#: src/display_day.php:46 src/display_event.php:134 src/display_event.php:183
+#: src/event_form.php:51 src/search.php:94
+msgid "Description"
+msgstr ""
+
+#: src/display_day.php:57
+msgid "Delete Selected"
+msgstr ""
+
+#: src/display_day.php:110
+msgid "No events on this day."
+msgstr ""
+
+#: src/display_event.php:44
+msgid "Invalid arguments."
+msgstr ""
+
+#: src/display_event.php:60 src/display_event.php:154
+msgid "You do not have permission to read this event."
+msgstr ""
+
+#: src/display_event.php:64 src/display_event.php:158 src/display_event.php:233
+msgid "by"
+msgstr ""
+
+#: src/display_event.php:69 src/display_event.php:168 src/display_event.php:241
+#: src/event_form.php:119
+msgid "Category"
+msgstr ""
+
+#: src/display_event.php:73 src/event_form.php:53 src/occur_form.php:48
+msgid "When"
+msgstr ""
+
+#: src/display_event.php:75 src/display_event.php:161
+msgid "Created at: "
+msgstr ""
+
+#: src/display_event.php:77 src/display_event.php:163
+msgid "Last modified at: "
+msgstr ""
+
+#: src/display_event.php:87
+msgid "Modify Occurrence"
+msgstr ""
+
+#: src/display_event.php:89
+msgid "Remove Occurrence"
+msgstr ""
+
+#: src/display_event.php:108
+msgid "Previous occurrence on"
+msgstr ""
+
+#: src/display_event.php:118
+msgid "Next occurrence on"
+msgstr ""
+
+#: src/display_event.php:124
+msgid "View All Occurrences"
+msgstr ""
+
+#: src/display_event.php:176
+msgid "Add Occurrence"
+msgstr ""
+
+#: src/display_event.php:199 src/occurrence_delete.php:48
+#: src/phpcoccurrence.class.php:249 src/phpcoccurrence.class.php:258
+#: src/phpcoccurrence.class.php:260 src/util.php:152
+msgid "at"
+msgstr ""
+
+#: src/display_event.php:206
+msgid "Remove"
+msgstr ""
+
+#: src/display_event.php:213
+msgid "Occurrences"
+msgstr ""
+
+#: src/display_event.php:243
+msgid "from"
+msgstr ""
+
+#: src/display_month.php:35 src/display_week.php:35
+msgctxt "Week"
+msgid "W"
+msgstr ""
+
+#: src/display_month.php:251 src/display_week.php:236
+msgid "View Additional Events"
+msgstr ""
+
+#: src/display_month.php:265 src/display_week.php:250
+msgid "continued"
+msgstr ""
+
+#: src/display_week.php:42
+msgid "Invalid date."
+msgstr ""
+
+#: src/event_delete.php:32
+msgid "No event selected."
+msgstr ""
+
+#: src/event_delete.php:78
+msgid "Removed event"
+msgstr ""
+
+#: src/event_delete.php:80
+msgid "Removed events"
+msgstr ""
+
+#: src/event_delete.php:87
+msgid "Could not remove event"
+msgstr ""
+
+#: src/event_delete.php:89
+msgid "Could not remove events"
+msgstr ""
+
+#: src/event_delete.php:96
+msgid "You do not have permission to remove event"
+msgstr ""
+
+#: src/event_delete.php:98
+msgid "You do not have permission to remove events"
+msgstr ""
+
+#: src/event_form.php:47
+msgid "Event Form"
+msgstr ""
+
+#: src/event_form.php:48 src/globals.php:70 src/search.php:92
+msgid "Subject"
+msgstr ""
+
+#: src/event_form.php:57
+msgid "Change the event date and time"
+msgstr ""
+
+#: src/event_form.php:60 src/occur_form.php:50 src/phpcoccurrence.class.php:257
+#: src/search.php:115
+msgid "From"
+msgstr ""
+
+#: src/event_form.php:61 src/occur_form.php:51 src/search.php:117
+msgid "To"
+msgstr ""
+
+#: src/event_form.php:64 src/occur_form.php:54
+msgid "Time Type"
+msgstr ""
+
+#: src/event_form.php:65 src/occur_form.php:55
+msgid "Normal"
+msgstr ""
+
+#: src/event_form.php:66 src/occur_form.php:56
+msgid "Full Day"
+msgstr ""
+
+#: src/event_form.php:67 src/occur_form.php:57
+msgid "To Be Announced"
+msgstr ""
+
+#: src/event_form.php:73
+msgid "Repeats"
+msgstr ""
+
+#: src/event_form.php:75
+msgid "Never"
+msgstr ""
+
+#: src/event_form.php:77
+msgid "Daily"
+msgstr ""
+
+#: src/event_form.php:79
+msgid "Weekly"
+msgstr ""
+
+#: src/event_form.php:81
+msgid "Monthly"
+msgstr ""
+
+#: src/event_form.php:83
+msgid "Yearly"
+msgstr ""
+
+#: src/event_form.php:85 src/event_form.php:92 src/event_form.php:99
+#: src/event_form.php:106
+msgid "Every"
+msgstr ""
+
+#: src/event_form.php:86
+msgid "Repeat every how many days?"
+msgstr ""
+
+#: src/event_form.php:89 src/event_form.php:97 src/event_form.php:104
+#: src/event_form.php:111
+msgid "Until"
+msgstr ""
+
+#: src/event_form.php:93
+msgid "Repeat every how many weeks?"
+msgstr ""
+
+#: src/event_form.php:100
+msgid "Repeat every how many months?"
+msgstr ""
+
+#: src/event_form.php:107
+msgid "Repeat every how many years?"
+msgstr ""
+
+#: src/event_form.php:136
+msgid "Submit Event"
+msgstr ""
+
+#: src/event_form.php:315 src/occur_form.php:146
+msgid "Unrecognized Time Type."
+msgstr ""
+
+#: src/event_form.php:320 src/occur_form.php:151
+msgid "An event cannot have an end earlier than its start."
+msgstr ""
+
+#: src/event_form.php:328 src/occur_form.php:156
+msgid "You do not have permission to write to this calendar."
+msgstr ""
+
+#: src/event_form.php:361
+msgid "Required field \"every-day\" is not set."
+msgstr ""
+
+#: src/event_form.php:364
+msgid "every-day must be greater than 1"
+msgstr ""
+
+#: src/event_form.php:380
+msgid "Required field \"every-week\" is not set."
+msgstr ""
+
+#: src/event_form.php:382
+msgid "every-week must be greater than 1"
+msgstr ""
+
+#: src/event_form.php:399
+msgid "Required field \"every-month\" is not set."
+msgstr ""
+
+#: src/event_form.php:401 src/event_form.php:420
+msgid "every-month must be greater than 1"
+msgstr ""
+
+#: src/event_form.php:418
+msgid "Required field \"every-year\" is not set."
+msgstr ""
+
+#: src/event_form.php:436
+msgid "Invalid event type."
+msgstr ""
+
+#: src/event_form.php:442
+msgid "Modified event: "
+msgstr ""
+
+#: src/event_form.php:444
+msgid "Created event: "
+msgstr ""
+
+#: src/event_form.php:451
+msgid "Error submitting event."
+msgstr ""
+
+#: src/form.php:287 src/form.php:362
+msgid "Date"
+msgstr ""
+
+#: src/globals.php:23
+msgid "January"
+msgstr ""
+
+#: src/globals.php:24
+msgid "February"
+msgstr ""
+
+#: src/globals.php:25
+msgid "March"
+msgstr ""
+
+#: src/globals.php:26
+msgid "April"
+msgstr ""
+
+#: src/globals.php:27 src/globals.php:52
+msgid "May"
+msgstr ""
+
+#: src/globals.php:28
+msgid "June"
+msgstr ""
+
+#: src/globals.php:29
+msgid "July"
+msgstr ""
+
+#: src/globals.php:30
+msgid "August"
+msgstr ""
+
+#: src/globals.php:31
+msgid "September"
+msgstr ""
+
+#: src/globals.php:32
+msgid "October"
+msgstr ""
+
+#: src/globals.php:33
+msgid "November"
+msgstr ""
+
+#: src/globals.php:34
+msgid "December"
+msgstr ""
+
+#: src/globals.php:40
+msgid "Tuesday"
+msgstr ""
+
+#: src/globals.php:41
+msgid "Wednesday"
+msgstr ""
+
+#: src/globals.php:42
+msgid "Thursday"
+msgstr ""
+
+#: src/globals.php:43
+msgid "Friday"
+msgstr ""
+
+#: src/globals.php:48
+msgid "Jan"
+msgstr ""
+
+#: src/globals.php:49
+msgid "Feb"
+msgstr ""
+
+#: src/globals.php:50
+msgid "Mar"
+msgstr ""
+
+#: src/globals.php:51
+msgid "Apr"
+msgstr ""
+
+#: src/globals.php:53
+msgid "Jun"
+msgstr ""
+
+#: src/globals.php:54
+msgid "Jul"
+msgstr ""
+
+#: src/globals.php:55
+msgid "Aug"
+msgstr ""
+
+#: src/globals.php:56
+msgid "Sep"
+msgstr ""
+
+#: src/globals.php:57
+msgid "Oct"
+msgstr ""
+
+#: src/globals.php:58
+msgid "Nov"
+msgstr ""
+
+#: src/globals.php:59
+msgid "Dec"
+msgstr ""
+
+#: src/globals.php:69
+msgid "Start Date"
+msgstr ""
+
+#: src/globals.php:74
+msgid "Ascending"
+msgstr ""
+
+#: src/globals.php:75
+msgid "Descending"
+msgstr ""
+
+#: src/group_delete.php:32
+msgid "No group selected."
+msgstr ""
+
+#: src/group_delete.php:66
+msgid "You do not have permission to delete group: "
+msgstr ""
+
+#: src/group_delete.php:71
+msgid "Removed group: "
+msgstr ""
+
+#: src/group_delete.php:74
+msgid "Could not remove group: "
+msgstr ""
+
+#: src/group_form.php:30
+msgid "Group Form"
+msgstr ""
+
+#: src/group_form.php:37
+msgid "Submit Group"
+msgstr ""
+
+#: src/group_submit.php:35
+msgid "You do not have permission to add a global group."
+msgstr ""
+
+#: src/group_submit.php:40
+msgid "You do not have permission to add a group to this calendar."
+msgstr ""
+
+#: src/group_submit.php:52
+msgid "You do not have permission to modify this group."
+msgstr ""
+
+#: src/group_submit.php:60
+msgid "Modified group: "
+msgstr ""
+
+#: src/group_submit.php:64
+msgid "Created group: "
+msgstr ""
+
+#: src/group_submit.php:68
+msgid "Error submitting group."
+msgstr ""
+
+#: src/import.php:29 src/translate.php:31
+msgid "Need to be admin"
+msgstr ""
+
+#: src/import.php:72
+msgid "Error selecting events in import"
+msgstr ""
+
+#: src/import.php:157
+#, php-format
+msgid "Created %s events with %s occurences"
+msgstr ""
+
+#: src/login.php:42
+msgid "Logged in."
+msgstr ""
+
+#: src/login.php:45
+msgid "Sorry, Invalid Login"
+msgstr ""
+
+#: src/login.php:77
+msgid "You must have cookies enabled to login."
+msgstr ""
+
+#: src/login.php:85 src/settings.php:43 src/user_create.php:70
+msgid "Password"
+msgstr ""
+
+#: src/logout.php:32
+msgid "Loggin out..."
+msgstr ""
+
+#: src/occur_form.php:46
+msgid "Occurrence Form"
+msgstr ""
+
+#: src/occur_form.php:117
+msgid "Submit Occurrence"
+msgstr ""
+
+#: src/occur_form.php:127
+msgid "Cannot create occurrence."
+msgstr ""
+
+#: src/occur_form.php:161
+msgid "EID not set."
+msgstr ""
+
+#: src/occur_form.php:173
+msgid "Modified occurence: "
+msgstr ""
+
+#: src/occur_form.php:175
+msgid "Created occurence: "
+msgstr ""
+
+#: src/occur_form.php:182
+msgid "Error submitting occurrence."
+msgstr ""
+
+#: src/occurrence_delete.php:32
+msgid "No occurrence selected."
+msgstr ""
+
+#: src/occurrence_delete.php:82
+msgid "Removed occurrence"
+msgstr ""
+
+#: src/occurrence_delete.php:84
+msgid "Removed occurrences"
+msgstr ""
+
+#: src/occurrence_delete.php:91
+msgid "Could not remove occurrence"
+msgstr ""
+
+#: src/occurrence_delete.php:93
+msgid "Could not remove occurrences"
+msgstr ""
+
+#: src/occurrence_delete.php:100
+msgid "You do not have permission to remove the occurrence."
+msgstr ""
+
+#: src/occurrence_delete.php:102
+msgid "You do not have permission to remove occurrences."
+msgstr ""
+
+#: src/password_submit.php:31
+msgid "You must be logged in."
+msgstr ""
+
+#: src/password_submit.php:37
+msgid "You do not have permission to change your password."
+msgstr ""
+
+#: src/password_submit.php:40
+msgid "You must specify your old password."
+msgstr ""
+
+#: src/password_submit.php:46
+msgid "The password you entered did not match your old password."
+msgstr ""
+
+#: src/password_submit.php:50 src/user_create.php:96
+msgid "You must specify a password"
+msgstr ""
+
+#: src/password_submit.php:55 src/user_create.php:101
+msgid "Your passwords did not match"
+msgstr ""
+
+#: src/password_submit.php:62
+msgid "Password updated."
+msgstr ""
+
+#: src/phpccalendar.class.php:73
+msgid "(No title)"
+msgstr ""
+
+#: src/phpcdatabase.class.php:122
+msgid "Error in get_occurrences_by_date_range"
+msgstr ""
+
+#: src/phpcdatabase.class.php:192
+msgid "Error in get_event_by_eid"
+msgstr ""
+
+#: src/phpcdatabase.class.php:196
+msgid "Event doesn't exist"
+msgstr ""
+
+#: src/phpcdatabase.class.php:223
+msgid "Error in get_event_by_oid"
+msgstr ""
+
+#: src/phpcdatabase.class.php:227 src/phpcdatabase.class.php:424
+msgid "Event doesn't exist with oid"
+msgstr ""
+
+#: src/phpcdatabase.class.php:252
+msgid "Error in get_category"
+msgstr ""
+
+#: src/phpcdatabase.class.php:255
+msgid "Category doesn't exist with catid"
+msgstr ""
+
+#: src/phpcdatabase.class.php:273
+msgid "Error in get_group"
+msgstr ""
+
+#: src/phpcdatabase.class.php:276
+msgid "Group doesn't exist with gid"
+msgstr ""
+
+#: src/phpcdatabase.class.php:296
+msgid "Error in get_groups"
+msgstr ""
+
+#: src/phpcdatabase.class.php:319
+msgid "Error in get_user_groups"
+msgstr ""
+
+#: src/phpcdatabase.class.php:353
+msgid "Error in get_categories"
+msgstr ""
+
+#: src/phpcdatabase.class.php:387
+msgid "Error in get_visible_categories"
+msgstr ""
+
+#: src/phpcdatabase.class.php:420
+msgid "Error in get_occurrence_by_oid"
+msgstr ""
+
+#: src/phpcdatabase.class.php:450
+msgid "Error in get_occurrences_by_eid"
+msgstr ""
+
+#: src/phpcdatabase.class.php:471 src/phpcdatabase.class.php:491
+msgid "Error while removing an event."
+msgstr ""
+
+#: src/phpcdatabase.class.php:507
+msgid "Error while removing an occurrence."
+msgstr ""
+
+#: src/phpcdatabase.class.php:524 src/phpcdatabase.class.php:577
+msgid "Error while removing a calendar"
+msgstr ""
+
+#: src/phpcdatabase.class.php:541
+msgid "Error while removing category."
+msgstr ""
+
+#: src/phpcdatabase.class.php:558
+msgid "Error while removing group."
+msgstr ""
+
+#: src/phpcdatabase.class.php:582
+msgid "Error while removing "
+msgstr ""
+
+#: src/phpcdatabase.class.php:606
+msgid "Could not read permissions."
+msgstr ""
+
+#: src/phpcdatabase.class.php:624
+msgid "Could not get calendars."
+msgstr ""
+
+#: src/phpcdatabase.class.php:670 src/phpcdatabase.class.php:694
+msgid "Could not get user."
+msgstr ""
+
+#: src/phpcdatabase.class.php:714 src/phpcdatabase.class.php:734
+msgid "Error getting user."
+msgstr ""
+
+#: src/phpcdatabase.class.php:755
+msgid "Error creating user."
+msgstr ""
+
+#: src/phpcdatabase.class.php:769
+msgid "Error reading options"
+msgstr ""
+
+#: src/phpcdatabase.class.php:786
+msgid "Error updating option"
+msgstr ""
+
+#: src/phpcdatabase.class.php:802
+msgid "Error creating option"
+msgstr ""
+
+#: src/phpcdatabase.class.php:816
+msgid "Error updating password."
+msgstr ""
+
+#: src/phpcdatabase.class.php:831
+msgid "Error updating timezone."
+msgstr ""
+
+#: src/phpcdatabase.class.php:846
+msgid "Error updating language."
+msgstr ""
+
+#: src/phpcdatabase.class.php:862
+msgid "Error adding group to user."
+msgstr ""
+
+#: src/phpcdatabase.class.php:877
+msgid "Error removing group from user."
+msgstr ""
+
+#: src/phpcdatabase.class.php:906
+msgid "Error creating event."
+msgstr ""
+
+#: src/phpcdatabase.class.php:940
+msgid "Error creating occurrence."
+msgstr ""
+
+#: src/phpcdatabase.class.php:976
+msgid "Error modifying occurrence."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1006
+msgid "Error modifying event."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1028
+msgid "Error creating category."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1046
+msgid "Error creating group."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1070
+msgid "Error modifying category."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1088
+msgid "Error modifying group."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1134
+msgid "Error during searching"
+msgstr ""
+
+#: src/phpcdatabase.class.php:1165
+msgid "Error updating user permissions."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1179
+msgid "Error getting login token."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1199
+msgid "Error adding login token."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1214
+msgid "Error updating login token."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1226
+msgid "Error removing login tokens."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1235
+msgid "Error cleaning login tokens."
+msgstr ""
+
+#: src/phpcdatabase.class.php:1251
+msgid "SQL query"
+msgstr ""
+
+#: src/phpcevent.class.php:60
+msgid "anonymous"
+msgstr ""
+
+#: src/phpcevent.class.php:62
+msgid "unknown"
+msgstr ""
+
+#: src/phpcevent.class.php:91
+msgid "(No subject)"
+msgstr ""
+
+#: src/phpcoccurrence.class.php:55 src/phpcoccurrence.class.php:76
+msgid "DB returned an invalid date."
+msgstr ""
+
+#: src/phpcoccurrence.class.php:103 src/phpcoccurrence.class.php:118
+msgid "TBA"
+msgstr ""
+
+#: src/phpcoccurrence.class.php:113 src/phpcoccurrence.class.php:259
+msgid "to"
+msgstr ""
+
+#: src/search.php:46
+msgid "Invalid sort option"
+msgstr ""
+
+#: src/search.php:52
+msgid "Invalid order option"
+msgstr ""
+
+#: src/search.php:85
+msgid "No events matched your search criteria."
+msgstr ""
+
+#: src/search.php:89
+msgid "Search Results"
+msgstr ""
+
+#: src/search.php:93
+msgid "Date Time"
+msgstr ""
+
+#: src/search.php:111
+msgid "Phrase"
+msgstr ""
+
+#: src/search.php:119
+msgid "Sort By"
+msgstr ""
+
+#: src/search.php:122
+msgid "Order"
+msgstr ""
+
+#: src/settings.php:59
+msgid "Change Password"
+msgstr ""
+
+#: src/settings.php:68
+msgid "Old Password"
+msgstr ""
+
+#: src/settings.php:71
+msgid "New Password"
+msgstr ""
+
+#: src/settings.php:74
+msgid "Confirm New Password"
+msgstr ""
+
+#: src/settings.php:150
+msgid "Settings updated."
+msgstr ""
+
+#: src/setup.php:76
+msgid "Possible hacking attempt on your account."
+msgstr ""
+
+#: src/setup.php:106
+msgid "Could not find a calendar."
+msgstr ""
+
+#: src/setup.php:188
+msgid "Month is out of range."
+msgstr ""
+
+#: src/setup.php:196
+msgid "Invalid year"
+msgstr ""
+
+#: src/translate.php:55
+#, php-format
+msgid "Translated \"%s\""
+msgstr ""
+
+#: src/user_create.php:73
+msgid "Confirm Password"
+msgstr ""
+
+#: src/user_create.php:76
+msgid "Make Admin"
+msgstr ""
+
+#: src/user_create.php:92
+msgid "You must specify a user name"
+msgstr ""
+
+#: src/user_create.php:109
+msgid "User already exists."
+msgstr ""
+
+#: src/user_create.php:119
+msgid "Added user."
+msgstr ""
+
+#: src/user_delete.php:32
+msgid "You must be an admin to delete users."
+msgstr ""
+
+#: src/user_delete.php:37
+msgid "No user selected."
+msgstr ""
+
+#: src/user_groups.php:64
+msgid "Edit User Groups"
+msgstr ""
+
+#: src/user_groups.php:105
+msgid "Groups updated."
+msgstr ""
+
+#: src/user_permissions_submit.php:34
+msgid "No users"
+msgstr ""
+
+#: src/user_permissions_submit.php:62
+msgid "No changes to make."
+msgstr ""
+
+#: src/user_permissions_submit.php:64
+msgid "Updated user(s):"
+msgstr ""
+
+#: src/util.php:93
+msgid "continue"
+msgstr ""
+
+#: src/util.php:230
+msgid "Software Error"
+msgstr ""
+
+#: src/util.php:231
+msgid "Message:"
+msgstr ""
diff --git a/src/Gettext_PHP.php b/src/Gettext_PHP.php
new file mode 100644
index 0000000..cafb009
--- /dev/null
+++ b/src/Gettext_PHP.php
@@ -0,0 +1,287 @@
+<?php
+/*
+ * Copyright (c) 2009 David Soria Parra
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+
+/**
+ * Gettext implementation in PHP
+ *
+ * @copyright (c) 2009 David Soria Parra <sn_@gmx.net>
+ * @author David Soria Parra <sn_@gmx.net>
+ *
+ * Changes:
+ *   04/25/2013 sproctor - Changed unpack format in parseHeader to unsigned
+ *   09/07/2013 sproctor - Added pgettext
+ */
+class Gettext_PHP //extends Gettext
+{
+    /**
+     * First magic word in the MO header
+     */
+    const MAGIC1 = 0xde120495;
+
+    /**
+     * First magic word in the MO header
+     */
+    const MAGIC2 = 0x950412de;
+
+    protected $mofile;
+    protected $translationTable = array();
+    protected $parsed = false;
+
+    /**
+     * Initialize a new gettext class
+     *
+     * @param string $directory
+     * @param string $domain
+     * @param string $locale
+     */
+    public function __construct($directory, $domain, $locale)
+    {
+        $this->mofile = sprintf("%s/%s/LC_MESSAGES/%s.mo", $directory,
+                            $locale, $domain);
+    }
+
+    /**
+     * Parse the MO file header and returns the table
+     * offsets as described in the file header.
+     *
+     * If an exception occured, null is returned. This is intentionally
+     * as we need to get close to ext/gettexts beahvior.
+     *
+     * @param resource $fp The open file handler to the MO file
+     *
+     * @return array of offset
+     */
+    private function parseHeader($fp)
+    {
+        $data   = fread($fp, 8);
+        $header = unpack("Lmagic/Lrevision", $data);
+
+        if ((int) self::MAGIC1 != $header['magic']
+           && (int) self::MAGIC2 != $header['magic']) {
+            return null;
+        }
+
+        if (0 != $header['revision']) {
+            return null;
+        }
+
+        $data    = fread($fp, 4 * 5);
+        $offsets = unpack("lnum_strings/lorig_offset/"
+                          . "ltrans_offset/lhash_size/lhash_offset", $data);
+        return $offsets;
+    }
+
+    /**
+     * Parse and reutnrs the string offsets in a a table. Two table can be found in
+     * a mo file. The table with the translations and the table with the original
+     * strings. Both contain offsets to the strings in the file.
+     *
+     * If an exception occured, null is returned. This is intentionally
+     * as we need to get close to ext/gettexts beahvior.
+     *
+     * @param resource $fp The open file handler to the MO file
+     * @param Integer   $offset The offset to the table that should be parsed
+     * @param Integer   $num    The number of strings to parse
+     *
+     * @return array of offsets
+     */
+    private function parseOffsetTable($fp, $offset, $num)
+    {
+        if (fseek($fp, $offset, SEEK_SET) < 0) {
+            return null;
+        }
+
+        $table = array();
+        for ($i = 0; $i < $num; $i++) {
+            $data    = fread($fp, 8);
+            $table[] = unpack("lsize/loffset", $data);
+        }
+
+        return $table;
+    }
+
+    /**
+     * Parse a string as referenced by an table. Returns an
+     * array with the actual string.
+     *
+     * @param resource $fp The open file handler to the MO fie
+     * @param array $entry The entry as parsed by parseOffsetTable()
+     *
+     * @return string
+     */
+    private function parseEntry($fp, $entry)
+    {
+        if (fseek($fp, $entry['offset'], SEEK_SET) < 0) {
+            return null;
+        }
+        if ($entry['size'] > 0) {
+            return fread($fp, $entry['size']);
+        }
+
+       return '';
+    }
+
+
+    /**
+     * Parse the MO file
+     */
+    private function parse()
+    {
+        $this->translationTable = array();
+
+        if (!file_exists($this->mofile)) {
+            return;
+        }
+
+        $filesize = filesize($this->mofile);
+        if ($filesize < 4 * 7) {
+            return;
+        }
+
+        /* check for filesize */
+        $fp = fopen($this->mofile, "rb");
+
+        $offsets = $this->parseHeader($fp);
+        if (null == $offsets || $filesize < 4 * ($offsets['num_strings'] + 7)) {
+            fclose($fp);
+            return;
+        }
+
+        $transTable = array();
+        $table = $this->parseOffsetTable($fp, $offsets['trans_offset'],
+                    $offsets['num_strings']);
+        if (null == $table) {
+            fclose($fp);
+            return;
+        }
+
+        foreach ($table as $idx => $entry) {
+            $transTable[$idx] = $this->parseEntry($fp, $entry);
+        }
+
+        $table = $this->parseOffsetTable($fp, $offsets['orig_offset'],
+                    $offsets['num_strings']);
+        foreach ($table as $idx => $entry) {
+            $entry = $this->parseEntry($fp, $entry);
+
+            $formes      = explode(chr(0), $entry);
+            $translation = explode(chr(0), $transTable[$idx]);
+            foreach($formes as $form) {
+                $this->translationTable[$form] = $translation;
+            }
+        }
+
+        fclose($fp);
+
+        $this->parsed = true;
+    }
+
+    /**
+     * Return a translated string
+     *
+     * If the translation is not found, the original passed message
+     * will be returned.
+     *
+     * @param string $msg
+     * @return string Translated message
+     */
+    public function gettext($msg)
+    {
+        if (!$this->parsed) {
+            $this->parse();
+        }
+
+        if (array_key_exists($msg, $this->translationTable)) {
+            $t = $this->translationTable[$msg][0];
+	    if(!empty($t))
+                return $t;
+        }
+        return $msg;
+    }
+
+    /**
+     * Return a translated string with the given context
+     *
+     * If the translation is not found, the original passed message
+     * will be returned.
+     *
+     * @param string $context The context of the message to search for
+     * @param string $msg The message to search for
+     *
+     * @return string Translated message
+     */
+    public function pgettext($context, $msg)
+    {
+        if (!$this->parsed) {
+            $this->parse();
+        }
+
+	$key = "{$context}\04{$msg}";
+        if (array_key_exists($key, $this->translationTable)) {
+            $t = $this->translationTable[$key][0];
+            if(!empty($t))
+                return $t;
+        }
+        return $msg;
+    }
+
+    /**
+     * Return a translated string in it's plural form
+     *
+     * Returns the given $count (e.g second, third,...) plural form of the
+     * given string. If the id is not found and $num == 1 $msg is returned,
+     * otherwise $msg_plural
+     *
+     * @param string $msg The message to search for
+     * @param string $msg_plural A fallback plural form
+     * @param int $count Which plural form
+     *
+     * @return string Translated string
+     */
+    public function ngettext($msg, $msg_plural, $count)
+    {
+        if (!$this->parsed) {
+            $this->parse();
+        }
+
+        $msg = (string) $msg;
+
+        if (array_key_exists($msg, $this->translationTable)) {
+            $translation = $this->translationTable[$msg];
+            /* the gettext api expect an unsigned int, so we just fake 'cast' */
+            if ($count <= 0 || count($translation) < $count) {
+                $count = count($translation);
+            }
+            return $translation[$count - 1];
+        }
+
+        /* not found, handle count */
+        if (1 == $count) {
+            return $msg;
+        } else {
+            return $msg_plural;
+        }
+    }
+}
+
diff --git a/src/admin.php b/src/admin.php
new file mode 100644
index 0000000..8953139
--- /dev/null
+++ b/src/admin.php
@@ -0,0 +1,171 @@
+<?php 
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+    die("Hacking attempt");
+}
+
+require_once("$phpc_includes_path/form.php");
+
+/**
+ * @return Html
+ */
+function admin() {
+	global $phpc_version;
+
+    if (!is_admin()) {
+        permission_error(__('You must be logged in as an admin.'));
+    }
+
+	$menu = tag('ul',
+			tag('li', tag('a', attrs('href="#phpc-admin-calendars"'),
+					__('Calendars'))),
+			tag('li', tag('a', attrs('href="#phpc-admin-users"'),
+					__('Users'))),
+			tag('li', tag('a', attrs('href="#phpc-admin-import"'),
+					__('Import'))),
+			tag('li', tag('a', attrs('href="#phpc-admin-translate"'),
+					__('Translate'))));
+
+	$version = tag('div', attrs('class="phpc-bar ui-widget-content"'),
+			__('Version') . ": $phpc_version");
+
+	return tag('', tag('div', attrs('class="phpc-tabs"'), $menu,
+				calendar_list(), user_list(), import(),
+				translation_link()), $version);
+}
+
+/**
+ * @return Html
+ */
+function calendar_list()
+{
+    global $phpcdb;
+
+    $tbody = tag('tbody');
+
+		$tbody->add(tag('tr', tag('th', __("Calendar")),
+					tag('th', __("Action"))));
+    foreach ($phpcdb->get_calendars() as $calendar) {
+        $title = $calendar->get_title();
+        $cid = $calendar->get_cid();
+
+        $tbody->add(tag('tr',
+            tag('th', $title),
+            tag('td', create_action_link(__("Edit"),
+						"cadmin", array("phpcid" => $cid)),
+					" ", create_action_link(__("Delete"),
+						"calendar_delete",
+						array("cid" => $cid)))));
+    }
+
+	$create_link = create_action_link(__('Create Calendar'),
+			'calendar_form');
+    return tag('div', attributes('id="phpc-admin-calendars"'), tag('table',
+				attributes('class="phpc-container"'),
+			tag('caption', __('Calendar List')), $tbody,
+			tag('tfoot',
+				tag('tr',
+					tag('td', attributes('colspan="2"'),
+						$create_link)))));
+
+}
+
+/**
+ * @return Html
+ */
+function user_list()
+{
+    global $phpcdb;
+
+    $tbody = tag('tbody');
+
+    $tbody->add(tag('tr', tag('th', __("Username")),
+        tag('th', __("Groups")),
+        tag('th', __("Edit Groups")),
+        tag('th', __("Action"))));
+
+    foreach ($phpcdb->get_users() as $user) {
+		$group_list = array();
+		foreach($user->get_groups() as $group) {
+			$group_list[] = $group['name'];
+		}
+		$groups = implode(', ', $group_list);
+		$tbody->add(tag('tr', tag('th', $user->username),
+					tag('td', $groups),
+            tag('td', create_action_link(__("Edit Groups"), "user_groups",
+                array("uid" => $user->uid))),
+					tag('td', create_action_link(__("Delete"),
+							"user_delete",
+							array("uid" => $user->uid)))));
+	}
+
+	$create_link = create_action_link(__('Create User'),
+			'user_create');
+    return tag('div', attributes('id="phpc-admin-users"'), tag('table',
+        attributes('class="phpc-container"'),
+        tag('caption', __('User List')), $tbody,
+        tag('tfoot',
+            tag('tr',
+                tag('td', attributes('colspan="3"'),
+                    $create_link)))));
+
+}
+
+/**
+ * @return Html
+ */
+function import() {
+    global $phpc_script;
+
+	$form = new Form($phpc_script, __('Import Form'));
+	$form->add_part(new FormFreeQuestion('host', __('MySQL Host Name')));
+	$form->add_part(new FormFreeQuestion('dbname', __('MySQL Database Name')));
+	$form->add_part(new FormFreeQuestion('port', __('MySQL Port Number'), __('Leave blank for default')));
+	$form->add_part(new FormFreeQuestion('username', __('MySQL User Name')));
+	$pwq = new FormFreeQuestion('passwd', __('MySQL User Password'));
+	$pwq->type = 'password';
+	$form->add_part($pwq);
+	$form->add_part(new FormFreeQuestion('prefix', __('PHP-Calendar Table Prefix')));
+
+	$form->add_hidden('action', 'import');
+	$form->add_hidden('submit_form', 'submit_form');
+
+	$form->add_part(new FormSubmitButton(__("Import Calendar")));
+
+	$defaults = array(
+			'host' => 'localhost',
+			'dbname' => 'calendar',
+			'prefix' => 'phpc_',
+			);
+
+	return tag('div', attrs('id="phpc-admin-import"'),
+			$form->get_form($defaults));
+}
+
+/**
+ * @return Html
+ */
+function translation_link() {
+	global $phpc_script;
+
+	return tag('div', attrs('id="phpc-admin-translate"'),
+			tag('p', __('This script needs read access to your calendar directory in order to write the translation files. Alternatively, you could run translate.php from the command line or use msgfmt or any other gettext tool that can generate .mo files from .po files.')),
+			tag('a', attrs('class="phpc-button"',
+					"href=\"$phpc_script?action=translate\""),
+				__('Generate Translations')));
+}
diff --git a/src/cadmin.php b/src/cadmin.php
new file mode 100644
index 0000000..85c1b09
--- /dev/null
+++ b/src/cadmin.php
@@ -0,0 +1,235 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if (!defined('IN_PHPC')) {
+    die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function cadmin()
+{
+	global $phpc_cal;
+
+    if (!$phpc_cal->can_admin()) {
+        permission_error(__('You must be logged in as an admin.'));
+    }
+
+	$index = tag('ul',
+        tag('li', tag('a', attrs('href="#phpc-config"'),
+            __('Calendar Configuration'))),
+        tag('li', tag('a', attrs('href="#phpc-users"'),
+            __('Users'))),
+        tag('li', tag('a', attrs('href="#phpc-categories"'),
+            __('Categories'))),
+        tag('li', tag('a', attrs('href="#phpc-groups"'),
+            __('Groups'))));
+
+	return tag('div', attrs("class=\"phpc-tabs\""), $index, config_form(),
+        user_list(), category_list(), group_list());
+}
+
+function config_form()
+{
+	global $phpc_cal, $phpc_script, $vars;
+
+    $tbody = tag('tbody');
+
+    foreach (get_config_options() as $element) {
+        $name = $element[0];
+        $text = $element[1];
+		$default = $phpc_cal->$name;
+		$input = create_config_input($element, $default);
+
+        $tbody->add(tag('tr',
+            tag('th', $text),
+            tag('td', $input)));
+    }
+
+	$hidden_div = tag('div',
+        create_hidden('action', 'cadmin_submit'));
+    if (isset($vars['phpcid']))
+		$hidden_div->add(create_hidden('phpcid', $vars['phpcid']));
+
+    $form = tag('form', attributes("action=\"$phpc_script\"",
+        'method="post"'),
+        $hidden_div,
+        tag('table', attributes("class=\"phpc-container\""),
+            tag('caption', __('Options')),
+            tag('tfoot',
+                tag('tr',
+                    tag('td', attributes('colspan="2"'),
+                        create_submit(__('Submit'))))),
+            $tbody));
+
+	return tag('div', attrs('id="phpc-config"'), $form);
+}
+
+function user_list()
+{
+	global $phpc_script, $phpcid, $phpcdb, $vars;
+
+	$users = $phpcdb->get_users_with_permissions($phpcid);
+
+	$tbody = tag('tbody');
+
+	foreach ($users as $user) {
+		$phpc_user = new PhpcUser($user);
+		$group_list = array();
+        foreach ($phpc_user->get_groups() as $group) {
+            if ($group['cid'] == $phpcid)
+				$group_list[] = $group['name'];
+		}
+		$groups = implode(', ', $group_list);
+		$tbody->add(tag('tr',
+            tag('th', $user['username'],
+                create_hidden('uid[]',
+                    $user['uid'])),
+            tag('td', create_checkbox("read{$user['uid']}", "1", !empty($user['read']), __('Read'))),
+            tag('td', create_checkbox("write{$user['uid']}", "1", !empty($user['write']), __('Write'))),
+            tag('td', create_checkbox("readonly{$user['uid']}", "1", !empty($user['readonly']), __('Read-only'))),
+            tag('td', create_checkbox("modify{$user['uid']}", "1", !empty($user['modify']), __('Modify'))),
+            tag('td', create_checkbox("admin{$user['uid']}", "1", !empty($user['calendar_admin']), __('Admin'))),
+            tag('td', $groups),
+            tag('td', create_action_link(__("Edit Groups"), "user_groups", array("uid" => $user["uid"])))
+        ));
+	}
+
+	$hidden_div = tag('div',
+        create_hidden('action', 'user_permissions_submit'));
+    if (isset($vars['phpcid']))
+		$hidden_div->add(create_hidden('phpcid', $vars['phpcid']));
+
+	$form = tag('form', attributes("action=\"$phpc_script\"",
+        'method="post"'),
+        $hidden_div,
+        tag('table', attributes("class=\"phpc-container\""),
+            tag('caption', __('User Permissions')),
+            tag('tfoot',
+                tag('tr',
+                    tag('td', attributes('colspan="8"'),
+                        create_submit(__('Submit'))))),
+            tag('thead',
+                tag('tr',
+                    tag('th', __('User Name')),
+                    tag('th', __('Read')),
+                    tag('th', __('Write')),
+                    tag('th', __('Can Create Read-Only')),
+                    tag('th', __('Modify')),
+                    tag('th', __('Admin')),
+                    tag('th', __('Groups')),
+                    tag('th', __('Edit Groups'))
+                )), $tbody));
+
+	return tag('div', attrs('id="phpc-users"'), $form);
+}
+
+function category_list()
+{
+    global $phpcid, $phpc_cal;
+
+	$categories = $phpc_cal->get_categories();
+
+	$tbody = tag('tbody');
+
+	foreach ($categories as $category) {
+		$name = empty($category['name']) ? __('No Name')
+			: $category['name'];
+		$catid = $category['catid'];
+		$group = empty($category['group_name']) ? __('None')
+			: $category['group_name'];
+		$tbody->add(tag('tr',
+            tag('th', $name),
+            tag('td', phpc_html_escape($category['text_color'])),
+            tag('td', phpc_html_escape($category['bg_color'])),
+            tag('td', phpc_html_escape($group)),
+            tag('td', create_action_link(__('Edit'),
+                'category_form',
+                array('catid'
+                => $catid)),
+                " ",
+                create_action_link(__('Delete'),
+                    'category_delete',
+                    array('catid'
+                    => $catid)))
+        ));
+	}
+
+	$create_link = create_action_link(__('Create category'), 'category_form',
+        array('cid' => $phpcid));
+	$table = tag('table', attributes("class=\"phpc-container\""),
+        tag('caption', __('Calendar Categories')),
+        tag('thead',
+            tag('tr',
+                tag('th', __('Name')),
+                tag('th', __('Text Color')),
+                tag('th', __('Background Color')),
+                tag('th', __('Visible to User Group')),
+                tag('th', __('Actions'))
+            )),
+        $tbody,
+        tag('tfoot',
+            tag('tr',
+                tag('td', attributes('colspan="5"'),
+                    $create_link))));
+
+	return tag('div', attributes('id="phpc-categories"'), $table);
+}
+
+function group_list()
+{
+    global $phpcid, $phpc_cal;
+
+	$groups = $phpc_cal->get_groups();
+
+	$tbody = tag('tbody');
+
+	foreach ($groups as $group) {
+		$name = empty($group['name']) ? __('No Name')
+			: $group['name'];
+		$id = $group['gid'];
+		$tbody->add(tag('tr',
+            tag('th', $name),
+            tag('td', create_action_link(__('Edit'),
+                'group_form',
+                array('gid' => $id)),
+                " ",
+                create_action_link(__('Delete'),
+                    'group_delete',
+                    array('gid' => $id)))
+        ));
+	}
+
+	$create_link = create_action_link(__('Create group'), 'group_form',
+        array('cid' => $phpcid));
+	$table = tag('table', attributes("class=\"phpc-container\""),
+        tag('caption', __('Calendar Groups')),
+        tag('thead',
+            tag('tr',
+                tag('th', __('Name')),
+                tag('th', __('Actions'))
+            )),
+        $tbody,
+        tag('tfoot',
+            tag('tr',
+                tag('td', attributes('colspan="2"'),
+                    $create_link))));
+
+	return tag('div', attrs('id="phpc-groups"'), $table);
+}
+
diff --git a/src/cadmin_submit.php b/src/cadmin_submit.php
new file mode 100644
index 0000000..57511fd
--- /dev/null
+++ b/src/cadmin_submit.php
@@ -0,0 +1,52 @@
+<?php 
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function cadmin_submit() {
+	global $phpcid, $phpc_cal, $vars, $phpcdb, $phpc_script;
+
+        if(!$phpc_cal->can_admin()) {
+                return tag('div', __('Permission denied'));
+        }
+
+	foreach(get_config_options() as $item) {
+		if($item[2] == PHPC_CHECK) {
+			if(isset($vars[$item[0]]))
+				$value = "1";
+			else
+				$value = "0";
+		} else {
+			if(isset($vars[$item[0]])) {
+				$value = $vars[$item[0]];
+			} else {
+				soft_error($item[0] . __(" was not set."));
+			}
+		}
+
+		$phpcdb->update_config($phpcid, $item[0], $value);
+	}
+
+        return message_redirect(__('Updated options'),
+			"$phpc_script?action=cadmin&phpcid=$phpcid");
+}
+
diff --git a/src/calendar.php b/src/calendar.php
new file mode 100644
index 0000000..75a3bdc
--- /dev/null
+++ b/src/calendar.php
@@ -0,0 +1,1095 @@
+<?php
+/*
+ * Copyright 2017 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+   this file contains all the re-usable functions for the calendar
+*/
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+require_once("$phpc_includes_path/Gettext_PHP.php");
+require_once("$phpc_includes_path/html.php");
+require_once("$phpc_includes_path/util.php");
+
+// Displayed in admin
+$phpc_version = "2.0.10";
+
+/**
+ * @param string $msg
+ * @return string
+ */
+function __($msg) {
+	global $phpc_gettext;
+
+	if (empty($phpc_gettext))
+		return $msg;
+
+	return $phpc_gettext->gettext($msg);
+}
+
+/**
+ * @param string $context
+ * @param string $msg
+ * @return string
+ */
+function __p($context, $msg) {
+	global $phpc_gettext;
+
+	return $phpc_gettext->pgettext($context, $msg);
+}
+
+// checks global variables to see if the user is logged in.
+/**
+ * @return bool
+ */
+function is_user() {
+	global $phpc_user;
+
+	return $phpc_user->uid > 0;
+}
+
+/**
+ * @return bool
+ */
+function is_admin() {
+	global $phpc_user;
+
+	return $phpc_user->admin;
+}
+
+/**
+ * @param string $username
+ * @param string $password
+ * @return bool
+ */
+function login_user($username, $password)
+{
+    global $phpcdb;
+
+	$user = $phpcdb->get_user_by_name($username);
+	if(!$user || $user->password !== md5($password))
+		return false;
+
+	phpc_do_login($user);
+
+	return true;
+}
+
+/**
+ * @param PhpcUser $user
+ * @param bool $series_token
+ * @return bool
+ */
+function phpc_do_login($user, $series_token = false) {
+        global $phpcdb, $phpc_prefix;
+
+	$uid = $user->uid;
+	$login_token = phpc_get_token();
+	$_SESSION["{$phpc_prefix}uid"] = $uid;
+	$_SESSION["{$phpc_prefix}login"] = $login_token;
+
+	if(!$series_token) {
+		$series_token = phpc_get_token();
+		$phpcdb->add_login_token($uid, $series_token,
+				$login_token);
+	} else {
+		$phpcdb->update_login_token($uid, $series_token,
+				$login_token);
+	}
+
+	// TODO: Add a remember me checkbox to the login form, and have the
+	//	cookies expire at the end of the session if it's not checked
+
+	// expire credentials in 30 days.
+	$expiration_time = time() + 30 * 24 * 60 * 60;
+	phpc_set_cookie("{$phpc_prefix}uid", $uid, $expiration_time);
+	phpc_set_cookie("{$phpc_prefix}login", $login_token, $expiration_time);
+	phpc_set_cookie("{$phpc_prefix}login_series", $series_token,
+			$expiration_time);
+
+	return true;
+}
+
+function phpc_do_logout() {
+	global $phpc_prefix;
+   	session_destroy();
+	$past_time = time() - 3600;
+	phpc_set_cookie("{$phpc_prefix}uid", "", $past_time);
+	phpc_set_cookie("{$phpc_prefix}login", "", $past_time);
+	phpc_set_cookie("{$phpc_prefix}login_series", "", $past_time);
+}
+
+// returns tag data for the links at the bottom of the calendar
+/**
+ * @return Html
+ */
+function footer()
+{
+	global $phpc_url, $phpc_tz, $phpc_lang;
+
+	$tag = tag('div', attributes('class="phpc-bar ui-widget-content"'),
+			"[" . __('Language') . ": $phpc_lang]" .
+			" [" . __('Timezone') . ": $phpc_tz]");
+
+	if(defined('PHPC_DEBUG')) {
+		$tag->add(tag('a', attributes('href="http://validator.w3.org/check?url='
+						. phpc_html_escape(rawurlencode($phpc_url))
+						. '"'), 'Validate HTML'));
+		$tag->add(tag('a', attributes('href="http://jigsaw.w3.org/css-validator/check/referer"'),
+					'Validate CSS'));
+	}
+
+	return $tag;
+}
+
+/**
+ * @return array
+ */
+function get_languages() {
+	global $phpc_locale_path;
+
+    static $langs;
+
+	if(!empty($langs))
+		return $langs;
+
+	// create links for each existing language translation
+	$handle = opendir($phpc_locale_path);
+
+	if(!$handle)
+		soft_error("Error reading locale directory.");
+
+	$langs = array('en');
+	while(($filename = readdir($handle)) !== false) {
+		$pathname = "$phpc_locale_path/$filename";
+		if(strncmp($filename, ".", 1) == 0 || !is_dir($pathname))
+			continue;
+		if(file_exists("$pathname/LC_MESSAGES/messages.mo"))
+			$langs[] = $filename;
+	}
+
+	closedir($handle);
+
+	return $langs;
+}
+
+/**
+ * @return int
+ */
+function day_of_week_start()
+{
+	global $phpc_cal;
+
+	return $phpc_cal->week_start;
+}
+
+// returns the number of days in the week before the 
+//  taking into account whether we start on sunday or monday
+/**
+ * @param int $month
+ * @param int $day
+ * @param int $year
+ * @return int
+ */
+function day_of_week($month, $day, $year)
+{
+	return day_of_week_ts(mktime(0, 0, 0, $month, $day, $year));
+}
+
+// returns the number of days in the week before the 
+//  taking into account whether we start on sunday or monday
+/**
+ * @param int $timestamp
+ * @return int
+ */
+function day_of_week_ts($timestamp)
+{
+	$days = date('w', $timestamp);
+
+	return ($days + 7 - day_of_week_start()) % 7;
+}
+
+// returns the number of days in $month
+/**
+ * @param int $month
+ * @param int $year
+ * @return false|string
+ */
+function days_in_month($month, $year)
+{
+	return date('t', mktime(0, 0, 0, $month, 1, $year));
+}
+
+//returns the number of weeks in $month
+function weeks_in_month($month, $year)
+{
+	$days = days_in_month($month, $year);
+
+	// days not in this month in the partial weeks
+	$days_before_month = day_of_week($month, 1, $year);
+	$days_after_month = 6 - day_of_week($month, $days, $year);
+
+	// add up the days in the month and the outliers in the partial weeks
+	// divide by 7 for the weeks in the month
+	return ($days_before_month + $days + $days_after_month) / 7;
+}
+
+// return the week number corresponding to the $day.
+function week_of_year($month, $day, $year)
+{
+	$timestamp = mktime(0, 0, 0, $month, $day, $year);
+
+	// week_start = 1 uses ISO 8601 and contains the Jan 4th,
+	//   Most other places the first week contains Jan 1st
+	//   There are a few outliers that start weeks on Monday and use
+	//   Jan 1st for the first week. We'll ignore them for now.
+	if(day_of_week_start() == 1) {
+		$year_contains = 4;
+		// if the week is in December and contains Jan 4th, it's a week
+		// from next year
+		if($month == 12 && $day - 24 >= $year_contains) {
+			$year++;
+			$month = 1;
+			$day -= 31;
+		}
+	} else {
+		$year_contains = 1;
+	}
+
+	// $day is the first day of the week relative to the current month,
+	// so it can be negative. If it's in the previous year, we want to use
+	// that negative value, unless the week is also in the previous year,
+	// then we want to switch to using that year.
+	if($day < 1 && $month == 1 && $day > $year_contains - 7) {
+		$day_of_year = $day - 1;
+	} else {
+		$day_of_year = date('z', $timestamp);
+		$year = date('Y', $timestamp);
+	}
+
+	/* Days in the week before Jan 1. */
+	$days_before_year = day_of_week(1, $year_contains, $year);
+
+	// Days left in the week
+	$days_left = 8 - day_of_week_ts($timestamp) - $year_contains;
+
+	/* find the number of weeks by adding the days in the week before
+	 * the start of the year, days up to $day, and the days left in
+	 * this week, then divide by 7 */
+	return ($days_before_year + $day_of_year + $days_left) / 7;
+}
+
+function year_of_week_of_year($month, $day, $year) {
+    $timestamp = mktime(0, 0, 0, $month, $day, $year);
+
+    // week_start = 1 uses ISO 8601 and contains the Jan 4th,
+    //   Most other places the first week contains Jan 1st
+    //   There are a few outliers that start weeks on Monday and use
+    //   Jan 1st for the first week. We'll ignore them for now.
+    if(day_of_week_start() == 1) {
+        $year_contains = 4;
+        // if the week is in December and contains Jan 4th, it's a week
+        // from next year
+        if($month == 12 && $day - 24 >= $year_contains) {
+            return $year + 1;
+        }
+    } else {
+        return $year;
+    }
+
+    // $day is the first day of the week relative to the current month,
+    // so it can be negative. If it's in the previous year, we want to use
+    // that negative value, unless the week is also in the previous year,
+    // then we want to switch to using that year.
+    if($day < 1 && $month == 1 && $day > $year_contains - 7) {
+        return $year;
+    } else {
+        return date('Y', $timestamp);
+    }
+}
+
+function create_event_link($text, $action, $eid, $attribs = false)
+{
+	return create_action_link($text, $action, array('eid' => $eid),
+			$attribs);
+}
+
+function create_occurrence_link($text, $action, $oid, $attribs = false)
+{
+	return create_action_link($text, $action, array('oid' => $oid),
+			$attribs);
+}
+
+function create_action_link_with_date($text, $action, $year = false,
+		$month = false, $day = false, $attribs = false)
+{
+	$args = array();
+	if($year !== false) $args["year"] = $year;
+	if($month !== false) $args["month"] = $month;
+	if($day !== false) $args["day"] = $day;
+
+	return create_action_link($text, $action, $args, $attribs);
+}
+
+/**
+ * @param $action
+ * @param bool $year
+ * @param bool $month
+ * @param bool $day
+ * @param array $args
+ * @return string
+ */
+function create_action_url($action, $year = false, $month = false, $day = false, $args = array())
+{
+	global $phpc_script, $vars;
+	if($year !== false) $args["year"] = $year;
+	if($month !== false) $args["month"] = $month;
+	if($day !== false) $args["day"] = $day;
+
+	$url ="".$phpc_script."?";
+	if(isset($vars["phpcid"]))
+		$url .= "phpcid=" . phpc_html_escape($vars["phpcid"]) . "&amp;";
+	$url .= "action=" . phpc_html_escape($action);
+
+
+    foreach ($args as $key => $value) {
+        if (empty($value))
+            continue;
+        if (is_array($value)) {
+            foreach ($value as $v) {
+                $url .= "&amp;"
+                    . phpc_html_escape("{$key}[]=$v");
+            }
+        } else
+            $url .= "&amp;" . phpc_html_escape("$key=$value");
+	}
+
+	return $url;
+}
+
+/**
+ * @param string $text
+ * @param string $action
+ * @param string[] $args
+ * @param bool|AttributeList $attribs
+ * @return Html
+ */
+function create_action_link($text, $action, $args = array(), $attribs = false)
+{
+	global $phpc_script, $vars;
+
+	$url = "href=\"$phpc_script?";
+	if(isset($vars["phpcid"]))
+		$url .= "phpcid=" . phpc_html_escape($vars["phpcid"]) . "&amp;";
+	$url .= "action=" . phpc_html_escape($action);
+
+    foreach ($args as $key => $value) {
+        if (empty($value))
+            continue;
+        if (is_array($value)) {
+            foreach ($value as $v) {
+                $url .= "&amp;"
+                    . phpc_html_escape("{$key}[]=$v");
+            }
+        } else
+            $url .= "&amp;" . phpc_html_escape("$key=$value");
+	}
+	$url .= '"';
+
+	if($attribs !== false) {
+		$as = attributes($url, $attribs);
+	} else {
+		$as = attributes($url);
+	}
+	return tag('a', $as, $text);
+}
+
+// takes a menu $html and appends an entry
+/**
+ * @param Html $html
+ * @param string $name
+ * @param string $action
+ * @param string[] $args
+ * @param bool|AttributeList $attribs
+ */
+function menu_item_append(&$html, $name, $action, $args = array(),
+		$attribs = false)
+{
+	$name=str_replace(' ','&nbsp;',$name); /*not breaking space on menus*/
+
+	if(!is_object($html)) {
+		soft_error('Html is not a valid Html class.');
+	}
+	$html->add(create_action_link($name, $action, $args, $attribs));
+	$html->add("\n");
+}
+
+// takes a menu $html and appends an entry with the date
+/**
+ * @param Html $html
+ * @param string $name
+ * @param string $action
+ * @param bool|int $year
+ * @param bool|int $month
+ * @param bool|int $day
+ * @param bool|AttributeList $attribs
+ */
+function menu_item_append_with_date(&$html, $name, $action, $year = false,
+		$month = false, $day = false, $attribs = false)
+{
+	$name = str_replace(' ','&nbsp;',$name);
+
+	if(!is_object($html)) {
+		soft_error('Html is not a valid Html class.');
+	}
+	$html->add(create_action_link_with_date($name, $action, $year, $month,
+			$day, $attribs));
+	$html->add("\n");
+}
+
+// same as above, but prepends the entry
+/**
+ * @param Html $html
+ * @param string $name
+ * @param string $action
+ * @param string[] $args
+ * @param bool|AttributeList $attribs
+ */
+function menu_item_prepend(&$html, $name, $action, $args = array(),
+		$attribs = false)
+{
+	if(!is_object($html)) {
+		soft_error('Html is not a valid Html class.');
+	}
+	$html->prepend("\n");
+	$html->prepend(create_action_link($name, $action, $args, $attribs));
+}
+
+// creates a hidden input for a form
+// returns tag data for the input
+/**
+ * @param string $name
+ * @param mixed $value
+ * @return Html
+ */
+function create_hidden($name, $value)
+{
+	return tag('input', attributes("name=\"$name\"", "value=\"$value\"",
+				'type="hidden"'));
+}
+
+// creates a submit button for a form
+// return tag data for the button
+/**
+ * @param mixed $value
+ * @return Html
+ */
+function create_submit($value)
+{
+	return tag('input', attributes('name="submit"', "value=\"$value\"",
+				'type="submit"'));
+}
+
+/**
+ * creates a text entry for a form
+ * returns tag data for the entry
+ *
+ * @param string $name
+ * @param mixed $value
+ * @return Html
+ */
+function create_text($name, $value = false)
+{
+	$attributes = attributes("name=\"$name\"", "id=\"$name\"", 'type="text"');
+	if($value !== false) {
+		$attributes->add("value=\"$value\"");
+	}
+	return tag('input', $attributes);
+}
+
+// creates a password entry for a form
+// returns tag data for the entry
+/**
+ * @param string $name
+ * @return Html
+ */
+function create_password($name)
+{
+	return tag('input', attributes("name=\"$name\"", "id=\"$name\"", 'type="password"'));
+}
+
+// creates a checkbox for a form
+// returns tag data for the checkbox
+/**
+ * @param string $name
+ * @param mixed $value
+ * @param bool $checked
+ * @param bool|string $label
+ * @return array|Html
+ */
+function create_checkbox($name, $value, $checked = false, $label = false)
+{
+	$attributes = attributes("id=\"$name\"", "name=\"$name\"",
+			'type="checkbox"', "value=\"$value\"");
+	if(!empty($checked)) $attributes->add('checked="checked"');
+	$input = tag('input', $attributes);
+	if($label !== false)
+		return array($input, tag('label', attributes("for=\"$name\""),
+					$label));
+	else
+		return $input;
+}
+
+// $title - string or html element displayed by default
+// $values - Array of URL => title
+// returns an html structure for a dropdown box that will change the page
+//		to the URL from $values when an element is selected
+/**
+ * @param mixed $title
+ * @param mixed $values
+ * @return Html
+ */
+function create_dropdown_list($title, $values)
+{
+	$list = tag('ul');
+	foreach($values as $key => $value) {
+		$list->add(tag('li', tag('a', attrs("href=\"$key\""), $value)));
+	}
+	return tag('span', attrs('class="phpc-dropdown-list"'),
+			tag('span', attrs('class="phpc-dropdown-list-header"'),
+				tag('span', attrs('class="phpc-dropdown-list-title"'),
+				$title)),
+			$list);
+}
+
+// creates the user menu
+// returns tag data for the menu
+/**
+ * @return Html
+ */
+function userMenu()
+{
+	global $action, $phpc_user;
+
+	$welcome = __('Welcome') . '&nbsp;' . $phpc_user->username;
+	$span = tag('span');
+
+	$html = tag('div', attributes('class="phpc-logged ui-widget-content"'),
+			$welcome, $span);
+
+	if($action != 'settings')
+		menu_item_append($span, __('Settings'), 'settings');
+
+	if(is_user()) {
+		menu_item_append($span, __('Log out'), 'logout',
+				array('lasturl' =>
+					phpc_html_escape(rawurlencode($_SERVER['QUERY_STRING']))));
+	} else {
+		menu_item_append($span, __('Log in'), 'login',
+				array('lasturl' =>
+					phpc_html_escape(rawurlencode($_SERVER['QUERY_STRING']))));
+	}
+	return $html;
+}
+
+// creates the navbar for the top of the calendar
+// returns tag data for the navbar
+/**
+ * @return Html
+ */
+function navbar()
+{
+    global $action, $year, $month, $day, $phpc_cal;
+
+	$html = tag('div', attributes('class="phpc-bar ui-widget-header"'));
+
+	$args = array('year' => $year, 'month' => $month, 'day' => $day);
+
+	if($phpc_cal->can_write() && $action != 'add') {
+		menu_item_append($html, __('Add Event'), 'event_form', $args);
+	}
+
+	if($action != 'search') {
+		menu_item_append($html, __('Search'), 'search', $args);
+	}
+
+	if($action != 'display_month') {
+		menu_item_append($html, __('View Month'), 'display_month',
+			$args);
+	}
+
+	if($action == 'display_event') {
+		menu_item_append($html, __('View date'), 'display_day', $args);
+	}
+
+	if($phpc_cal->can_admin() && $action != 'cadmin') {
+		menu_item_append($html, __('Calendar Admin'), 'cadmin');
+	}
+
+	if(is_admin() && $action != 'admin') {
+		menu_item_append($html, __('Admin'), 'admin');
+	}
+
+	return $html;
+}
+
+// creates an array from $start to $end, with an $interval
+/**
+ * @param int $start
+ * @param int $end
+ * @param int $interval
+ * @param mixed $display
+ * @return array
+ */
+function create_sequence($start, $end, $interval = 1, $display = false)
+{
+	$arr = array();
+	for ($i = $start; $i <= $end; $i += $interval){
+		if($display) {
+			$arr[$i] = call_user_func($display, $i);
+		} else {
+			$arr[$i] = $i;
+		}
+	}
+	return $arr;
+}
+
+/**
+ * @return array
+ */
+function get_config_options()
+{
+	static $options = NULL;
+
+	if($options === NULL) {
+		$options = init_config_options();
+	}
+	return $options;
+}
+
+/**
+ * @return array
+ */
+function init_config_options() {
+	$languages = array("" => __("Default"));
+	foreach(get_languages() as $language) {
+		$languages[$language] = $language;
+	}
+	// name, text, type, value(s)
+	return array(
+			array('week_start', __('Week Start'), PHPC_DROPDOWN,
+				array(
+					0 => __('Sunday'),
+					1 => __('Monday'),
+					6 => __('Saturday')
+				     )),
+			array('hours_24', __('24 Hour Time'), PHPC_CHECK),
+			array('title', __('Calendar Title'), PHPC_TEXT),
+			array('subject_max', __('Maximum Subject Length'), PHPC_TEXT, 50),
+			array('events_max', __('Events Display Daily Maximum'), PHPC_TEXT, 8),
+			array('anon_permission', __('Public Permissions'), PHPC_DROPDOWN,
+				array(
+					__('Cannot read nor write events'),
+					__('Can read but not write events'),
+					__('Can create but not modify events'),
+					__('Can create and modify events')
+				     )
+			     ),
+			array('timezone', __('Default Timezone'), PHPC_MULTI_DROPDOWN, get_timezone_list()),
+			array('language', __('Default Language'), PHPC_DROPDOWN,
+				$languages),
+			array('date_format', __('Date Format'), PHPC_DROPDOWN,
+					get_date_format_list()),
+			array('theme', __('Theme'), PHPC_DROPDOWN,
+					get_theme_list()),
+	);
+}
+
+/**
+ * @return array
+ */
+function get_theme_list() {
+	$themes = array('base',
+			'black-tie',
+			'blitzer',
+			'cupertino',
+			'dark-hive',
+			'dot-luv',
+			'eggplant',
+			'excite-bike',
+			'flick',
+			'hot-sneaks',
+			'humanity',
+			'le-frog',
+			'mint-choc',
+			'overcast',
+			'pepper-grinder',
+			'redmond',
+			'smoothness',
+			'south-street',
+			'start',
+			'sunny',
+			'swanky-purse',
+			'trontastic',
+			'ui-darkness',
+			'ui-lightness',
+			'vader');
+
+	$theme_list = array(NULL => __('Default'));
+	foreach($themes as $theme) {
+		$theme_list[$theme] = $theme;
+	}
+	return $theme_list;
+}
+
+/**
+ * @return array
+ */
+function get_timezone_list() {
+	$timezones = array();
+	$timezones[__("Default")] = "";
+	foreach(timezone_identifiers_list() as $timezone) {
+		$sp = explode("/", $timezone, 2);
+		$continent = $sp[0];
+		if(empty($sp[1])) {
+			$timezones[$continent] = $timezone;
+		} else {
+			$area = $sp[1];
+			if(empty($timezones[$continent]))
+				$timezones[$continent] = array();
+			$timezones[$continent][$timezone] = $area;
+		}
+	}
+	return $timezones;
+}
+
+/**
+ * @return array
+ */
+function get_date_format_list()
+{
+	return array(	__("Month Day Year"),
+			__("Year Month Day"),
+			__("Day Month Year"));
+}
+
+/**
+ * @return Html
+ */
+function display_phpc() {
+	global $phpc_messages, $phpc_redirect, $phpc_script, $phpc_prefix, $phpc_home_url, $phpc_cal, $phpcdb;
+
+	$navbar = false;
+
+	try {
+		$content = do_action();
+		$navbar = navbar();
+
+		if(sizeof($phpc_messages) > 0) {
+			$messages = tag('div', attrs('class="phpc-message"'));
+			foreach($phpc_messages as $message) {
+				$messages->add($message);
+			}
+			// If we're redirecting, the messages might not get
+			//   seen, so don't clear them
+			if(empty($phpc_redirect))
+				$_SESSION[$phpc_prefix . 'messages'] = null;
+		} else {
+			$messages = '';
+		}
+
+		$list = array();
+		foreach($phpcdb->get_calendars() as $calendar) {
+            if($calendar->can_read()) {
+                $list[$phpc_home_url . '?phpcid=' . $calendar->get_cid()] = $calendar->get_title();
+            }
+		}
+
+		return tag('div', attributes('class="php-calendar ui-widget"'),
+			userMenu(),
+			tag('br', attrs('style="clear:both;"')),
+			tag('h1', attrs('class="ui-widget-header"'),
+			create_dropdown_list(tag('a', attrs("href='$phpc_home_url?phpcid={$phpc_cal->get_cid()}'",
+			'class="phpc-dropdown-list-title"'),
+			$phpc_cal->get_title()), $list)),
+			$navbar, $messages, $content, footer());
+	} catch(PermissionException $e) {
+		$results = tag('');
+		// TODO: make navbar show if there is an error in do_action()
+		if($navbar !== false)
+			$results->add($navbar);
+		$msg = __('You do not have permission to do that: ')
+					. $e->getMessage();
+		$results->add(tag('div', attrs('class="phpc-message ui-state-error"'), $msg));
+		if(is_user())
+			return $results;
+		else
+			return message_redirect($msg,
+					"$phpc_script?action=login");
+	} catch(Exception $e) {
+		$results = tag('');
+		if($navbar !== false)
+			$results->add($navbar);
+		$results->add(tag('div', attrs('class="phpc-main"'),
+					tag('h2', __('Error')),
+					tag('p', $e->getMessage()),
+					tag('h3', __('Backtrace')),
+					tag('pre', phpc_html_escape($e->getTraceAsString()))));
+		return $results;
+	}
+
+}
+
+/**
+ * @return mixed
+ */
+function do_action()
+{
+    global $action, $phpc_includes_path;
+
+	$action_file = "$phpc_includes_path/$action.php";
+	if(!preg_match('/^\w+$/', $action) || !file_exists($action_file))
+		soft_error(__('Invalid action'));
+
+	require_once($action_file);
+
+    $action_output = call_user_func($action);
+
+	return $action_output;
+}
+
+// takes a number of the month, returns the name
+/**
+ * @param int $month
+ * @return string
+ */
+function month_name($month)
+{
+    global $month_names;
+
+	$month = ($month - 1) % 12 + 1;
+    return $month_names[$month];
+}
+
+//takes a day number of the week, returns a name (0 for the beginning)
+/**
+ * @param int $day
+ * @return string
+ */
+function day_name($day)
+{
+	global $day_names;
+
+	$day = $day % 7;
+
+    return $day_names[$day];
+}
+
+/**
+ * @param int $month
+ * @return string
+ */
+function short_month_name($month)
+{
+    global $short_month_names;
+
+	$month = ($month - 1) % 12 + 1;
+    return $short_month_names[$month];
+}
+
+function verify_token() {
+    global $vars, $phpc_token;
+
+	if(!is_user())
+        return;
+
+	if(empty($vars["phpc_token"]) || $vars["phpc_token"] != $phpc_token) {
+		//echo "<pre>real token: $phpc_token\n";
+		//echo "form token: {$vars["phpc_token"]}</pre>";
+		soft_error(__("Secret token mismatch. Possible request forgery attempt."));
+	}
+}
+
+/**
+ * @param string $path
+ * @return array
+ */
+function get_header_tags($path)
+{
+	global $phpc_cal;
+
+	if(defined('PHPC_DEBUG'))
+		$jq_min = '';
+	else
+		$jq_min = '.min';
+
+	$theme = $phpc_cal->theme;
+	if(empty($theme))
+		$theme = 'base';
+	$jquery_version = "3.6.0";
+	$jqueryui_version = "1.13.1";
+	$showdown_version = "1.9.1";
+
+	return array(
+			tag('link', attrs('rel="stylesheet"', 'type="text/css"',
+					"href=\"$path/phpc.css\"")),
+			tag('link', attrs('rel="stylesheet"', 'type="text/css"',
+					"href=\"//ajax.googleapis.com/ajax/libs/jqueryui/$jqueryui_version/themes/$theme/jquery-ui$jq_min.css\"")),
+			tag('link', attrs('rel="stylesheet"', 'type="text/css"',
+					"href=\"$path/jquery-ui-timepicker.css\"")),
+			tag("script", attrs("src=\"//ajax.googleapis.com/ajax/libs/jquery/$jquery_version/jquery$jq_min.js\""), ''),
+			tag("script", attrs("src=\"//ajax.googleapis.com/ajax/libs/jqueryui/$jqueryui_version/jquery-ui$jq_min.js\""), ''),
+			tag('script', attrs("src=\"$path/phpc.js\""), ''),
+			tag("script", attrs("src=\"$path/jquery.ui.timepicker.js\""), ''),
+			tag("script", attrs("src=\"$path/jquery.hoverIntent.minified.js\""), ''),
+			tag("script", attrs("src=\"$path/spectrum.js\""), ''),
+			tag('link', attrs('rel="stylesheet"', 'type="text/css"',
+					"href=\"$path/spectrum.css\"")),
+			tag("script", attrs("src=\"https://cdnjs.cloudflare.com/ajax/libs/showdown/$showdown_version/showdown.min.js\""), ''),
+		  );
+}
+
+/**
+ * @param $path
+ */
+function embed_header($path)
+{
+    echo tag('', get_header_tags($path))->toString();
+}
+
+// $element: { name, text, type, value(s) }
+/**
+ * @param array $element
+ * @param mixed $default
+ * @return array|Html
+ */
+function create_config_input($element, $default = false)
+{
+	$name = $element[0];
+	$text = $element[1];
+	$type = $element[2];
+	$value = false;
+        if(isset($element[3]))
+                $value = $element[3];
+
+	switch($type) {
+		case PHPC_CHECK:
+			if($default == false)
+                                $default = $value;
+			$input = create_checkbox($name, '1', $default, $text);
+			break;
+		case PHPC_TEXT:
+			if($default == false)
+                                $default = $value;
+			$input = create_text($name, $default);
+			break;
+		case PHPC_DROPDOWN:
+			$input = create_select($name, $value, $default);
+			break;
+		case PHPC_MULTI_DROPDOWN:
+			$input = create_multi_select($name, $value, $default);
+			break;
+		default:
+			soft_error(__('Unsupported config type') . ": $type");
+	}
+	return $input;
+}
+
+/* Make a timestamp from the input fields $prefix-time and $prefix-date
+   uses $phpc_cal->date_format to determine the format of the date
+   if there's no $prefix-time, uses values passed as parameters
+*/
+/**
+ * @param string $prefix
+ * @param int $hour
+ * @param int $minute
+ * @param int $second
+ * @return false|int
+ */
+function get_timestamp($prefix, $hour = 0, $minute = 0, $second = 0)
+{
+	global $vars, $phpc_cal;
+
+	if(empty($vars["$prefix-date"]))
+		soft_error(sprintf(__("Required field \"%s\" was not set."),
+					"$prefix-date"));
+
+	if(!empty($vars["$prefix-time"])) {
+		if(!preg_match('/(\d+)[:\.](\d+)\s?(\w+)?/', $vars["$prefix-time"],
+					$time_matches)) {
+			soft_error(sprintf(__("Malformed \"%s\" time: \"%s\""),
+						$prefix,
+						$vars["$prefix-time"]));
+		}
+		$hour = $time_matches[1];
+		$minute = $time_matches[2];
+		if(isset($time_matches[3])) {
+			$period = $time_matches[3];
+			if($hour == 12)
+				$hour = 0;
+			if(strcasecmp("am", $period) == 0) {
+				// AM
+			} else if(strcasecmp("pm", $period) == 0) {
+				$hour += 12;
+			} else {
+				soft_error(__("Unrecognized period: ")
+						. $period);
+			}
+		}
+	}
+
+	if(!preg_match('/(\d+)[\.\/\-\ ](\d+)[\.\/\-\ ](\d+)/',
+				$vars["$prefix-date"], $date_matches)) {
+		soft_error(sprintf(__("Malformed \"%s\" date: \"%s\""),
+					$prefix, $vars["$prefix-date"]));
+	}
+
+	switch($phpc_cal->date_format) {
+		case 0: // Month Day Year
+			$month = $date_matches[1];
+			$day = $date_matches[2];
+			$year = $date_matches[3];
+			break;
+		case 1: // Year Month Day
+			$year = $date_matches[1];
+			$month = $date_matches[2];
+			$day = $date_matches[3];
+			break;
+		case 2: // Day Month Year
+			$day = $date_matches[1];
+			$month = $date_matches[2];
+			$year = $date_matches[3];
+			break;
+		default:
+			soft_error(__("Invalid date_format."));
+	}
+
+	return mktime($hour, $minute, $second, $month, $day, $year);
+}
+
+/**
+ * @param string $name
+ * @param mixed $value
+ * @param int $expire
+ * @return bool
+ */
+function phpc_set_cookie($name, $value, $expire = 0) {
+	return setcookie($name, $value, $expire, "", "", false, true);
+}
+
diff --git a/src/calendar_delete.php b/src/calendar_delete.php
new file mode 100644
index 0000000..592996c
--- /dev/null
+++ b/src/calendar_delete.php
@@ -0,0 +1,66 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function calendar_delete()
+{
+	global $vars, $phpcdb, $phpc_script;
+
+	$html = tag('div', attributes('class="phpc-container"'));
+
+	if(empty($vars["cid"])) {
+		$html->add(tag('p', __('No calendar selected.')));
+		return $html;
+	}
+
+	$id = $vars["cid"];
+	$calendar = $phpcdb->get_calendar($id);
+
+	if(empty($calendar))
+		soft_error(__("Invalid calendar ID."));
+
+	if (empty($vars["confirm"])) {
+		$html->add(tag('p', __('Confirm you want to delete calendar:'). $calendar->get_title()));
+		$html->add(" [ ", create_action_link(__('Confirm'),
+					"calendar_delete", array("cid" => $id,
+						"confirm" => "1")), " ] ");
+		$html->add(" [ ", create_action_link(__('Deny'),
+					"display_month"), " ] ");
+		return $html;
+	}
+
+	if(!$calendar->can_admin()) {
+		$html->add(tag('p', __("You do not have permission to remove calendar") . ": $id"));
+		return $html;
+	}
+
+	if($phpcdb->delete_calendar($id)) {
+		$html->add(tag('p', __("Removed calendar") . ": $id"));
+	} else {        
+		$html->add(tag('p', __("Could not remove calendar")
+					. ": $id"));
+	}
+
+        return message_redirect($html, "$phpc_script?action=admin");
+}
+
diff --git a/src/calendar_form.php b/src/calendar_form.php
new file mode 100644
index 0000000..489dc76
--- /dev/null
+++ b/src/calendar_form.php
@@ -0,0 +1,103 @@
+<?php
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if (!defined('IN_PHPC')) {
+    die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function calendar_form()
+{
+    global $vars;
+
+    if (!is_admin()) {
+        return tag('div', __('Permission denied'));
+    }
+
+    if (!empty($vars['submit_form']))
+        process_form();
+
+    return display_form();
+
+}
+
+function process_form()
+{
+    global $vars, $phpcdb;
+
+    verify_token();
+
+    $cid = $phpcdb->create_calendar();
+
+    foreach (get_config_options() as $item) {
+        $name = $item[0];
+        $type = $item[2];
+
+        if ($type == PHPC_CHECK) {
+            if (isset($vars[$name]))
+                $value = "1";
+            else
+                $value = "0";
+        } else {
+            if (isset($vars[$name])) {
+                $value = $vars[$name];
+            } else {
+                soft_error(__("$name was not set."));
+            }
+        }
+
+        $phpcdb->create_config($cid, $name, $value);
+    }
+
+    message(__('Calendar created.'));
+}
+
+/**
+ * @return Html
+ */
+function display_form()
+{
+    global $phpc_script, $phpc_token;
+
+    $tbody = tag('tbody');
+
+    foreach (get_config_options() as $element) {
+        $text = $element[1];
+        $input = create_config_input($element);
+
+        $tbody->add(tag('tr',
+            tag('th', $text),
+            tag('td', $input)));
+    }
+
+    return tag('form', attributes("action=\"$phpc_script\"",
+        'method="post"'),
+        tag('table', attributes("class=\"phpc-container\""),
+            tag('caption', __('Create Calendar')),
+            tag('tfoot',
+                tag('tr',
+                    tag('td', attributes('colspan="2"'),
+                        create_hidden('phpc_token', $phpc_token),
+                        create_hidden('action', 'calendar_form'),
+                        create_hidden('submit_form', 'submit_form'),
+                        create_submit(__('Submit'))))),
+            $tbody));
+
+}
+
diff --git a/src/category_delete.php b/src/category_delete.php
new file mode 100644
index 0000000..8842443
--- /dev/null
+++ b/src/category_delete.php
@@ -0,0 +1,80 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function category_delete()
+{
+	global $vars, $phpcdb, $phpcid, $phpc_script;
+
+	$html = tag('div', attributes('class="phpc-container"'));
+
+	if(empty($vars["catid"])) {
+		return message_redirect(__('No category selected.'),
+				"$phpc_script?action=cadmin&phpcid=$phpcid");
+	}
+
+	if (is_array($vars["catid"])) {
+		$ids = $vars["catid"];
+	} else {
+		$ids = array($vars["catid"]);
+	}
+
+	$categories = array();
+	foreach ($ids as $id) {
+		$categories[] = $phpcdb->get_category($id);
+	}
+
+	if (empty($vars["confirm"])) {
+		$list = tag('ul');
+		foreach ($categories as $category) {
+            $list->add(tag('li', $category['name']));
+		}
+		$html->add(tag('p', __('Confirm you want to delete:')));
+		$html->add($list);
+		$html->add(" [ ", create_action_link(__('Confirm'),
+					"category_delete", array("catid" => $ids,
+						"confirm" => "1")), " ] ");
+		$html->add(" [ ", create_action_link(__('Deny'),
+					"display_month"), " ] ");
+		return $html;
+	}
+
+	foreach($categories as $category) {
+		if((empty($category['cid']) && !is_admin()) ||
+					!$phpcdb->get_calendar($category['cid'])
+					->can_admin()) {
+			$html->add(tag('p', __("You do not have permission to delete category: ") . $category['catid']));
+			continue;
+		}
+
+		if($phpcdb->delete_category($category['catid'])) {
+			$html->add(tag('p', __("Removed category: ")
+					. $category['catid']));
+		} else {        
+			$html->add(tag('p', __("Could not remove category: ")
+						. $category['catid']));
+		}
+	}
+
+        return message_redirect($html, "$phpc_script?action=cadmin&phpcid=$phpcid");
+}
diff --git a/src/category_form.php b/src/category_form.php
new file mode 100644
index 0000000..124ae5d
--- /dev/null
+++ b/src/category_form.php
@@ -0,0 +1,71 @@
+<?php
+/*
+ * Copyright 2010 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+       die("Hacking attempt");
+}
+
+require_once("$phpc_includes_path/form.php");
+
+/**
+ * @return Html
+ */
+function category_form() {
+	global $phpc_script, $vars, $phpcdb, $phpcid;
+
+        $form = new Form($phpc_script, __('Category Form'));
+        $form->add_part(new FormFreeQuestion('name', __('Name'),
+				false, 32, true));
+
+	if(isset($vars['cid'])) {
+		$form->add_hidden('cid', $vars['cid']);
+		$cid = $vars['cid'];
+	} else {
+		$cid = $phpcid;
+	}
+
+	$form->add_hidden('action', 'category_submit');
+	$form->add_hidden('phpcid', $phpcid);
+	$form->add_part(new FormColorPicker('text-color',__('Text Color')));
+	$form->add_part(new FormColorPicker('bg-color',__('Background Color')));
+	$group_question = new FormDropDownQuestion('gid',
+			__('Visible to groups'));
+	$group_question->add_option('', __('None'));
+	foreach($phpcdb->get_groups($cid) as $group) {
+		$group_question->add_option($group['gid'], $group['name']);
+	}
+	$form->add_part($group_question);
+	$form->add_part(new FormSubmitButton(__("Submit Category")));
+
+	if(isset($vars['catid'])) {
+		$form->add_hidden('catid', $vars['catid']);
+		$category = $phpcdb->get_category($vars['catid']);
+		$defaults = array(
+				'name' => phpc_html_escape($category['name']),
+				'text-color' => phpc_html_escape(str_replace('#', '', $category['text_color'])),
+				'bg-color' => phpc_html_escape(str_replace('#', '', $category['bg_color'])),
+				'gid' => phpc_html_escape($category['gid']),
+				);
+	} else {
+		$defaults = array(
+				'text-color' => '#000000',
+				'bg-color' => '#FFFFFF',
+				);
+	}
+        return $form->get_form($defaults);
+}
+
diff --git a/src/category_submit.php b/src/category_submit.php
new file mode 100644
index 0000000..5993702
--- /dev/null
+++ b/src/category_submit.php
@@ -0,0 +1,102 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function category_submit()
+{
+    global $vars, $phpcdb, $phpc_script;
+
+	if(empty($vars["text-color"]) || empty($vars["bg-color"])) {
+		$page = "$phpc_script?action=category_form";
+		if(!empty($vars["cid"]))
+			$page .= "&cid={$vars["cid"]}";
+		if(!empty($vars["catid"]))
+			$page .= "&catid={$vars["catid"]}";
+
+		return message_redirect(__("Color not specified."), $page);
+	}
+
+	// The current widget produces hex values without the "#".
+	//   We may in the future want to allow different input, so store the
+	//   values with the "#"
+	$text_color = $vars["text-color"];
+	$bg_color = $vars["bg-color"];
+	if(empty($vars['gid']) || strlen($vars['gid']) == 0)
+		$gid = 0;
+	else
+		$gid = $vars['gid'];
+
+	if(!check_color($text_color)) {
+		soft_error(__("Invalid color: ") . "\"$text_color\"");
+	}
+	if(!check_color($bg_color)) {
+		soft_error(__("Invalid color: ") . "\"$bg_color\"");
+	}
+
+	if(!isset($vars['catid'])) {
+		$modify = false;
+
+		if(!isset($vars['cid'])) {
+			$cid = null;
+			if(!is_admin())
+				permission_error(__('You do not have permission to add categories to all calendars.'));
+		} else { 
+			$cid = $vars['cid'];
+			$calendar = $phpcdb->get_calendar($cid);
+			if(!$calendar->can_admin())
+				permission_error(__('You do not have permission to add categories to this calendar.'));
+		}
+		$catid = $phpcdb->create_category($cid, $vars["name"],
+				$text_color, $bg_color, $gid);
+	} else {
+		$modify = true;
+
+		$catid = $vars['catid'];
+		$category = $phpcdb->get_category($catid);
+
+		if(!(empty($category['cid']) && is_admin() ||
+					$phpcdb->get_calendar($category["cid"])
+					->can_admin()))
+			soft_error(__("You do not have permission to modify this category."));
+			
+		$phpcdb->modify_category($catid, $vars['name'],
+				$text_color, $bg_color, $gid);
+	}
+
+	$page = "$phpc_script?action=cadmin&phpcid=".$vars['phpcid'];
+
+	if($modify)
+		return message_redirect(__("Modified category: ") . $catid,
+				$page);
+
+	if($catid > 0)
+		return message_redirect(__("Created category: ") . $catid,
+				$page);
+
+	return tag('div', attributes('class="phpc-error"'),
+			__('Error submitting category.'));
+}
+
+function check_color($color) {
+	return preg_match('/^#[0-9a-fA-F]{6}$/', $color) == 1;
+}
diff --git a/src/display_day.php b/src/display_day.php
new file mode 100644
index 0000000..5615442
--- /dev/null
+++ b/src/display_day.php
@@ -0,0 +1,149 @@
+<?php
+/*
+ * Copyright 2014 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+   This file has the functions for the main displays of the calendar
+*/
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+// View for a single day
+/**
+ * @return Html
+ */
+function display_day()
+{
+    global $phpcid, $phpc_cal, $phpc_script, $phpcdb, $day, $month, $year;
+
+	$monthname = month_name($month);
+
+    $results = $phpcdb->get_occurrences_by_date($phpcid, $year, $month, $day);
+
+	$have_events = false;
+
+	$html_table = tag('table', attributes('class="phpc-main"'),
+			tag('caption', "$day $monthname $year"),
+			tag('thead',
+				tag('tr',
+					tag('th', __('Title')),
+					tag('th', __('Time')),
+					tag('th', __('Description'))
+				   )));
+	if($phpc_cal->can_modify()) {
+		$html_table->add(tag('tfoot',
+					tag('tr',
+						tag('td',
+							attributes('colspan="4"'),
+							create_hidden('action', 'event_delete'),
+							create_hidden('day', $day),
+							create_hidden('month', $month),
+							create_hidden('year', $year),
+							create_submit(__('Delete Selected'))))));
+	}
+
+	$html_body = tag('tbody');
+
+	while($row = $results->fetch_assoc()) {
+	
+		$event = new PhpcOccurrence($row);
+
+		if(!$event->can_read())
+			continue;
+
+		$have_events = true;
+
+		$eid = $event->get_eid();
+		$oid = $event->get_oid();
+
+		$html_subject = tag('td');
+
+		if($event->can_modify()) {
+			$html_subject->add(create_checkbox('eid[]',
+						$eid));
+		}
+
+		$html_subject->add(create_occurrence_link(tag('strong',
+						$event->get_subject()),
+					'display_event', $oid));
+
+		if($event->can_modify()) {
+			$html_subject->add(" (");
+			$html_subject->add(create_event_link(
+						__('Modify'), 'event_form',
+						$eid));
+			$html_subject->add(')');
+		}
+
+		$html_body->add(tag('tr',
+					$html_subject,
+					tag('td', $event->get_time_span_string()),
+					tag('td', attributes('class="phpc-desc"'), $event->get_desc())));
+	}
+
+	$html_table->add($html_body);
+
+	if($phpc_cal->can_modify()) {
+		$output = tag('form',
+				attributes("action=\"$phpc_script\""),
+				$html_table);
+	} else {
+		$output = $html_table;
+	}
+
+	if(!$have_events)
+		$output = tag('h2', __('No events on this day.'));
+
+	return tag('', create_day_menu(), $output);
+}
+
+/**
+ * @return Html
+ */
+function create_day_menu() {
+	global $month, $day, $year;
+
+	$html = tag('div', attrs('class="phpc-bar ui-widget-content"'));
+
+	$lasttime = mktime(0, 0, 0, $month, $day - 1, $year);
+	$lastday = date('j', $lasttime);
+	$lastmonth = date('n', $lasttime);
+	$lastyear = date('Y', $lasttime);
+	$lastmonthname = month_name($lastmonth);
+
+	$last_args = array('year' => $lastyear, 'month' => $lastmonth,
+			'day' => $lastday);
+
+	menu_item_prepend($html, "$lastmonthname $lastday", 'display_day',
+			$last_args);
+
+	$nexttime = mktime(0, 0, 0, $month, $day + 1, $year);
+	$nextday = date('j', $nexttime);
+	$nextmonth = date('n', $nexttime);
+	$nextyear = date('Y', $nexttime);
+	$nextmonthname = month_name($nextmonth);
+
+	$next_args = array('year' => $nextyear, 'month' => $nextmonth,
+			'day' => $nextday);
+
+	menu_item_append($html, "$nextmonthname $nextday", 'display_day',
+			$next_args);
+
+	return $html;
+}
+
diff --git a/src/display_event.php b/src/display_event.php
new file mode 100644
index 0000000..4820e2d
--- /dev/null
+++ b/src/display_event.php
@@ -0,0 +1,252 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+   This file has the functions for the main displays of the calendar
+*/
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+// Full view for a single event
+/**
+ * @return Html|string
+ */
+function display_event()
+{
+	global $vars;
+
+	if(!empty($vars['contentType']) && $vars['contentType'] == 'json')
+		return display_event_json();
+	
+	if(isset($vars['oid']))
+		return display_event_by_oid($vars['oid']);
+	
+	if(isset($vars['eid']))
+		return display_event_by_eid($vars['eid']);
+
+	// If we get here, we did something wrong
+	soft_error(__("Invalid arguments."));
+}
+
+/**
+ * @param int $oid
+ * @return Html
+ */
+function display_event_by_oid($oid)
+{
+	global $phpcdb, $year, $month, $day;
+
+	$event = $phpcdb->get_occurrence_by_oid($oid);
+
+	$eid = $event->get_eid();
+
+	if(!$event->can_read()) {
+		return tag('p', __("You do not have permission to read this event."));
+	}
+
+	$event_header = tag('div', attributes('class="phpc-event-header"'),
+			tag('div',attributes('class="phpc-event-creator"'), __('by').' ',
+				tag('cite', $event->get_author())));
+
+	$category = $event->get_category();
+	if(!empty($category))
+		$event_header->add(tag('div',attributes('class="phpc-event-cats"'), __('Category') . ': '
+					. $category));
+
+	$event_header->add(tag('div',attributes('class="phpc-event-time"'),
+				__('When').": ".$event->get_datetime_string()));
+	
+	$event_header->add(tag('div', __('Created at: '), $event->get_ctime_string()));
+	if(!empty($event->mtime))
+		$event_header->add(tag('div', __('Last modified at: '),
+				$event->get_mtime_string()));
+				
+	$menu_tag = tag('div', attrs('class="phpc-bar ui-widget-content"')); 
+	// Add modify/delete links if this user has access to this event.
+        if($event->can_modify()) {
+		$menu_tag->add(array(create_event_link(__('Modify'),
+						'event_form', $eid), "\n",
+					create_event_link(__('Delete'),
+						'event_delete', $eid), "\n",
+					create_occurrence_link(__('Modify Occurrence'),
+						'occur_form', $oid), "\n",
+					create_occurrence_link(__('Remove Occurrence'),
+						'occurrence_delete', $oid),
+					"\n"));
+	}
+
+
+	$occurrences = $phpcdb->get_occurrences_by_eid($eid);
+		//$occurrence_div = tag('div', );
+	$i = 0;
+	while($i < sizeof($occurrences)) {
+		if($occurrences[$i]->get_oid() == $oid)
+			break;
+		$i++;
+	}
+	// if we have a previous event
+	$prev = $i - 1;
+	if($prev >= 0) {
+		$prev_occur = $occurrences[$prev];
+		$menu_tag->add(create_occurrence_link(
+					__('Previous occurrence on') . " " .
+					$prev_occur->get_date_string(),
+					'display_event',
+					$prev_occur->get_oid()), ' ');
+	}
+	// if we have a future event
+	$next = $i + 1;
+	if($next < sizeof($occurrences)) {
+		$next_occur = $occurrences[$next];
+		$menu_tag->add(create_occurrence_link(
+					__('Next occurrence on') . " " .
+					$next_occur->get_date_string(),
+					'display_event',
+					$next_occur->get_oid()), ' ');
+	}
+
+	$menu_tag->add(create_event_link(__('View All Occurrences'),
+				'display_event', $eid));
+
+	$event_header->add($menu_tag);
+
+	$year = $event->get_start_year();
+	$month = $event->get_start_month();
+	$day = $event->get_start_day();
+
+	$desc_tag = tag('div',
+			tag('h3', __("Description")),
+			tag('p', attributes('class="phpc-desc"'),
+				$event->get_desc()));
+
+	return tag('div', attributes('class="phpc-main phpc-event"'),
+			tag('h2', $event->get_subject()), $event_header,
+			$desc_tag);
+}
+
+/**
+ * @param int $eid
+ * @return Html
+ */
+function display_event_by_eid($eid)
+{
+	global $phpcdb, $year, $month, $day;
+
+	$event = new PhpcEvent($phpcdb->get_event_by_eid($eid));
+
+	if(!$event->can_read()) {
+		return tag('p', __("You do not have permission to read this event."));
+	}
+
+	$event_header = tag('div', attributes('class="phpc-event-header"'),
+			tag('div', __('by').' ',
+				tag('cite', $event->get_author())));
+
+	$event_header->add(tag('div', __('Created at: '), $event->get_ctime_string()));
+	if(!empty($event->mtime))
+		$event_header->add(tag('div', __('Last modified at: '),
+				$event->get_mtime_string()));
+
+	$category = $event->get_category();
+	if(!empty($category))
+		$event_header->add(tag('div', __('Category') . ': '
+					. $category));
+
+	// Add modify/delete links if this user has access to this event.
+        if($event->can_modify()) {
+		$event_header->add(tag('div', attrs('class="phpc-bar ui-widget-content"'),
+					create_event_link(__('Modify'),
+						'event_form', $eid), "\n",
+					create_event_link(__('Add Occurrence'),
+						'occur_form', $eid), "\n",
+					create_event_link(__('Delete'),
+						'event_delete', $eid)));
+	}
+
+	$desc_tag = tag('div',
+			tag('h3', __("Description")),
+			tag('p', attributes('class="phpc-desc"'), $event->get_desc()));
+
+	$occurrences_tag = tag('ul');
+	$occurrences = $phpcdb->get_occurrences_by_eid($eid);
+	$set_date = false;
+	foreach($occurrences as $occurrence) {
+		if(!$set_date) {
+			$year = $occurrence->get_start_year();
+			$month = $occurrence->get_start_month();
+			$day = $occurrence->get_start_day();
+		}
+		$oid = $occurrence->get_oid();
+		$occ_tag = tag('li', attrs('class="ui-widget-content"'),
+				create_occurrence_link(
+					$occurrence->get_date_string()
+					. ' ' . __('at') . ' '
+					. $occurrence->get_time_span_string(),
+					'display_event',
+					$oid));
+		if($event->can_modify()) {
+			$occ_tag->add(" ",
+					create_occurrence_link(__('Edit'), 'occur_form', $oid), " ",
+					create_occurrence_link(__('Remove'), 'occurrence_delete', $oid));
+		}
+		$occurrences_tag->add($occ_tag);
+	}
+
+	return tag('div', attributes('class="phpc-main phpc-event"'),
+			tag('h2', $event->get_subject()), $event_header,
+			$desc_tag, tag ('div',attributes('class="phpc-occ"'),tag('h3', __('Occurrences')),
+			$occurrences_tag));
+}
+
+// generates a JSON data structure for a particular event
+/**
+ * @return string
+ */
+function display_event_json()
+{
+	global $phpcdb, $vars;
+
+	if(!isset($vars['oid']))
+		return "";
+
+	$event = $phpcdb->get_occurrence_by_oid($vars['oid']);
+
+	if(!$event->can_read())
+		return "";
+
+	$author = __("by") . " " . $event->get_author();
+	$time_str = $event->get_time_span_string();
+	$date_str = $event->get_date_string();
+
+	$category = $event->get_category();
+	if(empty($category))
+		$category_text = '';
+	else
+		$category_text = __('Category') . ': ' . $event->get_category();
+
+		if ($time_str!="") $time="$date_str " . __("from") . " $time_str";
+		else $time="$date_str ";
+		
+	return json_encode(array("title" => $event->get_subject(),
+				"author" => $author,
+				"time" => $time,
+				"category" => $category_text,
+				"body" => $event->get_desc()));
+}
+
diff --git a/src/display_month.php b/src/display_month.php
new file mode 100644
index 0000000..a35db9a
--- /dev/null
+++ b/src/display_month.php
@@ -0,0 +1,288 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+   This file has the functions for the main displays of the calendar
+*/
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+// Full display for a month
+/**
+ * @return Html
+ */
+function display_month()
+{
+	global $month, $year, $phpc_home_url, $phpcid;
+
+	$heading_html = tag('tr');
+	$heading_html->add(tag('th', __p('Week', 'W')));
+	for($i = 0; $i < 7; $i++) {
+		$d = ($i + day_of_week_start()) % 7;
+		$heading_html->add(tag('th', day_name($d)));
+	}
+
+	$months = array();
+	for($i = 1; $i <= 12; $i++) {
+		$m = month_name($i);
+		$months["$phpc_home_url?action=display_month&amp;phpcid=$phpcid&amp;month=$i&amp;year=$year"] = $m;
+	}
+	$years = array();
+	for($i = $year - 5; $i <= $year + 5; $i++) {
+		$years["$phpc_home_url?action=display_month&amp;phpcid=$phpcid&amp;month=$month&amp;year=$i"] = $i;
+	}
+	return tag('',
+			tag("div", attributes('id="phpc-summary-view"'), 
+				tag("div", attributes('id="phpc-summary-head"'),
+					tag("div", attributes('id="phpc-summary-title"'), ''),
+					tag("div", attributes('id="phpc-summary-author"'), ''),
+					tag("div", attributes('id="phpc-summary-category"'), ''),
+					tag("div", attributes('id="phpc-summary-time"'), '')),
+				tag("div", attributes('id="phpc-summary-body"'), '')),
+                        tag('table',
+				attributes('class="phpc-main phpc-calendar"'),
+                                tag('caption',
+					create_dropdown_list(month_name($month), $months),
+					create_dropdown_list($year, $years)),
+                                tag('colgroup',
+					tag('col', attributes('class="phpc-week"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"'))
+				   ),
+                                tag('thead', $heading_html),
+                                create_month($month, $year)));
+}
+
+// creates a display for a particular month to be embedded in a full view
+/**
+ * @param int $month
+ * @param int $year
+ * @return Html
+ */
+function create_month($month, $year)
+{
+	global $phpcdb, $phpc_cal, $phpcid;
+
+	$wim = weeks_in_month($month, $year);
+
+	$first_day = 1 - day_of_week($month, 1, $year);
+	$from_stamp = mktime(0, 0, 0, $month, $first_day, $year);
+
+	$last_day = $wim * 7 - day_of_week($month, 1, $year);
+	$to_stamp = mktime(23, 59, 59, $month, $last_day, $year);
+
+	$max_events = $phpc_cal->events_max;
+
+	$results = $phpcdb->get_occurrences_by_date_range($phpcid, $from_stamp,
+			$to_stamp);
+	$days_events = array();
+	while($row = $results->fetch_assoc()) {
+		$event = new PhpcOccurrence($row);
+
+		if(!$event->can_read())
+			continue;
+
+		$end_stamp = mktime(0, 0, 0, $event->get_end_month(),
+				$event->get_end_day(), $event->get_end_year());
+
+		$start_stamp = mktime(0, 0, 0, $event->get_start_month(),
+				$event->get_start_day(),
+				$event->get_start_year());
+
+		$diff = $from_stamp - $start_stamp;
+		if($diff > 0)
+			$add_days = floor($diff / 86400);
+		else
+			$add_days = 0;
+
+		// put the event in every day until the end
+		for(; ; $add_days++) {
+			$stamp = mktime(0, 0, 0, $event->get_start_month(),
+					$event->get_start_day() + $add_days,
+					$event->get_start_year());
+
+			if($stamp > $end_stamp || $stamp > $to_stamp)
+				break;
+
+			$key = date('Y-m-d', $stamp);
+			if(!isset($days_events[$key]))
+				$days_events[$key] = array();
+			if(sizeof($days_events[$key]) == $max_events)
+				$days_events[$key][] = false;
+			if(sizeof($days_events[$key]) > $max_events)
+				continue;
+			$days_events[$key][] = $event;
+		}
+	}
+
+	$month_table = tag('tbody');
+	for($week_of_month = 1; $week_of_month <= $wim; $week_of_month++) {
+		$month_table->add(create_week($week_of_month, $month, $year,
+					$days_events));
+	}
+
+	return $month_table;
+}
+
+// creates a display for a particular week to be embedded in a month table
+/**
+ * @param int $week_of_month
+ * @param int $month
+ * @param int $year
+ * @param PhpcOccurrence[][] $days_events
+ * @return Html
+ */
+function create_week($week_of_month, $month, $year, $days_events)
+{
+	$start_day = 1 + ($week_of_month - 1) * 7
+		- day_of_week($month, 1, $year);
+	$week_of_year = week_of_year($month, $start_day, $year);
+
+	$args = array('week' => $week_of_year, 'year' => year_of_week_of_year($month, $start_day, $year));
+    $click = create_action_url('display_week', false, false, false, $args);
+	$week_html = tag('tr', tag('th', attrs('class="ui-state-default"',
+					"onclick=\"window.location.href='$click'\""),
+				create_action_link($week_of_year,
+					'display_week', $args)));
+		
+	for($day_of_week = 0; $day_of_week < 7; $day_of_week++) {
+		$day = $start_day + $day_of_week;
+		$week_html->add(create_day($month, $day, $year, $days_events));
+	}
+
+	return $week_html;
+}
+
+// displays the day of the week and the following days of the week
+/**
+ * @param int $month
+ * @param int $day
+ * @param int $year
+ * @param PhpcOccurrence[][] $days_events
+ * @return Html
+ */
+function create_day($month, $day, $year, $days_events)
+{
+    global $phpc_cal;
+
+	$date_class = 'ui-state-default';
+	if($day <= 0) {
+		$month--;
+		if($month < 1) {
+			$month = 12;
+			$year--;
+		}
+		$day += days_in_month($month, $year);
+		$date_class .= ' phpc-shadow';
+	} elseif($day > days_in_month($month, $year)) {
+		$day -= days_in_month($month, $year);
+		$month++;
+		if($month > 12) {
+			$month = 1;
+			$year++;
+		}
+		$date_class .= ' phpc-shadow';
+	} else {
+		$currentday = date('j');
+		$currentmonth = date('n');
+		$currentyear = date('Y');
+
+		// set whether the date is in the past or future/present
+		if($currentyear == $year && $currentmonth == $month
+				&& $currentday == $day) {
+			$date_class .= ' ui-state-highlight';
+		}
+	}
+
+    $click = create_action_url('display_day', $year, $month, $day);
+	$date_tag = tag('div', attributes("class=\"phpc-date $date_class\"",
+				"onclick=\"window.location.href='$click'\""),
+			create_action_link_with_date($day,
+				'display_day', $year, $month, $day));
+
+	if($phpc_cal->can_write()) {
+		$date_tag->add(create_action_link_with_date('+',
+					'event_form', $year, $month,
+					$day,
+					array('class="phpc-add"')));
+	}
+
+	$html_day = tag('td', $date_tag);
+
+	$stamp = mktime(0, 0, 0, $month, $day, $year);
+
+	$can_read = $phpc_cal->can_read(); 
+	$key = date('Y-m-d', $stamp);
+	if(!$can_read || !array_key_exists($key, $days_events))
+		return $html_day;
+
+	$results = $days_events[$key];
+	if(empty($results))
+		return $html_day;
+
+	$html_events = tag('ul', attrs('class="phpc-event-list"'));
+	$html_day->add($html_events);
+
+	// Count the number of events
+	foreach($results as $event) {
+		if($event == false) {
+			$event_html = tag('li',
+					create_action_link_with_date(__("View Additional Events"),
+						'display_day', $year, $month,
+						$day,
+						array('class="phpc-date"')));
+			$html_events->add($event_html);
+			break;
+		}
+
+		// TODO - make sure we have permission to read the event
+
+		$subject = $event->get_subject();
+		if($event->get_start_timestamp() >= $stamp)
+			$event_time = $event->get_time_string();
+		else
+			$event_time = '(' . __('continued') . ')';
+		if(!empty($event_time))
+			$title = "$event_time - $subject";
+		else
+			$title = $subject;
+
+		$style = "";
+		if(!empty($event->text_color))
+			$style .= "color: {$event->get_text_color()} !important;";
+		if(!empty($event->bg_color))
+			$style .= "background: ".$event->get_bg_color()
+				." !important;";
+
+		$event_html = tag('li',
+				create_occurrence_link($title, "display_event",
+					$event->get_oid(),
+					array("style=\"$style\"")));
+
+		$html_events->add($event_html);
+	}
+
+	return $html_day;
+}
+
diff --git a/src/display_week.php b/src/display_week.php
new file mode 100644
index 0000000..719c9a5
--- /dev/null
+++ b/src/display_week.php
@@ -0,0 +1,273 @@
+<?php
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+   This file has the functions for the main displays of the calendar
+*/
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+// Full display for a month
+/**
+ * @return Html
+ */
+function display_week()
+{
+	global $vars;
+
+	$heading_html = tag('tr');
+	$heading_html->add(tag('th', __p('Week', 'W')));
+	for($i = 0; $i < 7; $i++) {
+		$d = ($i + day_of_week_start()) % 7;
+		$heading_html->add(tag('th', day_name($d)));
+	}
+
+	if(!isset($vars['week']) || !isset($vars['year']))
+		soft_error(__('Invalid date.'));
+
+	$week_of_year = intval($vars['week']);
+	$year = intval($vars['year']);
+
+    $week_of_first = week_of_year(1, 1, $year);
+    if($week_of_first != 1) {
+        $offset = 0;
+    } else {
+        $offset = -1;
+    }
+	$day_of_year = 1 + ($week_of_year + $offset) * 7 - day_of_week(1, 1, $year);
+	$from_stamp = mktime(0, 0, 0, 1, $day_of_year, $year);
+	$start_month = date("n", $from_stamp);
+	$start_year = date("Y", $from_stamp);
+
+	$last_day = $day_of_year + 6;
+	$to_stamp = mktime(23, 59, 59, 1, $last_day, $year);
+	$end_month = date("n", $to_stamp);
+	$end_year = date("Y", $to_stamp);
+
+	$heading = month_name($start_month) .  " $start_year";
+	if($end_month != $start_month)
+		$heading .= " - " . month_name($end_month) . " $end_year";
+
+	return tag('',
+			tag("div", attributes('id="phpc-summary-view"'), 
+				tag("div", attributes('id="phpc-summary-head"'),
+					tag("div", attributes('id="phpc-summary-title"'), ''),
+					tag("div", attributes('id="phpc-summary-author"'), ''),
+					tag("div", attributes('id="phpc-summary-category"'), ''),
+					tag("div", attributes('id="phpc-summary-time"'), '')),
+				tag("div", attributes('id="phpc-summary-body"'), '')),
+                        tag('table',
+				attributes('class="phpc-main phpc-calendar"'),
+                                tag('caption', $heading),
+                                tag('colgroup',
+					tag('col', attributes('class="phpc-week"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"')),
+					tag('col', attributes('class="phpc-day"'))
+				   ),
+				tag('thead', $heading_html),
+                            create_week($week_of_year, $from_stamp, $to_stamp)));
+}
+
+// creates a display for a particular week to be embedded in a month table
+/**
+ * @param int $week_of_year
+ * @param int $from_stamp
+ * @param int $to_stamp
+ * @return Html
+ */
+function create_week($week_of_year, $from_stamp, $to_stamp)
+{
+	global $phpcdb, $phpcid, $phpc_cal;
+
+	$start_day = date("j", $from_stamp);
+	$start_month = date("n", $from_stamp);
+	$start_year = date("Y", $from_stamp);
+
+	$max_events = $phpc_cal->events_max;
+
+	$results = $phpcdb->get_occurrences_by_date_range($phpcid, $from_stamp, $to_stamp);
+	$days_events = array();
+
+	while($row = $results->fetch_assoc()) {
+		$event = new PhpcOccurrence($row);
+
+		if(!$event->can_read())
+			continue;
+
+		$end_stamp = mktime(0, 0, 0, $event->get_end_month(),
+				$event->get_end_day(), $event->get_end_year());
+
+		$start_stamp = mktime(0, 0, 0, $event->get_start_month(),
+				$event->get_start_day(),
+				$event->get_start_year());
+
+		$diff = $from_stamp - $start_stamp;
+		if($diff > 0)
+			$add_days = floor($diff / 86400);
+		else
+			$add_days = 0;
+
+		// put the event in every day until the end
+		for(; ; $add_days++) {
+			$stamp = mktime(0, 0, 0, $event->get_start_month(),
+					$event->get_start_day() + $add_days,
+					$event->get_start_year());
+
+			if($stamp > $end_stamp || $stamp > $to_stamp)
+				break;
+
+			$key = date('Y-m-d', $stamp);
+			if(!isset($days_events[$key]))
+				$days_events[$key] = array();
+			if(sizeof($days_events[$key]) == $max_events)
+				$days_events[$key][] = false;
+			if(sizeof($days_events[$key]) > $max_events)
+				continue;
+			$days_events[$key][] = $event;
+		}
+	}
+	$week_table = tag('tbody');
+	$week_html = tag('tr', tag('th', $week_of_year));
+	$week_table->add($week_html);
+		
+	for($day_of_week = 0; $day_of_week < 7; $day_of_week++) {
+		$day = $start_day + $day_of_week;
+		$week_html->add(create_day($start_month, $day, $start_year,
+					$days_events));
+	}
+
+	return $week_table;
+}
+
+// displays the day of the week and the following days of the week
+/**
+ * @param int $month
+ * @param int $day
+ * @param int $year
+ * @param PhpcOccurrence[][] $days_events
+ * @return Html
+ */
+function create_day($month, $day, $year, $days_events)
+{
+    global $phpc_cal;
+
+	$date_class = 'ui-state-default';
+	if($day <= 0) {
+		$month--;
+		if($month < 1) {
+			$month = 12;
+			$year--;
+		}
+		$day += days_in_month($month, $year);
+		$date_class .= ' phpc-shadow';
+	} elseif($day > days_in_month($month, $year)) {
+		$day -= days_in_month($month, $year);
+		$month++;
+		if($month > 12) {
+			$month = 1;
+			$year++;
+		}
+	} else {
+		$currentday = date('j');
+		$currentmonth = date('n');
+		$currentyear = date('Y');
+
+		// set whether the date is in the past or future/present
+		if($currentyear == $year && $currentmonth == $month
+				&& $currentday == $day) {
+			$date_class .= ' ui-state-highlight';
+		}
+	}
+
+    $click = create_action_url('display_day', $year, $month, $day);
+	$date_tag = tag('div', attributes("class=\"phpc-date $date_class\"",
+				"onclick=\"window.location.href='$click'\""),
+			create_action_link_with_date($day,
+				'display_day', $year, $month, $day));
+
+	if($phpc_cal->can_write()) {
+		$date_tag->add(create_action_link_with_date('+',
+					'event_form', $year, $month,
+					$day,
+					array('class="phpc-add"')));
+	}
+
+	$html_day = tag('td', $date_tag);
+
+	$stamp = mktime(0, 0, 0, $month, $day, $year);
+
+	$can_read = $phpc_cal->can_read(); 
+	$key = date('Y-m-d', $stamp);
+	if(!$can_read || !array_key_exists($key, $days_events))
+		return $html_day;
+
+	$results = $days_events[$key];
+	if(empty($results))
+		return $html_day;
+
+	$html_events = tag('ul', attrs('class="phpc-event-list"'));
+	$html_day->add($html_events);
+
+	// Count the number of events
+	foreach($results as $event) {
+		if($event == false) {
+			$event_html = tag('li',
+					create_action_link_with_date(__("View Additional Events"),
+						'display_day', $year, $month,
+						$day,
+						array('class="phpc-date"')));
+			$html_events->add($event_html);
+			break;
+		}
+
+		// TODO - make sure we have permission to read the event
+
+		$subject = $event->get_subject();
+		if($event->get_start_timestamp() >= $stamp)
+			$event_time = $event->get_time_string();
+		else
+			$event_time = '(' . __('continued') . ')';
+		if(!empty($event_time))
+			$title = "$event_time - $subject";
+		else
+			$title = $subject;
+
+		$style = "";
+		if(!empty($event->text_color))
+			$style .= "color: {$event->get_text_color()} !important;";
+		if(!empty($event->bg_color))
+			$style .= "background: ".$event->get_bg_color()
+				." !important;";
+
+		$event_html = tag('li',
+				create_occurrence_link($title, "display_event",
+					$event->get_oid(),
+					array("style=\"$style\"")));
+
+		$html_events->add($event_html);
+	}
+
+	return $html_day;
+}
+
diff --git a/src/embed.php b/src/embed.php
new file mode 100644
index 0000000..4e3f86b
--- /dev/null
+++ b/src/embed.php
@@ -0,0 +1,36 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Invalid setup");
+}
+
+try {
+	require_once("$phpc_includes_path/calendar.php");
+	require_once("$phpc_includes_path/setup.php");
+
+	$calendar_title = $phpc_cal->get_title();
+	$content = display_phpc();
+} catch(Exception $e) {
+	$calendar_title = $e->getMessage();
+	$content = tag('div', attributes('class="php-calendar"'),
+			$e->getMessage());
+}
+$head = tag('div', attrs('class="phpc-head"'),
+			get_header_tags("static"));
+echo $head->toString();
+echo $content->toString();
diff --git a/src/embed_setup.php b/src/embed_setup.php
new file mode 100644
index 0000000..178b4df
--- /dev/null
+++ b/src/embed_setup.php
@@ -0,0 +1,73 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * The following variables are intended to be modified to fit your
+ * setup.
+ */
+
+if (!defined('IN_PHPC'))
+	define('IN_PHPC', true);
+
+/*
+ * If you want different scripts with different default calendars, you can
+ * copy this script and modify $default_calendar_id to contain the CID of
+ * the calendar you want to be the default
+ */
+$default_calendar_id = 1;
+
+/*
+ * $phpc_root_path gives the location of the base calendar install.
+ * if you move this file to a new location, modify $phpc_root_path to point
+ * to the location where the support files for the callendar are located.
+ */
+$phpc_includes_path = dirname(__FILE__);
+$phpc_root_path = dirname($phpc_includes_path);
+$phpc_config_file = "$phpc_root_path/config.php";
+$phpc_locale_path = "$phpc_root_path/locale";
+require_once "$phpc_includes_path/util.php";
+$phpc_script = phpc_html_escape($_SERVER['PHP_SELF']);
+
+$phpc_server = $_SERVER['SERVER_NAME'];
+if(!empty($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"] != 80)
+	$phpc_server .= ":{$_SERVER["SERVER_PORT"]}";
+
+// Protcol ex. http or https
+if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off'
+		|| $_SERVER['SERVER_PORT'] == 443
+		|| isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
+		|| isset($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
+    $phpc_proto = "https";
+} else {
+    $phpc_proto = "http";
+}
+
+$phpc_home_url="$phpc_proto://$phpc_server$phpc_script";
+$phpc_url = $phpc_home_url
+		. (empty($_SERVER['QUERY_STRING']) ? ''
+		   : '?' . $_SERVER['QUERY_STRING']);
+
+// Remove this line if you must
+ini_set('arg_separator.output', '&amp;');
+
+// Buffer the output until the script ends. Remove this if you must, but it may
+//   break things in unexpected ways.
+ob_start();
+
+
+require_once("$phpc_includes_path/setup.php");
+
diff --git a/src/event_delete.php b/src/event_delete.php
new file mode 100644
index 0000000..6f17849
--- /dev/null
+++ b/src/event_delete.php
@@ -0,0 +1,104 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function event_delete()
+{
+	global $vars, $phpcdb, $phpc_script;
+
+	$html = tag('div', attributes('class="phpc-container"'));
+
+	if(empty($vars["eid"])) {
+		$message = __('No event selected.');
+		$html->add(tag('div', $message));
+		return $html;
+	}
+
+	if (is_array($vars["eid"])) {
+		$eids = $vars["eid"];
+	} else {
+		$eids = array($vars["eid"]);
+	}
+
+	if (empty($vars["confirm"])) {
+		$list = tag('ul');
+		foreach ($eids as $eid) {
+			$event = new PhpcEvent($phpcdb->get_event_by_eid($eid));
+			$list->add(tag('li', "$eid: ".$event->get_subject()));
+		}
+		$html->add(tag('div', __('Confirm you want to delete:')));
+		$html->add($list);
+		$html->add(" [ ", create_action_link(__('Confirm'),
+					"event_delete", array("eid" => $eids,
+						"confirm" => "1")), " ] ");
+		$html->add(" [ ", create_action_link(__('Deny'),
+					"display_month"), " ] ");
+		return $html;
+	}
+
+	$removed_events = array();
+	$unremoved_events = array();
+	$permission_denied = array();
+
+	foreach($eids as $eid) {
+		$event = new PhpcEvent($phpcdb->get_event_by_eid($eid));
+		if(!$event->can_modify()) {
+			$permission_denied[] = $eid;
+		} else {
+			if($phpcdb->delete_event($eid)) {
+				$removed_events[] = $eid;
+			} else {
+				$unremoved_events[] = $eid;
+			}
+		}
+	}
+
+	if(sizeof($removed_events) > 0) {
+		if(sizeof($removed_events) == 1)
+			$text = __("Removed event");
+		else
+			$text = __("Removed events");
+		$text .= ': ' . implode(', ', $removed_events);
+		$html->add(tag('div', $text));
+	}
+
+	if(sizeof($unremoved_events) > 0) {
+		if(sizeof($unremoved_events) == 1)
+			$text = __("Could not remove event");
+		else
+			$text = __("Could not remove events");
+		$text .= ': ' . implode(', ', $unremoved_events);
+		$html->add(tag('div', $text));
+	}
+
+	if(sizeof($permission_denied) > 0) {
+		if(sizeof($permission_denied) == 1)
+			$text = __("You do not have permission to remove event");
+		else
+			$text = __("You do not have permission to remove events");
+		$text .= ': ' . implode(', ', $permission_denied);
+		$html->add(tag('div', $text));
+	}
+	
+        return message_redirect($html, $phpc_script);
+}
diff --git a/src/event_form.php b/src/event_form.php
new file mode 100644
index 0000000..4cf0f06
--- /dev/null
+++ b/src/event_form.php
@@ -0,0 +1,454 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+	die("Hacking attempt");
+}
+
+require_once("$phpc_includes_path/form.php");
+
+/**
+ * @return Html
+ */
+function event_form() {
+	global $vars;
+
+	if(empty($vars["submit_form"]))
+		return display_form();
+
+	// else
+	return process_form();
+}
+
+/**
+ * @return Html
+ */
+function display_form() {
+    /** @var PhpcUser $phpc_user */
+	global $phpc_script, $year, $month, $day, $vars, $phpcdb, $phpc_cal,
+	       $phpc_user, $phpc_token;
+
+	$hour24 = $phpc_cal->hours_24;
+	$date_format = $phpc_cal->date_format;
+	$form = new Form($phpc_script, __('Event Form'));
+	$form->add_part(new FormFreeQuestion('subject', __('Subject'),
+				false, $phpc_cal->subject_max, true));
+	$form->add_part(new FormLongFreeQuestion('description',
+				__('Description')));
+
+	$when_group = new FormGroup(__('When'), 'phpc-when');
+	if(isset($vars['eid'])) {
+		$when_group->add_part(new FormCheckBoxQuestion('phpc-modify',
+					false,
+					__('Change the event date and time')));
+	}
+	$when_group->add_part(new FormDateTimeQuestion('start',
+				__('From'), $hour24, $date_format));
+	$when_group->add_part(new FormDateTimeQuestion('end', __('To'),
+				$hour24, $date_format));
+
+	$time_type = new FormDropDownQuestion('time-type', __('Time Type'));
+	$time_type->add_option('normal', __('Normal'));
+	$time_type->add_option('full', __('Full Day'));
+	$time_type->add_option('tba', __('To Be Announced'));
+
+	$when_group->add_part($time_type);
+
+	$form->add_part($when_group);
+
+	$repeat_type = new FormDropdownQuestion('repeats', __('Repeats'),
+			array(), true, 'never');
+	$repeat_type->add_option('never', __('Never'));
+	$daily_group = new FormGroup();
+	$repeat_type->add_option('daily', __('Daily'), NULL, $daily_group);
+	$weekly_group = new FormGroup();
+	$repeat_type->add_option('weekly', __('Weekly'), NULL, $weekly_group);
+	$monthly_group = new FormGroup();
+	$repeat_type->add_option('monthly', __('Monthly'), NULL, $monthly_group);
+	$yearly_group = new FormGroup();
+	$repeat_type->add_option('yearly', __('Yearly'), NULL, $yearly_group);
+
+	$every_day = new FormDropdownQuestion('every-day', __('Every'),
+			__('Repeat every how many days?'));
+	$every_day->add_options(create_sequence(1, 30));
+	$daily_group->add_part($every_day);
+	$daily_group->add_part(new FormDateQuestion('daily-until', __('Until'),
+				$date_format));
+
+	$every_week = new FormDropdownQuestion('every-week', __('Every'),
+			__('Repeat every how many weeks?'));
+	$every_week->add_options(create_sequence(1, 30));
+	$weekly_group->add_part($every_week);
+	$weekly_group->add_part(new FormDateQuestion('weekly-until',
+				__('Until'), $date_format));
+
+	$every_month = new FormDropdownQuestion('every-month', __('Every'),
+			__('Repeat every how many months?'));
+	$every_month->add_options(create_sequence(1, 30));
+	$monthly_group->add_part($every_month);
+	$monthly_group->add_part(new FormDateQuestion('monthly-until',
+				__('Until'), $date_format));
+
+	$every_year = new FormDropdownQuestion('every-year', __('Every'),
+			__('Repeat every how many years?'));
+	$every_year->add_options(create_sequence(1, 30));
+	$yearly_group->add_part($every_year);
+	$yearly_group->add_part(new FormDateQuestion('yearly-until',
+				__('Until'), $date_format));
+
+	$when_group->add_part($repeat_type);
+
+	if($phpc_cal->can_create_readonly())
+		$form->add_part(new FormCheckBoxQuestion('readonly', false,
+					__('Read-only')));
+
+	$categories = new FormDropdownQuestion('catid', __('Category'));
+	$categories->add_option('', __('None'));
+	$have_categories = false;
+	foreach($phpc_cal->get_visible_categories($phpc_user->get_uid()) as $category) {
+		$categories->add_option($category['catid'], $category['name']);
+		$have_categories = true;
+	}
+	if($have_categories)
+		$form->add_part($categories);
+
+	if(isset($vars['phpcid']))
+		$form->add_hidden('phpcid', $vars['phpcid']);
+
+	$form->add_hidden('phpc_token', $phpc_token);
+	$form->add_hidden('action', 'event_form');
+	$form->add_hidden('submit_form', 'submit_form');
+
+	$form->add_part(new FormSubmitButton(__("Submit Event")));
+
+	if(isset($vars['eid'])) {
+		$form->add_hidden('eid', $vars['eid']);
+		$occs = $phpcdb->get_occurrences_by_eid($vars['eid']);
+		$event = $occs[0];
+
+		$defaults = array(
+				'subject' => $event->get_raw_subject(),
+				'description' => $event->get_raw_desc(),
+				'start-date' => $event->get_short_start_date(),
+				'end-date' => $event->get_short_end_date(),
+				'start-time' => $event->get_start_time(),
+				'end-time' => $event->get_end_time(),
+				'readonly' => $event->is_readonly(),
+				);
+
+		if(!empty($event->catid))
+			$defaults['catid'] = $event->catid;
+
+		switch($event->get_time_type()) {
+			case 0:
+				$defaults['time-type'] = 'normal';
+				break;
+			case 1:
+				$defaults['time-type'] = 'full';
+				break;
+			case 2:
+				$defaults['time-type'] = 'tba';
+				break;
+		}
+
+		add_repeat_defaults($occs, $defaults);
+
+	} else {
+		$hour24 = $phpc_cal->hours_24;
+		$datefmt = $phpc_cal->date_format;
+		$date_string = format_short_date_string($year, $month, $day,
+				$datefmt);
+		$defaults = array(
+				'start-date' => $date_string,
+				'end-date' => $date_string,
+				'start-time' => format_time_string(17, 0, $hour24),
+				'end-time' => format_time_string(18, 0, $hour24),
+				'daily-until-date' => $date_string,
+				'weekly-until-date' => $date_string,
+				'monthly-until-date' => $date_string,
+				'yearly-until-date' => $date_string,
+				);
+	}
+	return $form->get_form($defaults);
+}
+
+/**
+ * @param PhpcOccurrence[] $occs
+ * @param $defaults
+ */
+function add_repeat_defaults($occs, &$defaults) {
+	// TODO: Handle unevenly spaced occurrences
+
+	$defaults['repeats'] = 'never';
+
+	if(sizeof($occs) < 2)
+		return;
+
+	$event = $occs[0];
+	$day = $event->get_start_day();
+	$month = $event->get_start_month();
+	$year = $event->get_start_year();
+
+    $cur_year = $year;
+    $cur_month = $month;
+    $cur_day = $day;
+
+	// Test if they repeat every N years
+	$nyears = $occs[1]->get_start_year() - $event->get_start_year();
+	$repeats_yearly = true;
+	$nmonths = ($occs[1]->get_start_year() - $year) * 12
+		+ $occs[1]->get_start_month() - $month;
+	$repeats_monthly = true;
+	$ndays = days_between($event->get_start_ts(), $occs[1]->get_start_ts());
+	$repeats_daily = true;
+
+	for($i = 1; $i < sizeof($occs); $i++) {
+		$cur_occ = $occs[$i];
+		$cur_year = $cur_occ->get_start_year();
+		$cur_month = $cur_occ->get_start_month();
+		$cur_day = $cur_occ->get_start_day();
+
+		// Check year
+		$cur_nyears = $cur_year - $occs[$i - 1]->get_start_year();
+		if($cur_day != $day || $cur_month != $month
+				|| $cur_nyears != $nyears) {
+			$repeats_yearly = false;
+		}
+
+		// Check month
+		$cur_nmonths = ($cur_year - $occs[$i - 1]->get_start_year())
+			* 12 + $cur_month - $occs[$i - 1]->get_start_month();
+		if($cur_day != $day || $cur_nmonths != $nmonths) {
+			$repeats_monthly = false;
+		}
+
+		// Check day
+		$cur_ndays = days_between($occs[$i - 1]->get_start_ts(),
+				$occs[$i]->get_start_ts());
+		if($cur_ndays != $ndays) {
+			$repeats_daily = false;
+		}
+	}
+
+	$defaults['yearly-until-date'] = "$cur_month/$cur_day/$cur_year";
+	$defaults['monthly-until-date'] = "$cur_month/$cur_day/$cur_year";
+	$defaults['weekly-until-date'] = "$cur_month/$cur_day/$cur_year";
+	$defaults['daily-until-date'] = "$cur_month/$cur_day/$cur_year";
+
+	if($repeats_daily) {
+		// repeats weekly
+		if($ndays % 7 == 0) {
+			$defaults['repeats'] = 'weekly';
+			$defaults['every-week'] = $ndays / 7;
+		} else {
+			$defaults['every-week'] = 1;
+
+			// repeats daily
+			$defaults['repeats'] = 'daily';
+			$defaults['every-day'] = $ndays;
+		}
+
+	} else {
+		$defaults['every-day'] = 1;
+		$defaults['every-week'] = 1;
+	}
+
+	if($repeats_monthly) {
+		$defaults['repeats'] = 'monthly';
+		$defaults['every-month'] = $nmonths;
+	} else {
+		$defaults['every-month'] = 1;
+	}
+
+	if($repeats_yearly) {
+		$defaults['repeats'] = 'yearly';
+		$defaults['every-year'] = $nyears;
+	} else {
+		$defaults['every-year'] = 1;
+	}
+}
+
+/**
+ * @return Html
+ */
+function process_form()
+{
+    /** @var PhpcUser $phpc_user */
+	global $vars, $phpcdb, $phpc_cal, $phpcid, $phpc_script, $phpc_user;
+
+	// When modifying events, this is the value of the checkbox that
+	//   determines if the date should change
+	$modify_occur = !isset($vars['eid']) || !empty($vars['phpc-modify']);
+
+	if($modify_occur) {
+		$start_ts = get_timestamp("start");
+		$end_ts = get_timestamp("end");
+
+		switch($vars["time-type"]) {
+			case 'normal':
+				$time_type = 0;
+				break;
+
+			case 'full':
+				$time_type = 1;
+				break;
+
+			case 'tba':
+				$time_type = 2;
+				break;
+
+			default:
+				soft_error(__("Unrecognized Time Type."));
+		}
+
+		$duration = $end_ts - $start_ts;
+		if($duration < 0) {
+			message(__("An event cannot have an end earlier than its start."));
+			return display_form();
+		}
+	}
+
+	verify_token();
+
+	if(!$phpc_cal->can_write())
+		permission_error(__('You do not have permission to write to this calendar.'));
+
+	if($phpc_cal->can_create_readonly() && !empty($vars['readonly']))
+		$readonly = true;
+	else
+		$readonly = false;
+
+	$catid = empty($vars['catid']) ? false : $vars['catid'];
+
+	if(!isset($vars['eid'])) {
+		$modify = false;
+		$eid = $phpcdb->create_event($phpcid, $phpc_user->get_uid(),
+				$vars["subject"], $vars["description"],
+				$readonly, $catid);
+	} else {
+		$modify = true;
+		$eid = $vars['eid'];
+		$phpcdb->modify_event($eid, $vars['subject'],
+				$vars['description'], $readonly, $catid);
+		if($modify_occur)
+			$phpcdb->delete_occurrences($eid);
+	}
+
+	if($modify_occur) {
+        $phpcdb->create_occurrence($eid, $time_type, $start_ts, $end_ts);
+
+		$occurrences = 1;
+		switch($vars["repeats"]) {
+			case "never":
+				break;
+
+			case 'daily':
+			if(!isset($vars["every-day"]))
+				soft_error(__("Required field \"every-day\" is not set."));
+			$ndays = $vars["every-day"];
+			if($ndays < 1)
+				soft_error(__("every-day must be greater than 1"));
+
+			$daily_until = get_timestamp("daily-until");
+			while($occurrences <= 730) {
+				$start_ts = add_days($start_ts, $ndays);
+				$end_ts = add_days($end_ts, $ndays);
+				if(days_between($start_ts, $daily_until) < 0)
+					break;
+				$phpcdb->create_occurrence($eid, $time_type,
+						$start_ts, $end_ts);
+				$occurrences++;
+			}
+			break;
+
+			case 'weekly':
+			if(!isset($vars["every-week"]))
+				soft_error(__("Required field \"every-week\" is not set."));
+			if($vars["every-week"] < 1)
+				soft_error(__("every-week must be greater than 1"));
+			$ndays = $vars["every-week"] * 7;
+
+			$weekly_until = get_timestamp("weekly-until");
+			while($occurrences <= 730) {
+				$start_ts = add_days($start_ts, $ndays);
+				$end_ts = add_days($end_ts, $ndays);
+				if(days_between($start_ts, $weekly_until) < 0)
+					break;
+				$phpcdb->create_occurrence($eid, $time_type,
+						$start_ts, $end_ts);
+				$occurrences++;
+			}
+			break;
+
+			case 'monthly':
+			if(!isset($vars["every-month"]))
+				soft_error(__("Required field \"every-month\" is not set."));
+			if($vars["every-month"] < 1)
+				soft_error(__("every-month must be greater than 1"));
+			$nmonths = $vars["every-month"];
+
+			$monthly_until = get_timestamp("monthly-until");
+			while($occurrences <= 730) {
+				$start_ts = add_months($start_ts, $nmonths);
+				$end_ts = add_months($end_ts, $nmonths);
+				if(days_between($start_ts, $monthly_until) < 0)
+					break;
+				$phpcdb->create_occurrence($eid, $time_type,
+						$start_ts, $end_ts);
+				$occurrences++;
+			}
+			break;
+
+			case 'yearly':
+			if(!isset($vars["every-year"]))
+				soft_error(__("Required field \"every-year\" is not set."));
+			if($vars["every-year"] < 1)
+				soft_error(__("every-month must be greater than 1"));
+			$nyears = $vars["every-year"];
+
+			$yearly_until = get_timestamp("yearly-until");
+			while($occurrences <= 730) {
+				$start_ts = add_years($start_ts, $nyears);
+				$end_ts = add_years($end_ts, $nyears);
+				if(days_between($start_ts, $yearly_until) < 0)
+					break;
+				$phpcdb->create_occurrence($eid, $time_type,
+						$start_ts, $end_ts);
+				$occurrences++;
+			}
+			break;
+
+			default:
+			soft_error(__("Invalid event type."));
+		}
+	}
+
+	if($eid != 0) {
+		if($modify)
+			$message = __("Modified event: ");
+		else
+			$message = __("Created event: ");
+
+		return message_redirect(tag('', $message,
+					create_event_link($eid, 'display_event',
+						$eid)),
+				"$phpc_script?action=display_event&phpcid=$phpcid&eid=$eid");
+	} else {
+		return message_redirect(__('Error submitting event.'),
+				"$phpc_script?action=display_month&phpcid=$phpcid");
+	}
+}
diff --git a/src/form.php b/src/form.php
new file mode 100644
index 0000000..ade5161
--- /dev/null
+++ b/src/form.php
@@ -0,0 +1,622 @@
+<?php
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* this file is a generic form class
+ * after an object is added to any part, you can modify that object without
+ * affecting the form
+ * Requires gettext and jqueryui
+ */
+
+/*
+if(!defined('IN_PHPC')) {
+	   die("Hacking attempt");
+}
+*/
+
+require_once('html.php');
+
+/* This class is the base of either a question or a group
+ */
+
+abstract class FormPart
+{
+    var $class = "form-part";
+
+    /**
+     * @param FormPart $parent
+     * @param array $defaults
+     * @return Html
+     */
+    abstract function get_html($parent, $defaults = array());
+
+    /**
+     * @param FormPart $parent
+     * @param array $defaults
+     * @return Html
+     */
+    abstract protected function get_specific_html($parent, $defaults);
+}
+
+/* this class is to group multiple questions together
+ */
+
+class FormGroup extends FormPart
+{
+    /** @var FormPart[] */
+    var $list = array();
+    var $title = false;
+
+    function __construct($title = false, $class = false)
+    {
+        $this->title = $title;
+        $this->class .= " form-group";
+        if ($class !== false)
+            $this->class = " $class";
+    }
+
+    /* add a category or question */
+    function add_part(FormPart $item)
+    {
+        $this->list[] = $item;
+    }
+
+    function get_html($parent, $defaults = array())
+    {
+        // If a FormGroup is embedded in another FormGroup we want to
+        //   start a new table. If it isn't, we assume that our parent
+        //   (radio or dropdown) has already created the table for us.
+        if (!is_a($parent, 'FormGroup'))
+            return $this->get_specific_html($parent, $defaults);
+
+        $tag = tag('tr', attrs("class=\"{$this->class}\""));
+        $cell = tag('td');
+
+        if ($this->title !== false)
+            $tag->add(tag('th', $this->title));
+        else
+            $cell->add(attrs("colspan=\"2\""));
+
+        $cell->add(tag('table', $this->get_specific_html($parent,
+            $defaults)));
+        $tag->add($cell);
+
+        return $tag;
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+        $results = array();
+        foreach ($this->list as $child) {
+            $results[] = $child->get_html($this, $defaults);
+        }
+        return $results;
+    }
+}
+
+/* this is the base class for all questions
+ */
+
+abstract class FormQuestion extends FormPart
+{
+    /** @var string|bool */
+    var $qid;
+    /** @var string|bool */
+    var $subject;
+    /** @var string|bool */
+    var $description;
+
+    /**
+     * FormQuestion constructor.
+     * @param string $qid
+     * @param string $subject
+     * @param string|bool $description
+     */
+    function __construct($qid, $subject, $description)
+    {
+        $this->class .= " form-question";
+        $this->qid = $qid;
+        $this->subject = $subject;
+        $this->description = $description;
+    }
+
+    function get_html($parent, $defaults = array())
+    {
+        $tag = tag('tr', attrs("class=\"{$this->class}\""));
+        $cell = tag('td');
+
+        if ($this->subject !== false)
+            $tag->add(tag('th', tag('label', attributes("for=\"{$this->qid}\""), $this->subject)));
+        else
+            $cell->add(attrs("colspan=\"2\""));
+
+        if ($this->description !== false)
+            $cell->add(tag('label', attrs("for=\"{$this->qid}\"", 'class="form-question-description"'),
+                $this->description));
+
+        $cell->add($this->get_specific_html($parent, $defaults));
+        $tag->add($cell);
+
+        return $tag;
+    }
+}
+
+/* this class is the base for all simple types of questions
+ */
+
+abstract class FormAtomicQuestion extends FormQuestion
+{
+    /**
+     * FormAtomicQuestion constructor.
+     * @param string $qid
+     * @param string $subject
+     * @param string $description
+     */
+    function __construct($qid, $subject, $description)
+    {
+        parent::__construct($qid, $subject, $description);
+        $this->class .= " form-atomic-question";
+    }
+}
+
+/* This class is for free response questions with responses that are a few
+ * sentences long at most
+ */
+
+class FormFreeQuestion extends FormAtomicQuestion
+{
+    var $maxlen;
+    var $type;
+
+    function __construct($qid, $subject, $description = false, $maxlen = false)
+    {
+        parent::__construct($qid, $subject, $description);
+        $this->maxlen = $maxlen;
+        $this->class .= " form-free-question";
+        $this->type = "text";
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+        $attrs = attrs("name=\"{$this->qid}\"", "id=\"{$this->qid}\"",
+            "type=\"$this->type\"");
+        if (!empty($defaults[$this->qid])) {
+            $attrs->add("value=\"{$defaults[$this->qid]}\"");
+        }
+        if ($this->maxlen !== false) {
+            $attrs->add("maxlength=\"{$this->maxlen}\"");
+            $size = min(50, $this->maxlen);
+            $attrs->add("size=\"$size\"");
+        }
+
+        return tag('input', $attrs);
+    }
+
+}
+
+/* this class is for longer free reponse questions
+ */
+
+class FormLongFreeQuestion extends FormAtomicQuestion
+{
+    var $rows;
+    var $cols;
+
+    function __construct($qid, $subject, $description = false, $rows = 8, $cols = 80)
+    {
+        parent::__construct($qid, $subject, $description);
+        $this->rows = $rows;
+        $this->cols = $cols;
+        $this->class .= " form-long-free-question";
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+        if (isset($defaults[$this->qid]))
+            $text = $defaults[$this->qid];
+        else
+            $text = '';
+
+        $tag = tag('textarea', attrs("rows=\"{$this->rows}\"",
+            "name=\"{$this->qid}\"",
+	    "id=\"{$this->qid}\"",
+            "cols=\"{$this->cols}\""), $text);
+        return tag('div', attrs("class=\"form-textarea\""), $tag);
+    }
+}
+
+function form_date_input($qid, $defaults, $dateFormat)
+{
+    $date_attrs = attrs('type="text"', 'class="form-date"',
+        "name=\"$qid-date\"", "id=\"$qid-date\"");
+    if (isset($defaults["$qid-date"]))
+        $date_attrs->add("value=\"{$defaults["$qid-date"]}\"");
+    return array(tag('input', $date_attrs),
+        tag('script', attrs('type="text/javascript"'),
+            "\$('#$qid-date').datepicker({dateFormat: \"$dateFormat\", firstDay: " . day_of_week_start() . " });"));
+    /**** */
+}
+
+/* this class is for date input
+ */
+
+class FormDateQuestion extends FormAtomicQuestion
+{
+    var $date_format;
+
+    function __construct($qid, $subject, $date_format, $description = false)
+    {
+        parent::__construct($qid, $subject, $description);
+        $this->class .= " form-date-question";
+        $this->date_format = $date_format;
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+        switch ($this->date_format) {
+            case 0: // Month Day Year
+                $dateFormat = "mm/dd/yy";
+                $date_string = "MM/DD/YYYY";
+                break;
+            case 1: // Year Month Day
+                $dateFormat = "yy-mm-dd";
+                $date_string = "YYYY-MM-DD";
+                break;
+            case 2: // Day Month Year
+                $dateFormat = "dd-mm-yy";
+                $date_string = "DD-MM-YYYY";
+                break;
+            default:
+                soft_error("Unrecognized date format.");
+        }
+
+        return tag('div', attrs("class=\"{$this->class}\""),
+            tag('label', attrs("for=\"{$this->qid}-date\""), __("Date") . " ($date_string): "),
+            form_date_input($this->qid, $defaults,
+                $dateFormat));
+    }
+}
+
+function form_time_input($qid, $defaults, $hour24)
+{
+    $showPeriod = $hour24 ? "false" : "true";
+    $time_attrs = attrs('type="text"', 'class="form-time"',
+        "name=\"$qid-time\"", "id=\"$qid-time\"");
+    if (isset($defaults["$qid-time"]))
+        $time_attrs->add("value=\"{$defaults["$qid-time"]}\"");
+
+    return array(tag('input', $time_attrs),
+        tag('script', attrs('type="text/javascript"'),
+            "\$('#$qid-time').timepicker({showPeriod: $showPeriod, showLeadingZero: false });"));
+}
+
+/* this class is for time input
+ */
+
+class FormTimeQuestion extends FormAtomicQuestion
+{
+    var $hour24;
+
+    function __construct($qid, $subject, $hour24, $description = false)
+    {
+        parent::__construct($qid, $subject, $description);
+        $this->class .= " form-time-question";
+        $this->hour24 = $hour24;
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+        return tag('div', attrs("class=\"{$this->class}\""),
+            form_time_input($this->qid, $defaults, $this->hour24));
+    }
+}
+
+/* this class is for date input
+ */
+
+class FormDateTimeQuestion extends FormAtomicQuestion
+{
+    var $hour24;
+    var $date_format;
+
+    function __construct($qid, $subject, $hour24, $date_format, $description = false)
+    {
+        parent::__construct($qid, $subject, $description);
+        $this->class .= " form-date-time-question";
+        $this->hour24 = $hour24;
+        $this->date_format = $date_format;
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+        switch ($this->date_format) {
+            case 0: // Month Day Year
+                $dateFormat = "mm/dd/yy";
+                $date_string = "MM/DD/YYYY";
+                break;
+            case 1: // Year Month Day
+                $dateFormat = "yy-mm-dd";
+                $date_string = "YYYY-MM-DD";
+                break;
+            case 2: // Day Month Year
+                $dateFormat = "dd-mm-yy";
+                $date_string = "DD-MM-YYYY";
+                break;
+            default:
+                soft_error("Unrecognized date format.");
+        }
+
+        return array(tag('label', attrs("for=\"{$this->qid}-date\""), __("Date") . " ($date_string): "),
+            form_date_input($this->qid, $defaults,
+                $dateFormat),
+            " ", tag('label', attrs("for=\"{$this->qid}-time\""), __('Time') . ": "),
+            form_time_input($this->qid, $defaults,
+                $this->hour24));
+    }
+}
+
+/* creates a submit button
+ */
+
+class FormSubmitButton extends FormQuestion
+{
+    var $title;
+
+    function __construct($title = false)
+    {
+        parent::__construct(false, false, false);
+        $this->title = $title;
+        $this->class .= " form-submit";
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+        $attrs = attrs('type="submit"');
+        if ($this->title !== false) {
+            $attrs->add("value=\"{$this->title}\"");
+        }
+        return tag('div', attrs("class=\"{$this->class}\""),
+            tag('input', $attrs));
+    }
+}
+
+/* this class is for questions where depending on the answer you need
+ * to answer more questions
+ */
+
+abstract class FormCompoundQuestion extends FormQuestion
+{
+    /** @var FormPart[] */
+    var $conditionals = array();
+    var $options = array();
+    var $descriptions = array();
+
+    function __construct($qid, $subject, $description)
+    {
+        parent::__construct($qid, $subject, $description);
+    }
+
+    function add_option($key, $title, $description = NULL,
+                        $conditional = NULL)
+    {
+        $this->options[$key] = $title;
+        if ($description !== NULL)
+            $this->descriptions[$key] = $description;
+        if ($conditional !== NULL)
+            $this->conditionals[$key] = $conditional;
+    }
+
+    function add_options($options)
+    {
+        foreach ($options as $key => $title) {
+            $this->add_option($key, $title);
+        }
+    }
+}
+
+/* this class is for questions with a true/false answer
+ */
+
+class FormCheckBoxQuestion extends FormAtomicQuestion
+{
+    var $checkbox_description;
+
+    function __construct($qid, $subject = false, $description = false)
+    {
+        parent::__construct($qid, $subject, false);
+        $this->class .= " form-checkbox-question";
+	$this->checkbox_description = $description;
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+        $attrs = attrs('type="checkbox"',
+            "name=\"{$this->qid}\"",
+            "id=\"{$this->qid}\"",
+            'value="1"',
+            'class="form-checkbox"');
+
+        if (!empty($defaults[$this->qid]))
+            $attrs->add("checked=\"checked\"");
+
+        $tag = tag('div', tag('input', $attrs));
+        if (!empty($this->checkbox_description))
+            $tag->add(tag('label', attrs("for=\"{$this->qid}\"",
+                'class="form-question-description"'),
+                $this->checkbox_description));
+
+        return $tag;
+    }
+}
+
+/* this class is for questions where you need to choose between
+ * multiple things
+ */
+
+class FormDropdownQuestion extends FormCompoundQuestion
+{
+
+    function __construct($qid, $subject = false, $description = false)
+    {
+        parent::__construct($qid, $subject, $description);
+        $this->class .= " form-dropdown-question";
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+        $select = tag('select', attrs("id=\"{$this->qid}\"",
+            "name=\"{$this->qid}\"",
+            'class="form-select"'));
+
+        $children = array();
+        foreach ($this->options as $value => $name) {
+            $attrs = attrs("value=\"$value\"");
+            if (!empty($defaults[$this->qid])
+                && $defaults[$this->qid] == $value
+            )
+                $attrs->add('selected');
+            $select->add(tag('option', $attrs, $name));
+
+            if (!empty($this->conditionals[$value])) {
+                $children[] = tag('table', attrs("id=\"{$this->qid}-{$value}\""),
+                    $this->conditionals[$value]->get_html($this, $defaults));
+            }
+        }
+        if (empty($children))
+            return $select;
+        return array($select, $children);
+    }
+}
+
+/* this class is for questions where you need to choose between
+ * multiple things
+ */
+
+class FormMultipleSelectQuestion extends FormCompoundQuestion
+{
+
+    function __construct($qid, $subject = false, $description = false)
+    {
+        parent::__construct($qid, $subject, $description);
+        $this->class .= " form-multi-select-question";
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+        $select = tag('select', attrs("id=\"{$this->qid}\"",
+            "name=\"{$this->qid}\"",
+            'multiple="multiple"',
+            'class="form-select"'));
+
+        $children = array();
+        foreach ($this->options as $value => $name) {
+            $attrs = attrs("value=\"$value\"");
+            if (!empty($defaults[$this->qid])
+                && $defaults[$this->qid] == $value
+            )
+                $attrs->add('selected');
+            $select->add(tag('option', $attrs, $name));
+
+            if (!empty($this->conditionals[$value])) {
+                $children[] = tag('table', attrs("id=\"{$this->qid}-{$value}\""),
+                    $this->conditionals[$value]->get_html($this, $defaults));
+            }
+        }
+        if (empty($children))
+            return $select;
+        return array($select, $children);
+    }
+}
+
+/* this class is for colorpickerer
+ */
+
+class FormColorPicker extends FormAtomicQuestion
+{
+    function __construct($qid, $subject, $selectedcolor = false, $description = false)
+    {
+        parent::__construct($qid, $subject, $description);
+        $this->class .= " form-color-picker";
+    }
+
+    protected function get_specific_html($parent, $defaults)
+    {
+
+        if (isset($defaults[$this->qid]))
+            $value = $defaults[$this->qid];
+        else
+            $value = '';
+
+        return tag('input', attrs('type="text"',
+            'class="form-color-input"',
+            "name=\"{$this->qid}\"",
+            "value=\"$value\"",
+            "id=\"{$this->qid}\""));
+    }
+}
+
+
+/* this is the main form class
+ */
+
+class Form extends FormGroup
+{
+    var $vars;
+    var $action;
+    var $method;
+    var $hidden = array();
+
+    function __construct($action, $title = false, $method = false)
+    {
+        parent::__construct($title);
+        $this->action = $action;
+        $this->method = $method;
+        $this->class .= " form";
+    }
+
+    function get_form($defaults = array())
+    {
+        $form_attrs = attrs("action=\"{$this->action}\"",
+            'method="POST"');
+        if ($this->method !== false) {
+            $form_attrs->add("method=\"{$this->method}\"");
+        }
+        $table = tag('table', attrs("class=\"{$this->class}\""));
+        foreach ($this->list as $child) {
+            $table->add($child->get_html($this, $defaults));
+        }
+        $form = tag('form', $form_attrs);
+        $hidden_div = tag('div');
+        $have_hidden = false;
+        foreach ($this->hidden as $name => $value) {
+            $have_hidden = true;
+            $hidden_div->add(tag('input', attrs('type="hidden"',
+                "name=\"$name\"",
+                "value=\"$value\"",
+                "id=\"$name\"")));
+        }
+        if ($have_hidden)
+            $form->add($hidden_div);
+
+        $form->add($table);
+        return $form;
+    }
+
+    function add_hidden($name, $value)
+    {
+        $this->hidden[$name] = $value;
+    }
+}
diff --git a/src/globals.php b/src/globals.php
new file mode 100644
index 0000000..7b18a50
--- /dev/null
+++ b/src/globals.php
@@ -0,0 +1,76 @@
+<?php
+/*
+ * Copyright 2010 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+$month_names = array(
+                1 => __('January'),
+                __('February'),
+                __('March'),
+                __('April'),
+                __('May'),
+                __('June'),
+                __('July'),
+                __('August'),
+                __('September'),
+                __('October'),
+                __('November'),
+                __('December'),
+                );
+
+$day_names = array(
+                __('Sunday'),
+		__('Monday'),
+		__('Tuesday'),
+		__('Wednesday'),
+		__('Thursday'),
+		__('Friday'),
+		__('Saturday'),
+                );
+
+$short_month_names = array(
+		1 => __('Jan'),
+		__('Feb'),
+		__('Mar'),
+		__('Apr'),
+		__('May'),
+		__('Jun'),
+		__('Jul'),
+		__('Aug'),
+		__('Sep'),
+		__('Oct'),
+		__('Nov'),
+		__('Dec'),
+                );
+
+// config stuff
+define('PHPC_CHECK', 1);
+define('PHPC_TEXT', 2);
+define('PHPC_DROPDOWN', 3);
+define('PHPC_MULTI_DROPDOWN', 4);
+
+$sort_options = array(
+                'start_date' => __('Start Date'),
+                'subject' => __('Subject')
+                );
+
+$order_options = array(
+                'ASC' => __('Ascending'),
+                'DESC' => __('Descending')
+                );
diff --git a/src/group_delete.php b/src/group_delete.php
new file mode 100644
index 0000000..4253c6b
--- /dev/null
+++ b/src/group_delete.php
@@ -0,0 +1,80 @@
+<?php
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function group_delete()
+{
+	global $vars, $phpcdb, $phpcid, $phpc_script;
+
+	$html = tag('div', attributes('class="phpc-container"'));
+
+	if(empty($vars["gid"])) {
+		return message_redirect(__('No group selected.'),
+				"$phpc_script?action=cadmin&phpcid=$phpcid");
+	}
+
+	if (is_array($vars["gid"])) {
+		$ids = $vars["gid"];
+	} else {
+		$ids = array($vars["gid"]);
+	}
+
+	$groups = array();
+	foreach ($ids as $id) {
+		$groups[] = $phpcdb->get_group($id);
+	}
+
+	if (empty($vars["confirm"])) {
+		$list = tag('ul');
+		foreach ($groups as $group) {
+            $list->add(tag('li', $group['name']));
+		}
+		$html->add(tag('p', __('Confirm you want to delete:')));
+		$html->add($list);
+		$html->add(" [ ", create_action_link(__('Confirm'),
+					"group_delete", array("gid" => $ids,
+						"confirm" => "1")), " ] ");
+		$html->add(" [ ", create_action_link(__('Deny'),
+					"display_month"), " ] ");
+		return $html;
+	}
+
+	foreach($groups as $group) {
+		if((empty($group['cid']) && !is_admin()) ||
+					!$phpcdb->get_calendar($group['cid'])
+					->can_admin()) {
+			$html->add(tag('p', __("You do not have permission to delete group: ") . $group['gid']));
+			continue;
+		}
+
+		if($phpcdb->delete_group($group['gid'])) {
+			$html->add(tag('p', __("Removed group: ")
+					. $group['gid']));
+		} else {        
+			$html->add(tag('p', __("Could not remove group: ")
+						. $group['gid']));
+		}
+	}
+
+        return message_redirect($html, "$phpc_script?action=cadmin&phpcid=$phpcid");
+}
diff --git a/src/group_form.php b/src/group_form.php
new file mode 100644
index 0000000..db09bc7
--- /dev/null
+++ b/src/group_form.php
@@ -0,0 +1,47 @@
+<?php
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+       die("Hacking attempt");
+}
+
+require_once("$phpc_includes_path/form.php");
+
+/**
+ * @return Html
+ */
+function group_form() {
+	global $phpc_script, $vars, $phpcdb, $phpcid;
+
+        $form = new Form($phpc_script, __('Group Form'));
+        $form->add_part(new FormFreeQuestion('name', __('Name'),
+				false, 32, true));
+
+	$form->add_hidden('cid', $phpcid);
+
+	$form->add_hidden('action', 'group_submit');
+	$form->add_part(new FormSubmitButton(__("Submit Group")));
+
+	if(isset($vars['gid'])) {
+		$form->add_hidden('gid', $vars['gid']);
+		$group = $phpcdb->get_group($vars['gid']);
+		$defaults = array('name' => phpc_html_escape($group['name']));
+	} else {
+		$defaults = array();
+	}
+        return $form->get_form($defaults);
+}
diff --git a/src/group_submit.php b/src/group_submit.php
new file mode 100644
index 0000000..6486a5b
--- /dev/null
+++ b/src/group_submit.php
@@ -0,0 +1,69 @@
+<?php
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function group_submit()
+{
+    global $vars, $phpcdb, $phpc_script;
+
+	if(!isset($vars['gid'])) {
+		$modify = false;
+
+		if(!isset($vars['cid'])) {
+			$cid = null;
+			if(!is_admin())
+				permission_error(__('You do not have permission to add a global group.'));
+		} else { 
+			$cid = $vars['cid'];
+			$calendar = $phpcdb->get_calendar($cid);
+			if(!$calendar->can_admin())
+				permission_error(__('You do not have permission to add a group to this calendar.'));
+		}
+		$gid = $phpcdb->create_group($cid, $vars["name"]);
+	} else {
+		$modify = true;
+
+		$gid = $vars['gid'];
+		$group = $phpcdb->get_group($gid);
+
+		if(!(empty($group['cid']) && is_admin() ||
+					$phpcdb->get_calendar($group["cid"])
+					->can_admin()))
+			soft_error(__("You do not have permission to modify this group."));
+			
+		$phpcdb->modify_group($gid, $vars['name']);
+	}
+
+	$page = "$phpc_script?action=cadmin&phpcid=".$vars['cid'];
+
+	if($modify)
+		return message_redirect(__("Modified group: ") . $gid,
+				$page);
+
+	if($gid > 0)
+		return message_redirect(__("Created group: ") . $gid,
+				$page);
+
+	return tag('div', attributes('class="phpc-error"'),
+			__('Error submitting group.'));
+}
diff --git a/src/html.php b/src/html.php
new file mode 100644
index 0000000..18644d5
--- /dev/null
+++ b/src/html.php
@@ -0,0 +1,376 @@
+<?php
+/*
+ * Copyright 2009 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if (!defined('IN_PHPC')) {
+    die("Hacking attempt");
+}
+
+/*
+ * data structure to display XHTML
+ * see function tag() below for usage
+ * Cateat: this class does not understand HTML, it just approximates it.
+ *	do not give an empty tag that needs to be closed without content, it
+ *	won't be closed. ex tag('div') to get a closed tag use tag('div', '')
+ */
+
+class Html
+{
+    /** @var string */
+    var $tagName;
+    /** @var AttributeList */
+    var $attributeList;
+    /** @var array */
+    var $childElements;
+    /** @var array */
+    var $error_func;
+
+    /**
+     * Html constructor.
+     */
+    function __construct()
+    {
+        $this->error_func = array(&$this, 'default_error_handler');
+        $args = func_get_args();
+        $this->tagName = array_shift($args);
+        if ($this->tagName === NULL) $this->tagName = '';
+        $this->attributeList = null;
+        $this->childElements = array();
+
+        $arg = array_shift($args);
+        if ($arg === NULL) return;
+
+        while ($arg !== NULL) {
+            $this->add($arg);
+            $arg = array_shift($args);
+        }
+    }
+
+    function add()
+    {
+        $htmlElements = func_get_args();
+        foreach ($htmlElements as $htmlElement) {
+            if (is_a($htmlElement, 'AttributeList')) {
+                $this->attributeList = $htmlElement;
+            } elseif (is_array($htmlElement)) {
+                foreach ($htmlElement as $element) {
+                    $this->add($element);
+                }
+            } elseif (is_object($htmlElement)
+                && !is_a($htmlElement, 'Html')
+            ) {
+                $this->html_error('Invalid class: '
+                    . get_class($htmlElement));
+            } else {
+                $this->childElements[] = $htmlElement;
+            }
+        }
+    }
+
+    function prepend()
+    {
+        $htmlElements = func_get_args();
+        foreach (array_reverse($htmlElements) as $htmlElement) {
+            if (is_array($htmlElement)) {
+                foreach (array_reverse($htmlElement)
+                         as $element) {
+                    $this->prepend($element);
+                }
+            } elseif (is_object($htmlElement)
+                && !is_a($htmlElement, 'Html')
+            ) {
+                $this->html_error('Invalid class: '
+                    . get_class($htmlElement));
+            } else {
+                array_unshift($this->childElements,
+                    $htmlElement);
+            }
+        }
+    }
+
+    /**
+     * @return string
+     */
+    function toString()
+    {
+        $output = '';
+
+        if ($this->tagName != '') {
+            $output .= "<{$this->tagName}";
+
+            if ($this->attributeList != NULL) {
+                $output .= ' '
+                    . $this->attributeList->toString();
+            }
+
+            if (sizeof($this->childElements) == 0) {
+                $output .= "/>\n";
+                return $output;
+            }
+
+            $output .= ">";
+        }
+
+        foreach ($this->childElements as $child) {
+            if (is_object($child)) {
+                if (is_a($child, 'Html')) {
+                    $output .= $child->toString();
+                } else {
+                    $this->html_error('Invalid class: '
+                        . get_class($child));
+                }
+            } else {
+                $output .= $child;
+            }
+        }
+
+        if ($this->tagName != '') {
+            $output .= "</{$this->tagName}>\n";
+        }
+
+        return $output;
+    }
+
+    /**
+     * @param string $str
+     */
+    function default_error_handler($str)
+    {
+        echo "<html><head><title>Error</title></head>\n"
+            . "<body><h1>Software Error</h1>\n"
+            . "<h2>Message:</h2>\n"
+            . "<pre>$str</pre>\n";
+        echo "<h2>Backtrace</h2>\n";
+        echo "<ol>\n";
+        foreach (debug_backtrace() as $bt) {
+            echo "<li>{$bt['file']}:{$bt['line']} - ";
+            if (!empty($bt['class']))
+                echo "{$bt['class']}{$bt['type']}";
+            echo "{$bt['function']}(" . implode(', ',
+                    $bt['args'])
+                . ")</li>\n";
+        }
+        echo "</ol>\n";
+        echo "</body></html>\n";
+        exit;
+    }
+
+    /* call this function if you want a non-default error handler */
+    function html_set_error_handler($func)
+    {
+        $this->error_func = $func;
+    }
+
+    function html_error()
+    {
+        $args = func_get_args();
+        return call_user_func_array($this->error_func, $args);
+    }
+}
+
+/*
+ * Data structure to display XML style attributes
+ * see function attributes() below for usage
+ */
+
+class AttributeList
+{
+    /** @var array */
+    var $list;
+
+    /**
+     * AttributeList constructor.
+     */
+    function __construct()
+    {
+        $this->list = array();
+        $args = func_get_args();
+        $this->add($args);
+    }
+
+    function add()
+    {
+        $args = func_get_args();
+        foreach ($args as $arg) {
+            if (is_array($arg)) {
+                foreach ($arg as $attr) {
+                    $this->add($attr);
+                }
+            } else {
+                $this->list[] = $arg;
+            }
+        }
+    }
+
+    /**
+     * @return string
+     */
+    function toString()
+    {
+        return implode(' ', $this->list);
+    }
+}
+
+/*
+ * creates an Html data structure
+ * arguments are tagName [AttributeList] [Html | array | string] ...
+ * where array contains an array, Html, or a string, same requirements for that
+ * array
+ */
+/**
+ * @return Html
+ */
+function tag()
+{
+    $args = func_get_args();
+    $html = new Html();
+    call_user_func_array(array(&$html, '__construct'), $args);
+    return $html;
+}
+
+/*
+ * creates an AttributeList data structure
+ * arguments are [attribute | array] ...
+ * where attribute is a string of name="value" and array contains arrays or
+ * attributes
+ */
+/**
+ * @return AttributeList
+ */
+function attributes()
+{
+    $args = func_get_args();
+    $attrs = new AttributeList();
+    call_user_func_array(array(&$attrs, '__construct'), $args);
+    return $attrs;
+}
+
+/**
+ * @return AttributeList
+ */
+function attrs()
+{
+    $args = func_get_args();
+    $attrs = new AttributeList();
+    call_user_func_array(array(&$attrs, '__construct'), $args);
+    return $attrs;
+}
+
+
+// creates a select tag element for a form
+// returns HTML data for the element
+/**
+ * @param string $name
+ * @param array $options
+ * @param bool|string $default
+ * @param bool|AttributeList $attrs
+ * @return Html
+ */
+function create_select($name, $options, $default = false, $attrs = false)
+{
+    if ($attrs === false)
+        $attrs = attrs();
+
+    $attrs->add("name=\"$name\"");
+    $attrs->add("id=\"$name\"");
+    $select = tag('select', $attrs);
+
+    foreach ($options as $value => $text) {
+        $attributes = attrs("value=\"$value\"");
+        if ($default !== false && ($value == $default ||
+                is_array($default) &&
+                in_array($value, $default))
+        ) {
+            $attributes->add('selected');
+        }
+        $select->add(tag('option', $attributes, $text));
+    }
+
+    return $select;
+}
+
+// creates a two stage select input
+// returns HTML data for the elements
+/**
+ * @param string $name
+ * @param array $option_lists
+ * @param bool|string $default
+ * @param bool|AttributeList $attrs
+ * @return Html
+ */
+function create_multi_select($name, $option_lists, $default = false,
+                             $attrs = false)
+{
+    if ($attrs === false)
+        $attrs = attrs();
+
+    $attrs->add("name=\"$name\"");
+    $attrs->add("id=\"$name\"");
+    $attrs->add("class=\"phpc-multi-select\"");
+    $select = tag('select', $attrs);
+
+    foreach ($option_lists as $category => $options) {
+        if (is_array($options)) {
+            $group = tag('optgroup', attrs("label=\"$category\""));
+            $select->add($group);
+            foreach ($options as $value => $text) {
+                $attributes = attrs("value=\"$value\"");
+                if ($value === $default)
+                    $attributes->add('selected');
+                $text = str_replace('_', ' ', $text);
+                $group->add(tag('option', $attributes, $text));
+            }
+        } else {
+            $value = $options;
+            $text = $category;
+            $attributes = attrs("value=\"$value\"");
+            if ($value === $default)
+                $attributes->add('selected');
+            $select->add(tag('option', $attributes, $text));
+        }
+    }
+
+    return $select;
+}
+
+// creates a select element for a form given a certain range
+// returns HTML data for the element
+/**
+ * @param string $name
+ * @param int $lbound
+ * @param int $ubound
+ * @param int $increment
+ * @param bool|string $default
+ * @param bool|string $name_function
+ * @param bool $attrs
+ * @return Html
+ */
+function create_select_range($name, $lbound, $ubound, $increment = 1,
+                             $default = false, $name_function = false, $attrs = false)
+{
+    $options = array();
+
+    for ($i = $lbound; $i <= $ubound; $i += $increment) {
+        if ($name_function !== false) {
+            $text = $name_function($i);
+        } else {
+            $text = $i;
+        }
+        $options[$i] = $text;
+    }
+    return create_select($name, $options, $default, $attrs);
+}
+
diff --git a/src/import.php b/src/import.php
new file mode 100644
index 0000000..cbaf5ea
--- /dev/null
+++ b/src/import.php
@@ -0,0 +1,160 @@
+<?php
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+	die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function import() {
+    global $vars, $phpcdb, $phpcid, $phpc_script;
+
+	if(!is_admin()) {
+		permission_error(__('Need to be admin'));
+		exit;
+	}
+
+	$form_page = "$phpc_script?action=admin#phpc-import";
+
+	if(!empty($vars['port']) && strlen($vars['port']) > 0) {
+		$port = $vars['port'];
+	} else {
+		$port = ini_get("mysqli.default_port");
+	}
+
+	$old_dbh = @new mysqli($vars['host'], $vars['username'], $vars['passwd'],
+			$vars['dbname'], $port);
+
+	if(!$old_dbh || mysqli_connect_errno()) {
+		return message_redirect("Database connect failed ("
+				. mysqli_connect_errno() . "): "
+				. mysqli_connect_error(),
+				$form_page);
+	}
+
+	$events_table = $vars['prefix'] . 'events';
+	$users_table = $vars['prefix'] . 'users';
+
+	// Create user lookup table
+	$users = array('anonymous' => '0');
+	foreach($phpcdb->get_users() as $user) {
+		$users[$user->get_username()] = $user->get_uid();
+	}
+
+	// Lookup old events
+	$query = "SELECT YEAR(`startdate`) as `year`, "
+		."MONTH(`startdate`) as `month`, "
+		."DAY(`startdate`) as `day`, YEAR(`enddate`) as `endyear`,"
+		."MONTH(`enddate`) as `endmonth`, DAY(`enddate`) as `endday`,"
+		."HOUR(`starttime`) as `hour`, MINUTE(`starttime`) as `minute`,"
+		."`duration`, `eventtype`, `subject`, `description`,"
+		."`username`, `password`\n"
+		."FROM `$events_table`\n"
+		."LEFT JOIN `$users_table` USING (`uid`)\n";
+
+	$sth = $old_dbh->query($query)
+		or $phpcdb->db_error(__('Error selecting events in import'),
+				$query);
+
+	$events = 0;
+	$occurrences = 0;
+
+	while($result = $sth->fetch_assoc()) {
+		$username = $result['username'];
+		if(empty($username) || strlen($username) == 0) {
+			$uid = 0;
+		} else {
+			if(!isset($users[$username])) {
+				$users[$username] = $phpcdb->create_user($username,
+						$result['password'], false);
+			}
+			$uid = $users[$username];
+		}
+
+		$eid = $phpcdb->create_event($phpcid, $uid,
+				$phpcdb->dbh->escape_string($result["subject"]),
+				$phpcdb->dbh->escape_string($result["description"]),
+				false, false);
+		$events++;
+
+		$eventtype = $result['eventtype'];
+		// Full Day or None
+		if($eventtype == 2 || $eventtype == 4)
+			$time_type = 1;
+		// TBA
+		elseif($eventtype == 3)
+			$time_type = 2;
+		// Normal (and all of the recurring)
+		else
+			$time_type = 0;
+
+		$year = $result['year'];
+		$month = $result['month'];
+		$day = $result['day'];
+		$hour = $result['hour'];
+		$minute = $result['minute'];
+		$duration = $result['duration'];
+
+		$final_ts = mktime($hour, $minute, 0, $result['endmonth'],
+				$result['endday'], $result['endyear']);
+
+		while(true) {
+			$start_ts = mktime($hour, $minute, 0, $month, $day,
+					$year);
+			if($start_ts > $final_ts)
+				break;
+
+			$endminute = $minute + ($duration % 60);
+			$endhour = ($hour + floor($duration / 60)) % 24;
+			$endday = $day + floor($endhour / 24);
+		
+			$end_ts = mktime($endhour, $endminute, 0, $month,
+					$endday, $year);
+			$phpcdb->create_occurrence($eid, $time_type, $start_ts, $end_ts);
+			$occurrences++;
+
+			// Increment start time
+			switch($eventtype) {
+			case 1: // Normal
+			case 2: // Full Day
+			case 3: // TBA
+			case 4: // None
+				$day++;
+				break;
+			case 5: // Weekly
+				$day += 7;
+				break;
+			case 6: // Monthly
+				$month++;
+				break;
+			case 7: // Yearly
+				$year++;
+				break;
+			default:
+				echo "bad event!!";
+				exit;
+			}
+		}
+	}
+
+
+	return message_redirect(sprintf(__("Created %s events with %s occurences"),
+				$events, $occurrences),
+			$form_page);
+}
diff --git a/src/index.html b/src/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/src/login.php b/src/login.php
new file mode 100644
index 0000000..e41faa1
--- /dev/null
+++ b/src/login.php
@@ -0,0 +1,87 @@
+<?php 
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function login()
+{
+	global $vars, $phpc_script;
+
+	$html = tag('div');
+
+	//Check password and username
+	if(isset($vars['username'])){
+		$user = $vars['username'];
+		$password = $vars['password'];
+
+		if(login_user($user, $password)){
+			$url = $phpc_script;
+                        if(!empty($vars['lasturl'])) {
+				$url .= '?' . urldecode($vars['lasturl']);
+			}
+                        redirect($url);
+			return tag('h2', __('Logged in.'));
+		}
+
+		$html->add(tag('h2', __('Sorry, Invalid Login')));
+
+	}
+
+	$html->add(login_form());
+	return $html;
+}
+
+/**
+ * @return Html
+ */
+function login_form()
+{
+        global $vars, $phpc_script;
+
+        $submit_data = tag('td', attributes('colspan="2"'),
+                                create_hidden('action', 'login'),
+                                create_submit(__('Log in')));
+
+        if(!empty($vars['lasturl'])) {
+		$lasturl = phpc_html_escape(rawurlencode($vars['lasturl']));
+                $submit_data->prepend(create_hidden('lasturl',
+                                        $lasturl));
+	}
+
+	return tag('form', attributes("action=\"$phpc_script\"",
+				'method="post"'),
+		tag('table',
+			tag('caption', __('Log in')),
+                        tag('thead',
+                                tag('tr',
+                                        tag('th', attributes('colspan="2"'),
+                                                __('You must have cookies enabled to login.')))),
+			tag('tfoot',
+				tag('tr', $submit_data)),
+			tag('tbody',
+				tag('tr',
+					tag('th', tag('label', attributes('for="username"'), __('Username'))),
+					tag('td', create_text('username'))),
+				tag('tr',
+					tag('th', tag('label', attributes('for="password"'), __('Password'))),
+					tag('td', create_password('password'))))));
+}
diff --git a/src/logout.php b/src/logout.php
new file mode 100644
index 0000000..1e4ff42
--- /dev/null
+++ b/src/logout.php
@@ -0,0 +1,33 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function logout()
+{
+	global $phpc_script;
+
+	phpc_do_logout();
+        redirect($phpc_script);
+
+        return tag('h2', __('Loggin out...'));
+}
diff --git a/src/msgfmt-functions.php b/src/msgfmt-functions.php
new file mode 100644
index 0000000..f9b0174
--- /dev/null
+++ b/src/msgfmt-functions.php
@@ -0,0 +1,240 @@
+<?php
+
+
+/**
+ * php-msgfmt
+ *
+ * php-msgfmt is dual-licensed under
+ *   the GNU Lesser General Public License, version 2.1, and
+ *   the Apache License, version 2.0.
+ * 
+ * For the terms of the licenses, see the LICENSE-LGPL.txt and LICENSE-AL2.txt
+ * files, respectively.
+ *
+ *
+ * Copyright (C) 2007 Matthias Bauer
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License, version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ *
+ * Copyright 2007 Matthias Bauer
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @package php-msgfmt
+ * @version $Id$
+ * @copyright 2007 Matthias Bauer
+ * @author Matthias Bauer
+ * @license http://opensource.org/licenses/lgpl-license.php GNU Lesser General Public License 2.1
+ * @license http://opensource.org/licenses/apache2.0.php Apache License 2.0
+ */
+
+function _po_clean_helper($x) {
+	if (is_array($x)) {
+		foreach ($x as $k => $v) {
+			$x[$k]= _po_clean_helper($v);
+		}
+	} else {
+		if ($x[0] == '"')
+			$x= substr($x, 1, -1);
+		$x= str_replace("\"\n\"", '', $x);
+		$x= str_replace('$', '\\$', $x);
+		$x= @ eval ("return \"$x\";");
+	}
+	return $x;
+}
+
+/* Parse gettext .po files. */
+/* @link http://www.gnu.org/software/gettext/manual/gettext.html#PO-Files */
+function parse_po_file($in) {
+	// read .po file
+	$fc= file_get_contents($in);
+	// normalize newlines
+	$fc= str_replace(array (
+		"\r\n",
+		"\r"
+	), array (
+		"\n",
+		"\n"
+	), $fc);
+
+	// results array
+	$hash= array ();
+	// temporary array
+	$temp= array ();
+	// state
+	$state= null;
+	$fuzzy= false;
+
+	// iterate over lines
+	foreach (explode("\n", $fc) as $line) {
+		$line= trim($line);
+		if ($line === '')
+			continue;
+		$linexp=explode(' ', $line, 2);
+		$key=$linexp[0];
+		if(isset($linexp[1])) $data=$linexp[1];
+		
+		switch ($key) {
+			case '#,' : // flag...
+				$fuzzy= in_array('fuzzy', preg_split('/,\s*/', $data));
+			case '#' : // translator-comments
+			case '#.' : // extracted-comments
+			case '#:' : // reference...
+			case '#|' : // msgid previous-untranslated-string
+				// start a new entry
+				if (sizeof($temp) && array_key_exists('msgid', $temp) && array_key_exists('msgstr', $temp)) {
+					if (!$fuzzy)
+						$hash[]= $temp;
+					$temp= array ();
+					$state= null;
+					$fuzzy= false;
+				}
+				break;
+			case 'msgctxt' :
+				// context
+			case 'msgid' :
+				// untranslated-string
+			case 'msgid_plural' :
+				// untranslated-string-plural
+				$state= $key;
+				$temp[$state]= $data;
+				break;
+			case 'msgstr' :
+				// translated-string
+				$state= 'msgstr';
+				$temp[$state][]= $data;
+				break;
+			default :
+				if (strpos($key, 'msgstr[') !== FALSE) {
+					// translated-string-case-n
+					$state= 'msgstr';
+					$temp[$state][]= $data;
+				} else {
+					// continued lines
+					switch ($state) {
+						case 'msgctxt' :
+						case 'msgid' :
+						case 'msgid_plural' :
+							$temp[$state] .= "\n" . $line;
+							break;
+						case 'msgstr' :
+							$temp[$state][sizeof($temp[$state]) - 1] .= "\n" . $line;
+							break;
+						default :
+							// parse error
+							return FALSE;
+					}
+				}
+				break;
+		}
+	}
+
+	// add final entry
+	if ($state == 'msgstr')
+		$hash[]= $temp;
+
+	// Cleanup data, merge multiline entries, reindex hash for ksort
+	$temp= $hash;
+	$hash= array ();
+	foreach ($temp as $entry) {
+		foreach ($entry as & $v) {
+			$v= _po_clean_helper($v);
+			if ($v === FALSE) {
+				// parse error
+				return FALSE;
+			}
+		}
+		$hash[$entry['msgid']]= $entry;
+	}
+
+	return $hash;
+}
+
+/* Write a GNU gettext style machine object. */
+/* @link http://www.gnu.org/software/gettext/manual/gettext.html#MO-Files */
+function write_mo_file($hash, $out) {
+	// sort by msgid
+	ksort($hash, SORT_STRING);
+	// our mo file data
+	$mo= '';
+	// header data
+	$offsets= array ();
+	$ids= '';
+	$strings= '';
+
+	foreach ($hash as $entry) {
+		$id= $entry['msgid'];
+		if (isset ($entry['msgid_plural']))
+			$id .= "\x00" . $entry['msgid_plural'];
+		// context is merged into id, separated by EOT (\x04)
+		if (array_key_exists('msgctxt', $entry))
+			$id= $entry['msgctxt'] . "\x04" . $id;
+		// plural msgstrs are NUL-separated
+		$str= implode("\x00", $entry['msgstr']);
+		// keep track of offsets
+		$offsets[]= array (
+			strlen($ids
+		), strlen($id), strlen($strings), strlen($str));
+		// plural msgids are not stored (?)
+		$ids .= $id . "\x00";
+		$strings .= $str . "\x00";
+	}
+
+	// keys start after the header (7 words) + index tables ($#hash * 4 words)
+	$key_start= 7 * 4 + sizeof($hash) * 4 * 4;
+	// values start right after the keys
+	$value_start= $key_start +strlen($ids);
+	// first all key offsets, then all value offsets
+	$key_offsets= array ();
+	$value_offsets= array ();
+	// calculate
+	foreach ($offsets as $v) {
+		list ($o1, $l1, $o2, $l2)= $v;
+		$key_offsets[]= $l1;
+		$key_offsets[]= $o1 + $key_start;
+		$value_offsets[]= $l2;
+		$value_offsets[]= $o2 + $value_start;
+	}
+	$offsets= array_merge($key_offsets, $value_offsets);
+
+	// write header
+	$mo .= pack('Iiiiiii', 0x950412de, // magic number
+	0, // version
+	sizeof($hash), // number of entries in the catalog
+	7 * 4, // key index offset
+	7 * 4 + sizeof($hash) * 8, // value index offset,
+	0, // hashtable size (unused, thus 0)
+	$key_start // hashtable offset
+	);
+	// offsets
+	foreach ($offsets as $offset)
+		$mo .= pack('i', $offset);
+	// ids
+	$mo .= $ids;
+	// strings
+	$mo .= $strings;
+
+	file_put_contents($out, $mo);
+}
diff --git a/src/occur_form.php b/src/occur_form.php
new file mode 100644
index 0000000..8d4d1cd
--- /dev/null
+++ b/src/occur_form.php
@@ -0,0 +1,185 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+	die("Hacking attempt");
+}
+
+require_once("$phpc_includes_path/form.php");
+
+/**
+ * @return Html
+ */
+function occur_form() {
+	global $vars;
+
+	if(empty($vars["submit_form"]))
+		return display_form();
+
+	// else
+	return process_form();
+}
+
+/**
+ * @return Html
+ */
+function display_form() {
+	global $phpc_script, $year, $month, $day, $vars, $phpcdb, $phpc_cal,
+		$phpc_token;
+
+	$hour24 = $phpc_cal->hours_24;
+	$date_format = $phpc_cal->date_format;
+	$form = new Form($phpc_script, __('Occurrence Form'));
+
+	$when_group = new FormGroup(__('When'));
+	$when_group->add_part(new FormDateTimeQuestion('start',
+				__('From'), $hour24, $date_format));
+	$when_group->add_part(new FormDateTimeQuestion('end', __('To'),
+				$hour24, $date_format));
+
+	$time_type = new FormDropDownQuestion('time-type', __('Time Type'));
+	$time_type->add_option('normal', __('Normal'));
+	$time_type->add_option('full', __('Full Day'));
+	$time_type->add_option('tba', __('To Be Announced'));
+
+	$when_group->add_part($time_type);
+
+	$form->add_part($when_group);
+
+	if(isset($vars['phpcid']))
+		$form->add_hidden('phpcid', $vars['phpcid']);
+
+	if(isset($vars['oid'])) {
+		$form->add_hidden('oid', $vars['oid']);
+
+		$occ = $phpcdb->get_occurrence_by_oid($vars['oid']);
+		$datefmt = $phpc_cal->date_format;
+
+		$start_date = format_short_date_string($occ->get_start_year(),
+				$occ->get_start_month(), $occ->get_start_day(),
+				$datefmt);
+		$end_date = format_short_date_string($occ->get_end_year(),
+				$occ->get_end_month(), $occ->get_end_day(),
+				$datefmt);
+		$start_time = $occ->get_start_time();
+		if($start_time == NULL)
+			$start_time = format_time_string(17, 0, $hour24);
+		$end_time = $occ->get_end_time();
+		if($end_time == NULL)
+			$end_time = format_time_string(18, 0, $hour24);
+		$defaults = array(
+				'start-date' => $start_date,
+				'end-date' => $end_date,
+				'start-time' => $start_time,
+				'end-time' => $end_time,
+				);
+
+		switch($occ->get_time_type()) {
+			case 0:
+				$defaults['time-type'] = 'normal';
+				break;
+			case 1:
+				$defaults['time-type'] = 'full';
+				break;
+			case 2:
+				$defaults['time-type'] = 'tba';
+				break;
+		}
+
+	} else {
+		$form->add_hidden('eid', $vars['eid']);
+		$defaults = array(
+				'start-date' => "$month/$day/$year",
+				'end-date' => "$month/$day/$year",
+				'start-time' => format_time_string(17, 0, $hour24),
+				'end-time' => format_time_string(18, 0, $hour24),
+				);
+	}
+
+	$form->add_hidden('phpc_token', $phpc_token);
+	$form->add_hidden('action', 'occur_form');
+	$form->add_hidden('submit_form', 'submit_form');
+
+	$form->add_part(new FormSubmitButton(__("Submit Occurrence")));
+
+	return $form->get_form($defaults);
+}
+
+function process_form()
+{
+	global $vars, $phpcdb, $phpc_cal, $phpcid, $phpc_script;
+
+	if(!isset($vars['eid']) && !isset($vars['oid']))
+		soft_error(__("Cannot create occurrence."));
+
+	$start_ts = get_timestamp("start");
+	$end_ts = get_timestamp("end");
+
+	switch($vars["time-type"]) {
+		case 'normal':
+			$time_type = 0;
+			break;
+
+		case 'full':
+			$time_type = 1;
+			break;
+
+		case 'tba':
+			$time_type = 2;
+			break;
+
+		default:
+			soft_error(__("Unrecognized Time Type."));
+	}
+
+	$duration = $end_ts - $start_ts;
+	if($duration < 0)
+		soft_error(__("An event cannot have an end earlier than its start."));
+
+	verify_token();
+
+	if(!$phpc_cal->can_write())
+		permission_error(__('You do not have permission to write to this calendar.'));
+
+	if(!isset($vars['oid'])) {
+		$modify = false;
+		if(!isset($vars["eid"]))
+			soft_error(__("EID not set."));
+		$oid = $phpcdb->create_occurrence($vars["eid"], $time_type, $start_ts,
+				$end_ts);
+	} else {
+		$modify = true;
+		$oid = $vars["oid"];
+		$phpcdb->modify_occurrence($oid, $time_type, $start_ts,
+				$end_ts);
+	}
+		
+	if($oid != 0) {
+		if($modify)
+			$message = __("Modified occurence: ");
+		else
+			$message = __("Created occurence: ");
+
+		return message_redirect(tag('', $message,
+					create_event_link($oid, 'display_event',
+						$oid)),
+				"$phpc_script?action=display_event&phpcid=$phpcid&oid=$oid");
+	} else {
+		return message_redirect(__('Error submitting occurrence.'),
+				"$phpc_script?action=display_month&phpcid=$phpcid");
+	}
+}
diff --git a/src/occurrence_delete.php b/src/occurrence_delete.php
new file mode 100644
index 0000000..c56de6a
--- /dev/null
+++ b/src/occurrence_delete.php
@@ -0,0 +1,109 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function occurrence_delete()
+{
+	global $vars, $phpcdb, $phpcid, $phpc_script;
+
+	$html = tag('div', attributes('class="phpc-container"'));
+
+	if(empty($vars["oid"])) {
+		$message = __('No occurrence selected.');
+		$html->add(tag('p', $message));
+		return $html;
+	}
+
+	if (is_array($vars["oid"])) {
+		$oids = $vars["oid"];
+	} else {
+		$oids = array($vars["oid"]);
+	}
+
+	if (empty($vars["confirm"])) {
+		$list = tag('ul');
+		foreach ($oids as $oid) {
+			$occur = $phpcdb->get_occurrence_by_oid($oid);
+			$list->add(tag('li', "$oid: \"" . $occur->get_subject()
+						. "\" " . __("at") . " " .
+						$occur->get_date_string()));
+		}
+		$html->add(tag('p', __('Confirm you want to delete:')));
+		$html->add($list);
+		$html->add(" [ ", create_action_link(__('Confirm'),
+					"occurrence_delete", array("oid" => $oids,
+						"confirm" => "1")), " ] ");
+		$html->add(" [ ", create_action_link(__('Deny'),
+					"display_month"), " ] ");
+		return $html;
+	}
+
+	$removed_occurs = array();
+	$unremoved_occurs = array();
+	$permission_denied = array();
+
+	foreach($oids as $oid) {
+		$occur = $phpcdb->get_occurrence_by_oid($oid);
+		if(!$occur->can_modify()) {
+			$permission_denied[] = $oid;
+		} else {
+			if($phpcdb->delete_occurrence($oid)) {
+				$removed_occurs[] = $oid;
+				// TODO: Verify that the event still has occurences.
+				$eid = $occur->get_eid();
+			} else {
+				$unremoved_occurs[] = $oid;
+			}
+		}
+	}
+
+	if(sizeof($removed_occurs) > 0) {
+		if(sizeof($removed_occurs) == 1)
+			$text = __("Removed occurrence");
+		else
+			$text = __("Removed occurrences");
+		$text .= ': ' . implode(', ', $removed_occurs);
+		$html->add(tag('p', $text));
+	}
+
+	if(sizeof($unremoved_occurs) > 0) {
+		if(sizeof($unremoved_occurs) == 1)
+			$text = __("Could not remove occurrence");
+		else
+			$text = __("Could not remove occurrences");
+		$text .= ': ' . implode(', ', $unremoved_occurs);
+		$html->add(tag('p', $text));
+	}
+
+	if(sizeof($permission_denied) > 0) {
+		if(sizeof($permission_denied) == 1)
+			$text = __("You do not have permission to remove the occurrence.");
+		else
+			$text = __("You do not have permission to remove occurrences.");
+		$text .= ': ' . implode(', ', $permission_denied);
+		$html->add(tag('p', $text));
+	}
+
+    return message_redirect($html,
+			"$phpc_script?action=display_event&phpcid=$phpcid&eid=$eid");
+}
diff --git a/src/password_submit.php b/src/password_submit.php
new file mode 100644
index 0000000..da95348
--- /dev/null
+++ b/src/password_submit.php
@@ -0,0 +1,63 @@
+<?php 
+/*
+ * Copyright 2010 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function password_submit()
+{
+    /** @var PhpcUser $phpc_user */
+	global $vars, $phpcdb, $phpc_user;
+
+        if(!is_user()) {
+                return tag('div', __('You must be logged in.'));
+        }
+
+	verify_token();
+
+	if(!$phpc_user->is_password_editable())
+		soft_error(__('You do not have permission to change your password.'));
+
+        if(!isset($vars['old_password'])) {
+                return tag('div', __('You must specify your old password.'));
+        } else {
+		$old_password = $vars['old_password'];
+	}
+
+	if($phpc_user->password != md5($old_password)) {
+                return tag('div', __('The password you entered did not match your old password.'));
+	}
+
+        if(empty($vars['password1'])) {
+                return tag('div', __('You must specify a password'));
+        }
+
+        if(empty($vars['password2'])
+                || $vars['password1'] != $vars['password2']) {
+                return tag('div', __('Your passwords did not match'));
+        }
+
+        $passwd = md5($vars['password1']);
+
+	$phpcdb->set_password($phpc_user->get_uid(), $passwd);
+
+        return tag('div', __('Password updated.'));
+}
diff --git a/src/phpccalendar.class.php b/src/phpccalendar.class.php
new file mode 100644
index 0000000..3258a6a
--- /dev/null
+++ b/src/phpccalendar.class.php
@@ -0,0 +1,205 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+class PhpcCalendar {
+    /** @var int */
+	var $cid;
+    /** @var string */
+	var $title;
+    /** @var string[] */
+	var $user_perms;
+    /** @var array */
+	var $categories;
+    /** @var bool */
+	var $hours_24;
+    /** @var int */
+	var $date_format;
+    /** @var int */
+	var $week_start;
+    /** @var int */
+	var $subject_max;
+    /** @var int */
+	var $events_max;
+    /** @var int */
+	var $anon_permission;
+    /** @var string */
+	var $timezone;
+    /** @var string */
+	var $language;
+    /** @var string */
+	var $theme;
+    /** @var array */
+	var $groups;
+
+    /**
+     * PhpcCalendar constructor.
+     * @param string[] $result
+     */
+    function __construct($result)
+    {
+        $this->cid = intval($result['cid']);
+		$this->title = $result['title'];
+        $this->hours_24 = intval($result['hours_24']) != 0;
+        $this->date_format = intval($result['date_format']);
+        $this->week_start = intval($result['week_start']);
+        $this->subject_max = intval($result['subject_max']);
+        $this->events_max = intval($result['events_max']);
+        $this->anon_permission = intval($result['anon_permission']);
+		$this->timezone = $result['timezone'];
+		$this->language = $result['language'];
+		$this->theme = $result['theme'];
+	}
+
+    /**
+     * @return string
+     */
+	function get_title()
+	{
+		if(empty($this->title))
+			return __('(No title)');
+
+		return phpc_html_escape($this->title);
+	}
+
+    /**
+     * @return int
+     */
+	function get_cid()
+	{
+		return $this->cid;
+	}
+
+    /**
+     * @return bool
+     */
+	function can_read()
+	{
+		if ($this->anon_permission >= 1)
+			return true;
+
+		if (!is_user())
+			return false;
+
+		$this->require_user_perms();
+
+		return $this->can_admin() || !empty($this->user_perms["read"]);
+	}
+
+    /**
+     * @return bool
+     */
+	function can_write()
+	{
+		if ($this->anon_permission >= 2)
+			return true;
+
+		if (!is_user())
+			return false;
+
+		$this->require_user_perms();
+
+		return $this->can_admin() || !empty($this->user_perms["write"]);
+	}
+
+    /**
+     * @return bool
+     */
+	function can_admin()
+	{
+		if (!is_user())
+			return false;
+
+		$this->require_user_perms();
+
+		return is_admin() || !empty($this->user_perms["admin"]);
+	}
+
+	function require_user_perms() {
+		global $phpcdb, $phpc_user;
+
+		if(!isset($this->user_perms))
+			$this->user_perms = $phpcdb->get_permissions($this->cid,
+					$phpc_user->get_uid());
+
+	}
+
+    /**
+     * @return bool
+     */
+	function can_modify()
+	{
+		if ($this->anon_permission >= 3)
+			return true;
+
+		if (!is_user())
+			return false;
+
+		$this->require_user_perms();
+
+		return $this->can_admin()
+			|| !empty($this->user_perms["modify"]);
+	}
+
+    /**
+     * @return bool
+     */
+	function can_create_readonly()
+	{
+		if (!is_user())
+			return false;
+
+		$this->require_user_perms();
+
+		return $this->can_admin()
+			|| !empty($this->user_perms["readonly"]);
+	}
+
+    /**
+     * @param int $uid
+     * @return array
+     */
+	function get_visible_categories($uid) {
+		global $phpcdb;
+
+		return $phpcdb->get_visible_categories($uid, $this->cid);
+	}
+
+    /**
+     * @return array
+     */
+	function get_categories() {
+		global $phpcdb;
+
+		if(!isset($this->categories)) {
+			$this->categories = $phpcdb->get_categories($this->cid);
+		}
+		return $this->categories;
+	}
+
+    /**
+     * @return array
+     */
+	function get_groups() {
+		global $phpcdb;
+
+		if(!isset($this->groups)) {
+			$this->groups = $phpcdb->get_groups($this->cid);
+		}
+		return $this->groups;
+	}
+}
+
diff --git a/src/phpcdatabase.class.php b/src/phpcdatabase.class.php
new file mode 100644
index 0000000..165e468
--- /dev/null
+++ b/src/phpcdatabase.class.php
@@ -0,0 +1,1258 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+require_once("$phpc_includes_path/phpccalendar.class.php");
+require_once("$phpc_includes_path/phpcevent.class.php");
+require_once("$phpc_includes_path/phpcoccurrence.class.php");
+require_once("$phpc_includes_path/phpcuser.class.php");
+
+class PhpcDatabase {
+    /** @var mysqli */
+	var $dbh;
+    /** @var PhpcCalendar[] */
+	var $calendars;
+    /** @var */
+    var $perms = array();
+
+    /**
+     * PhpcDatabase constructor.
+     * @param string $host
+     * @param string $username
+     * @param string $passwd
+     * @param string $dbname
+     * @param string $port
+     */
+	function __construct($host, $username, $passwd, $dbname, $port) {
+		// Make the database connection.
+		$this->dbh = new mysqli($host, $username, $passwd, $dbname,
+				$port);
+
+		if(mysqli_connect_errno()) {
+			soft_error("Database connect failed ("
+					. mysqli_connect_errno() . "): "
+					. mysqli_connect_error());
+		}
+
+		$this->dbh->set_charset("utf8");
+	}
+
+	function __destruct() {
+		$this->dbh->close();
+	}
+
+    /**
+     * @return string
+     */
+	private function get_event_fields() {
+		$events_table = SQL_PREFIX . "events";
+		$cats_table = SQL_PREFIX . "categories";
+		$fields = array('subject', 'description', 'owner', 'eid', 'cid',
+				'readonly', 'catid');
+		return "`$cats_table`.`gid`, `$events_table`.`"
+			. implode("`, `$events_table`.`", $fields) . "`, "
+			. "UNIX_TIMESTAMP(`ctime`) AS `ctime`, "
+			. "UNIX_TIMESTAMP(`mtime`) AS `mtime`";
+	}
+
+    /**
+     * @return string
+     */
+	private function get_occurrence_fields() {
+		return $this->get_event_fields() . ", `time_type`, `oid`, "
+			. "UNIX_TIMESTAMP(`start_ts`) AS `start_ts`, "
+			. "DATE_FORMAT(`start_date`, '%Y%m%d') AS `start_date`, "
+			. "UNIX_TIMESTAMP(`end_ts`) AS `end_ts`, "
+			. "DATE_FORMAT(`end_date`, '%Y%m%d') AS `end_date`\n";
+	}
+
+    /**
+     * @return string
+     */
+	private function get_user_fields() {
+		$users_table = SQL_PREFIX . "users";
+		return "`$users_table`.`uid`, `username`, `password`, `$users_table`.`admin`, `password_editable`, `timezone`, `language`";
+	}
+
+	// returns all the events for a particular day
+	// $from and $to are timestamps only significant to the date.
+	// an event that happens later in the day of $to is included
+    /**
+     * @param int $cid
+     * @param int $from
+     * @param int $to
+     * @return mysqli_result
+     */
+	function get_occurrences_by_date_range($cid, $from, $to)
+	{
+		$from_str = "FROM_UNIXTIME('$from')";
+		$to_str = "FROM_UNIXTIME('$to')";
+
+		$events_table = SQL_PREFIX . "events";
+		$occurrences_table = SQL_PREFIX . "occurrences";
+		$users_table = SQL_PREFIX . 'users';
+		$cats_table = SQL_PREFIX . 'categories';
+
+		$query = "SELECT " . $this->get_occurrence_fields()
+			.", `username`, `name`, `bg_color`, `text_color`\n"
+			."FROM `$events_table`\n"
+                        ."INNER JOIN `$occurrences_table` USING (`eid`)\n"
+			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
+			."LEFT JOIN `$cats_table` ON `$events_table`.`catid` "
+			."= `$cats_table`.`catid`\n"
+			."WHERE `$events_table`.`cid` = '$cid'\n"
+			."	AND IF(`start_ts`, `start_ts` <= $to_str, `start_date` <= DATE($to_str))\n"
+			."	AND IF(`end_ts`, `end_ts` >= $from_str, `end_date` >= DATE($from_str))\n"
+			."	ORDER BY `start_ts`, `start_date`, `oid`";
+
+		$results = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_occurrences_by_date_range'),
+					$query);
+
+		return $results;
+        }
+		
+	/* if category is visible to user id */
+    /**
+     * @param int $uid
+     * @param int $catid
+     * @return bool
+     */
+	function is_cat_visible($uid, $catid) {
+		$users_table = SQL_PREFIX . 'users';
+		$user_groups_table = SQL_PREFIX . 'user_groups';
+		$cats_table = SQL_PREFIX . 'categories';
+
+		if (is_admin())
+			return true;
+
+		$query = "SELECT * FROM `$users_table` u\n"
+			."JOIN `$user_groups_table` ug USING (`uid`)\n"
+			."JOIN `$cats_table` c ON c.`gid`=ug.`gid`\n"
+			."WHERE c.`catid`='$catid' AND u.`uid`='$uid'";
+
+		$results = $this->dbh->query($query);
+
+		if(!$results)
+			return false;
+
+		return $results->num_rows>0;
+	}
+
+	// returns all the events for a particular day
+
+    /**
+     * @param int $cid
+     * @param int $year
+     * @param int $month
+     * @param int $day
+     * @return mysqli_result
+     */
+	function get_occurrences_by_date($cid, $year, $month, $day)
+	{
+		$from_stamp = mktime(0, 0, 0, $month, $day, $year);
+		$to_stamp = mktime(23, 59, 59, $month, $day, $year);
+
+		return $this->get_occurrences_by_date_range($cid, $from_stamp, $to_stamp);
+    }
+
+	// returns the event that corresponds to eid
+
+    /**
+     * @param int $eid
+     * @return array
+     */
+	function get_event_by_eid($eid)
+	{
+		$events_table = SQL_PREFIX . 'events';
+		$users_table = SQL_PREFIX . 'users';
+		$cats_table = SQL_PREFIX . 'categories';
+
+		$query = "SELECT " . $this->get_event_fields()
+			.", `username`, `name`, `bg_color`, `text_color`\n"
+			."FROM `$events_table`\n"
+			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
+			."LEFT JOIN `$cats_table` USING (`catid`)\n"
+			."WHERE `eid` = '$eid'\n";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_event_by_eid'),
+					$query);
+
+		$result = $sth->fetch_assoc()
+			or soft_error(__("Event doesn't exist") . ": $eid");
+
+		return $result;
+	}
+
+	// returns the event that corresponds to oid
+
+    /**
+     * @param int $oid
+     * @return array
+     */
+	function get_event_by_oid($oid)
+	{
+		$events_table = SQL_PREFIX . 'events';
+		$occurrences_table = SQL_PREFIX . 'occurrences';
+		$users_table = SQL_PREFIX . 'users';
+		$cats_table = SQL_PREFIX . 'categories';
+
+		$query = "SELECT " . $this->get_event_fields()
+			.", `username`, `name`, `bg_color`, `text_color`\n"
+			."FROM `$events_table`\n"
+			."LEFT JOIN `$occurrences_table` USING (`eid`)\n"
+			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
+			."LEFT JOIN `$cats_table` USING (`catid`)\n"
+			."WHERE `oid` = '$oid'\n";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_event_by_oid'),
+					$query);
+
+		$result = $sth->fetch_assoc()
+			or soft_error(__("Event doesn't exist with oid")
+					. ": $oid");
+
+		return $result;
+	}
+
+	// returns the category that corresponds to $catid
+
+    /**
+     * @param int $catid
+     * @return array
+     */
+	function get_category($catid) {
+		$cats_table = SQL_PREFIX . 'categories';
+		$groups_table = SQL_PREFIX . 'groups';
+
+		$query = "SELECT `$cats_table`.`name` AS `name`, `text_color`, "
+			."`bg_color`, `$cats_table`.`cid` AS `cid`, "
+			."`$cats_table`.`gid`, `catid`, "
+			."`$groups_table`.`name` AS `group_name`\n"
+			."FROM `$cats_table`\n"
+			."LEFT JOIN `$groups_table` USING (`gid`)\n"
+			."WHERE `catid` = $catid";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_category'), $query);
+			
+		$result = $sth->fetch_assoc()
+			or soft_error(__("Category doesn't exist with catid")
+					. ": $catid");
+	
+		return $result;
+	}
+
+    /**
+     * @param int $gid
+     * @return array
+     */
+	function get_group($gid) {
+		$groups_table = SQL_PREFIX . 'groups';
+
+		$query = "SELECT `name`, `gid`, `cid`\n"
+			."FROM `$groups_table`\n"
+			."WHERE `gid` = $gid";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_group'), $query);
+			
+		$result = $sth->fetch_assoc()
+			or soft_error(__("Group doesn't exist with gid")
+					. ": $gid");
+	
+		return $result;
+	}
+
+    /**
+     * @param bool|int $cid
+     * @return array
+     */
+	function get_groups($cid = false) {
+		$groups_table = SQL_PREFIX . 'groups';
+
+		$query = "SELECT `gid`, `name`, `cid`\n"
+			."FROM `$groups_table`\n";
+
+		if($cid !== false)
+			$query .= "WHERE `cid` = $cid";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_groups'), $query);
+					
+		$groups = array();
+		while($row = $sth->fetch_assoc()) {
+			$groups[] = $row;
+		}					
+		return $groups;
+	}
+
+    /**
+     * @param int $uid
+     * @return array
+     */
+	function get_user_groups($uid) {
+		$groups_table = SQL_PREFIX . 'groups';
+		$user_groups_table = SQL_PREFIX . 'user_groups';
+
+		$query = "SELECT `gid`, `cid`, `name`\n"
+			."FROM `$groups_table`\n"
+			."INNER JOIN `$user_groups_table` USING (`gid`)\n"
+			."WHERE `uid` = $uid";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_user_groups'),
+					$query);
+					
+		$groups = array();
+		while($row = $sth->fetch_assoc()) {
+			$groups[] = $row;
+		}					
+		return $groups;
+	}
+	
+	// returns the categories for calendar $cid
+
+    /**
+     * @param bool|int $cid
+     * @return array
+     */
+	function get_categories($cid = false) {
+		$cats_table = SQL_PREFIX . 'categories';
+		$groups_table = SQL_PREFIX . 'groups';
+
+		if($cid)
+			$where = "WHERE `$cats_table`.`cid` = '$cid'\n";
+		else
+			$where = "WHERE `$cats_table`.`cid` IS NULL\n";
+
+		$query = "SELECT `$cats_table`.`name` AS `name`, `text_color`, "
+			."`bg_color`, `$cats_table`.`cid` AS `cid`, "
+			."`$cats_table`.`gid`, `catid`, "
+			."`$groups_table`.`name` AS `group_name`\n"
+			."FROM `$cats_table`\n"
+			."LEFT JOIN `$groups_table` USING (`gid`)\n"
+			.$where;
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_categories'),
+					$query);
+
+		$arr = array();
+		while($result = $sth->fetch_assoc()) {
+			$arr[] = $result;
+		}
+
+		return $arr;
+	}
+
+	// returns the categories for calendar $cid
+    //   if there are no
+    /**
+     * @param int $uid
+     * @param bool|int $cid
+     * @return array
+     */
+	function get_visible_categories($uid, $cid = false)
+	{
+		$cats_table = SQL_PREFIX . 'categories';
+		$user_groups_table = SQL_PREFIX . 'user_groups';
+
+		$where_cid = "`cid` IS NULL";
+		if($cid)
+			$where_cid = "($where_cid OR `cid` = '$cid')";
+
+		$query = "SELECT `name`, `text_color`, `bg_color`, `cid`, "
+			."`gid`, `catid`\n"
+			."FROM `$cats_table`\n"
+			."LEFT JOIN `$user_groups_table` USING (`gid`)\n"
+			."WHERE (`uid` IS NULL OR `uid` = '$uid') AND $where_cid\n";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_visible_categories'),
+					$query);
+
+		$arr = array();
+		while($result = $sth->fetch_assoc()) {
+			$arr[] = $result;
+		}
+
+		return $arr;
+	}
+
+	// returns the event that corresponds to $oid
+
+    /**
+     * @param int $oid
+     * @return PhpcOccurrence
+     */
+	function get_occurrence_by_oid($oid)
+	{
+		$events_table = SQL_PREFIX . 'events';
+		$occurrences_table = SQL_PREFIX . 'occurrences';
+		$users_table = SQL_PREFIX . 'users';
+		$cats_table = SQL_PREFIX . 'categories';
+
+                $query = "SELECT " . $this->get_occurrence_fields()
+			.", `username`, `name`, `bg_color`, `text_color`\n"
+			."FROM `$events_table`\n"
+                        ."INNER JOIN `$occurrences_table` USING (`eid`)\n"
+			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
+			."LEFT JOIN `$cats_table` USING (`catid`)\n"
+			."WHERE `oid` = '$oid'\n";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_occurrence_by_oid'),
+					$query);
+
+		$result = $sth->fetch_assoc()
+			or soft_error(__("Event doesn't exist with oid") . ": $oid");
+
+		return new PhpcOccurrence($result);
+	}
+
+    /**
+     * @param int $eid
+     * @return PhpcOccurrence[]
+     */
+    function get_occurrences_by_eid($eid)
+	{
+		$events_table = SQL_PREFIX . "events";
+		$occurrences_table = SQL_PREFIX . "occurrences";
+		$users_table = SQL_PREFIX . 'users';
+		$cats_table = SQL_PREFIX . 'categories';
+
+                $query = "SELECT " . $this->get_occurrence_fields()
+			.", `username`, `name`, `bg_color`, `text_color`\n"
+			."FROM `$events_table`\n"
+                        ."INNER JOIN `$occurrences_table` USING (`eid`)\n"
+			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
+			."LEFT JOIN `$cats_table` USING (`catid`)\n"
+			."WHERE `eid` = '$eid'\n"
+			."	ORDER BY `start_ts`, `start_date`, `oid`";
+
+		$result = $this->dbh->query($query)
+			or $this->db_error(__('Error in get_occurrences_by_eid'),
+					$query);
+
+		$events = array();
+		while($row = $result->fetch_assoc()) {
+			$events[] = new PhpcOccurrence($row);
+		}
+		return $events;
+    }
+
+    /**
+     * @param int $eid
+     * @return bool
+     */
+	function delete_event($eid)
+	{
+
+		$query = 'DELETE FROM `'.SQL_PREFIX ."events`\n"
+			."WHERE `eid` = '$eid'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error while removing an event.'),
+					$query);
+
+		$rv = $this->dbh->affected_rows > 0;
+
+		$this->delete_occurrences($eid);
+
+		return $rv;
+	}
+
+    /**
+     * @param int $eid
+     * @return int
+     */
+	function delete_occurrences($eid)
+	{
+		$query = 'DELETE FROM `'.SQL_PREFIX ."occurrences`\n"
+			."WHERE `eid` = '$eid'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error while removing an event.'),
+					$query);
+
+		return $this->dbh->affected_rows;
+	}
+
+    /**
+     * @param int $oid
+     * @return int
+     */
+	function delete_occurrence($oid)
+	{
+		$query = 'DELETE FROM `'.SQL_PREFIX ."occurrences`\n"
+			."WHERE `oid` = '$oid'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error while removing an occurrence.'),
+					$query);
+
+		return $this->dbh->affected_rows;
+	}
+
+    /**
+     * @param int $id
+     * @return bool
+     */
+	function delete_calendar($id)
+	{
+
+		$query1 = 'DELETE FROM `'.SQL_PREFIX ."calendars`\n"
+			."WHERE cid='$id'";
+
+		$sth = $this->dbh->query($query1)
+			or $this->db_error(__('Error while removing a calendar'),
+					$query1);
+
+		return $this->dbh->affected_rows > 0;
+	}
+
+    /**
+     * @param int $catid
+     * @return bool
+     */
+	function delete_category($catid)
+	{
+
+		$query = 'DELETE FROM `'.SQL_PREFIX ."categories`\n"
+			."WHERE `catid` = '$catid'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error while removing category.'),
+					$query);
+
+		return $this->dbh->affected_rows > 0;
+	}
+
+    /**
+     * @param int $gid
+     * @return bool
+     */
+	function delete_group($gid)
+	{
+
+		$query = 'DELETE FROM `'.SQL_PREFIX ."groups`\n"
+			."WHERE `gid` = '$gid'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error while removing group.'),
+					$query);
+
+		return $this->dbh->affected_rows > 0;
+	}
+
+    /**
+     * @param int $id
+     * @return bool
+     */
+	function delete_user($id)
+	{
+
+		$query1 = 'DELETE FROM `'.SQL_PREFIX ."users`\n"
+			."WHERE uid='$id'";
+		$query2 = 'DELETE FROM `'.SQL_PREFIX ."permissions`\n"
+			."WHERE uid='$id'";
+
+		$this->dbh->query($query1)
+			or $this->db_error(__('Error while removing a calendar'),
+					$query1);
+		$rv = $this->dbh->affected_rows > 0;
+
+		$this->dbh->query($query2)
+			or $this->db_error(__('Error while removing '),
+					$query2);
+
+		return $rv;
+	}
+
+    /**
+     * @param int $cid
+     * @param int $uid
+     * @return string[]
+     */
+	function get_permissions($cid, $uid)
+	{
+		static $perms = array();
+
+		if (empty($perms[$cid]))
+			$perms[$cid] = array();
+		elseif (!empty($perms[$cid][$uid]))
+			return $perms[$cid][$uid];
+
+		$query = "SELECT * from " . SQL_PREFIX .
+			"permissions WHERE `cid`='$cid' AND `uid`='$uid'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Could not read permissions.'),
+					$query);
+
+		$perms[$cid][$uid] = $sth->fetch_assoc();
+		return $perms[$cid][$uid];
+	}
+
+    /**
+     * @return PhpcCalendar[]
+     */
+	function get_calendars() {
+		if(!empty($this->calendars))
+			return $this->calendars;
+
+		$query = "SELECT *\n"
+			."FROM `" . SQL_PREFIX .  "calendars`\n";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Could not get calendars.'),
+					$query);
+
+		while($result = $sth->fetch_assoc()) {
+			$cid = $result["cid"];
+			if(empty($this->calendars[$cid]))
+				$this->calendars[$cid] = new PhpcCalendar
+					($result);
+		}
+
+		return $this->calendars;
+	}
+
+    /**
+     * @param int $cid
+     * @return PhpcCalendar
+     */
+	function get_calendar($cid)
+	{
+		// Make sure we've cached the calendars
+        $calendars = $this->get_calendars();
+        if (empty($calendars[$cid])) {
+            soft_error('Calendar $cid does not exist.');
+		}
+
+        return $calendars[$cid];
+	}
+
+    /**
+     * @param int $cid
+     * @return bool
+     */
+    function have_calendar($cid)
+    {
+        $calendars = $this->get_calendars();
+        return isset($calendars[$cid]);
+    }
+
+    /**
+     * @return PhpcUser[]
+     */
+	function get_users()
+	{
+		$query = "SELECT * FROM `" . SQL_PREFIX .  "users`";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Could not get user.'), $query);
+
+		$users = array();
+		while($user = $sth->fetch_assoc()) {
+			$users[] = new PhpcUser($user);
+		}
+		return $users;
+	}
+
+    /**
+     * @param int $cid
+     * @return array
+     */
+	function get_users_with_permissions($cid)
+	{
+		$permissions_table = SQL_PREFIX . "permissions";
+
+		$query = "SELECT *, `permissions`.`admin` AS `calendar_admin`\n"
+			."FROM `" . SQL_PREFIX . "users`\n"
+			."LEFT JOIN (SELECT * FROM `$permissions_table`\n"
+			."	WHERE `cid`='$cid') AS `permissions`\n"
+			."USING (`uid`)\n";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Could not get user.'), $query);
+
+		$users = array();
+		while($user = $sth->fetch_assoc()) {
+			$users[] = $user;
+		}
+		return $users;
+	}
+
+    /**
+     * @param string $username
+     * @return bool|PhpcUser
+     */
+	function get_user_by_name($username)
+	{
+		$query = "SELECT " . $this->get_user_fields()
+			."\nFROM ".SQL_PREFIX."users\n"
+			."WHERE username='$username'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__("Error getting user."), $query);
+
+		$result = $sth->fetch_assoc();
+		if($result)
+			return new PhpcUser($result);
+		else
+			return false;
+	}
+
+    /**
+     * @param int $uid
+     * @return PhpcUser
+     */
+	function get_user($uid)
+	{
+		$query = "SELECT " . $this->get_user_fields()
+			."FROM ".SQL_PREFIX."users\n"
+			."WHERE `uid`='$uid'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__("Error getting user."), $query);
+
+        $result = $sth->fetch_assoc()
+        or soft_error('Invalid UID');
+
+        return new PhpcUser($result);
+	}
+
+    /**
+     * @param string $username
+     * @param string $password
+     * @param bool $make_admin
+     * @return mixed
+     */
+	function create_user($username, $password, $make_admin) {
+		$admin = $make_admin ? 1 : 0;
+		$query = "INSERT into `".SQL_PREFIX."users`\n"
+			."(`username`, `password`, `admin`) VALUES\n"
+			."('$username', '$password', $admin)";
+
+		$this->dbh->query($query)
+			or $this->db_error(__('Error creating user.'), $query);
+
+		return $this->dbh->insert_id;
+	}
+
+    /**
+     * @return mixed
+     */
+	function create_calendar()
+	{
+		$query = "INSERT INTO ".SQL_PREFIX."calendars\n"
+			."(`cid`) VALUE (DEFAULT)";
+
+		$this->dbh->query($query)
+			or $this->db_error(__('Error reading options'), $query);
+
+		return $this->dbh->insert_id;
+	}
+
+    /**
+     * @param int $cid
+     * @param string $name
+     * @param string $value
+     */
+	function update_config($cid, $name, $value)
+	{
+		$query = "UPDATE ".SQL_PREFIX."calendars \n"
+		."SET `".$name."`='$value'\n"
+		."WHERE `cid`='$cid'";
+
+		$this->dbh->query($query)
+        or $this->db_error(__('Error updating option'), $query);
+	}
+
+    /**
+     * @param int $cid
+     * @param string $name
+     * @param string $value
+     */
+	function create_config($cid, $name, $value)
+	{
+	
+		$query = "UPDATE ".SQL_PREFIX."calendars \n"
+			."SET `".$name."`='$value'\n"
+			."WHERE `cid`='$cid'"; 
+
+		$this->dbh->query($query)
+        or $this->db_error(__('Error creating option'), $query);
+	}
+
+    /**
+     * @param int $uid
+     * @param string $password
+     */
+	function set_password($uid, $password)
+	{
+		$query = "UPDATE `" . SQL_PREFIX . "users`\n"
+			."SET `password`='$password'\n"
+			."WHERE `uid`='$uid'";
+
+		$this->dbh->query($query)
+			or $this->db_error(__('Error updating password.'),
+					$query);
+	}
+
+    /**
+     * @param int $uid
+     * @param string $timezone
+     */
+	function set_timezone($uid, $timezone)
+	{
+		$query = "UPDATE `" . SQL_PREFIX . "users`\n"
+			."SET `timezone`='$timezone'\n"
+			."WHERE `uid`='$uid'";
+
+		$this->dbh->query($query)
+			or $this->db_error(__('Error updating timezone.'),
+					$query);
+	}
+
+    /**
+     * @param int $uid
+     * @param string $language
+     */
+	function set_language($uid, $language)
+	{
+		$query = "UPDATE `" . SQL_PREFIX . "users`\n"
+			."SET `language`='$language'\n"
+			."WHERE `uid`='$uid'";
+
+		$this->dbh->query($query)
+			or $this->db_error(__('Error updating language.'),
+					$query);
+	}
+
+    /**
+     * @param int $uid
+     * @param int $gid
+     */
+	function user_add_group($uid, $gid) {
+		$user_groups_table = SQL_PREFIX . 'user_groups';
+
+		$query = "INSERT INTO `$user_groups_table`\n"
+			."(`gid`, `uid`) VALUES\n"
+			."('$gid', '$uid')";
+
+		$this->dbh->query($query)
+			or $this->db_error(__('Error adding group to user.'),
+					$query);
+	}
+
+    /**
+     * @param int $uid
+     * @param int $gid
+     */
+	function user_remove_group($uid, $gid) {
+		$user_groups_table = SQL_PREFIX . 'user_groups';
+
+		$query = "DELETE FROM `$user_groups_table`\n"
+			."WHERE `uid` = '$uid' AND `gid` = '$gid'";
+
+		$this->dbh->query($query)
+			or $this->db_error(__('Error removing group from user.'), $query);
+	}
+
+    /**
+     * @param int $cid
+     * @param int $uid
+     * @param string $subject
+     * @param string $description
+     * @param bool $readonly
+     * @param bool|string $catid
+     * @return mixed
+     */
+	function create_event($cid, $uid, $subject, $description, $readonly,
+			$catid = false)
+	{
+		$fmt_readonly = asbool($readonly);
+
+		if(!$catid)
+			$catid = 'NULL';
+		else
+			$catid = "'$catid'";
+
+		$query = "INSERT INTO `" . SQL_PREFIX . "events`\n"
+			."(`cid`, `owner`, `subject`, `description`, "
+			."`readonly`, `catid`)\n"
+			."VALUES ('$cid', '$uid', '$subject', '$description', "
+			."$fmt_readonly, $catid)";
+
+		$this->dbh->query($query)
+			or $this->db_error(__('Error creating event.'), $query);
+
+		$eid = $this->dbh->insert_id;
+
+		if($eid <= 0)
+			soft_error("Bad eid creating event.");
+
+		return $eid;
+	}
+
+    /**
+     * @param int $eid
+     * @param int $time_type
+     * @param int $start_ts
+     * @param int $end_ts
+     * @return mixed
+     */
+	function create_occurrence($eid, $time_type, $start_ts, $end_ts)
+	{
+
+		$query = "INSERT INTO `" . SQL_PREFIX . "occurrences`\n"
+			."SET `eid` = '$eid', `time_type` = '$time_type'";
+
+		if($time_type == 0) {
+			$query .= ", `start_ts` = FROM_UNIXTIME('$start_ts')"
+				. ", `end_ts` = FROM_UNIXTIME('$end_ts')";
+		} else {
+			$start_date = date("Y-m-d", $start_ts);
+			$end_date = date("Y-m-d", $end_ts);
+			$query .= ", `start_date` = '$start_date'"
+				. ", `end_date` = '$end_date'";
+		}
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error creating occurrence.'),
+					$query);
+
+		return $this->dbh->insert_id;
+	}
+
+    /**
+     * @param int $oid
+     * @param int $time_type
+     * @param int $start_ts
+     * @param int $end_ts
+     * @return bool
+     */
+	function modify_occurrence($oid, $time_type, $start_ts, $end_ts)
+	{
+
+		$query = "UPDATE `" . SQL_PREFIX . "occurrences`\n"
+			."SET `time_type` = '$time_type'";
+
+		if($time_type == 0) {
+			$query .= ", `start_ts` = FROM_UNIXTIME('$start_ts')"
+				. ", `end_ts` = FROM_UNIXTIME('$end_ts')"
+				. ", `start_date` = NULL"
+				. ", `end_date` = NULL";
+		} else {
+			$start_date = date("Y-m-d", $start_ts);
+			$end_date = date("Y-m-d", $end_ts);
+			$query .= ", `start_date` = '$start_date'"
+				. ", `end_date` = '$end_date'"
+				. ", `start_ts` = NULL"
+				. ", `end_ts` = NULL";
+		}
+
+		$query .= "\nWHERE `oid`='$oid'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error modifying occurrence.'),
+					$query);
+
+		return $this->dbh->affected_rows > 0;
+	}
+
+    /**
+     * @param int $eid
+     * @param string $subject
+     * @param string $description
+     * @param bool $readonly
+     * @param bool|int $catid
+     * @return bool
+     */
+	function modify_event($eid, $subject, $description, $readonly,
+			$catid = false)
+	{
+		$fmt_readonly = asbool($readonly);
+
+		$query = "UPDATE `" . SQL_PREFIX . "events`\n"
+			."SET\n"
+			."`subject`='$subject',\n"
+			."`description`='$description',\n"
+			."`readonly`=$fmt_readonly,\n"
+			."`mtime`=NOW(),\n"
+			.($catid !== false ? "`catid`='$catid'\n"
+				: "`catid`=NULL\n")
+			."WHERE eid='$eid'";
+
+		$this->dbh->query($query)
+			or $this->db_error(__('Error modifying event.'), $query);
+
+		return $this->dbh->affected_rows > 0;
+	}
+
+    /**
+     * @param int $cid
+     * @param string $name
+     * @param string $text_color
+     * @param string $bg_color
+     * @param bool|int $gid
+     * @return mixed
+     */
+	function create_category($cid, $name, $text_color, $bg_color,
+			$gid = false) {
+		$gid_key = $gid ? ', `gid`' : '';
+		$gid_value = $gid ? ", '$gid'" : '';
+		$query = "INSERT INTO `" . SQL_PREFIX . "categories`\n"
+			."(`cid`, `name`, `text_color`, `bg_color`$gid_key)\n"
+			."VALUES ('$cid', '$name', '$text_color', '$bg_color'$gid_value)";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error creating category.'),
+					$query);
+		
+		return $this->dbh->insert_id;
+	}
+
+    /**
+     * @param int $cid
+     * @param string $name
+     * @return mixed
+     */
+	function create_group($cid, $name)
+	{
+		$query = "INSERT INTO `" . SQL_PREFIX . "groups`\n"
+			."(`cid`, `name`)\n"
+			."VALUES ('$cid', '$name')";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error creating group.'), $query);
+		
+		return $this->dbh->insert_id;
+	}
+
+    /**
+     * @param int $catid
+     * @param string $name
+     * @param string $text_color
+     * @param string $bg_color
+     * @param int $gid
+     * @return bool
+     */
+	function modify_category($catid, $name, $text_color, $bg_color, $gid)
+	{
+		$query = "UPDATE " . SQL_PREFIX . "categories\n"
+			."SET\n"
+			."`name`='$name',\n"
+			."`text_color`='$text_color',\n"
+			."`bg_color`='$bg_color',\n"
+			."`gid`='$gid'\n"
+			."WHERE `catid`='$catid'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error modifying category.'),
+					$query);
+
+		return $this->dbh->affected_rows > 0;
+	}
+
+    /**
+     * @param int $gid
+     * @param string $name
+     * @return bool
+     */
+	function modify_group($gid, $name)
+	{
+		$query = "UPDATE " . SQL_PREFIX . "groups\n"
+			."SET `name`='$name'\n"
+			."WHERE `gid`='$gid'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__('Error modifying group.'),
+					$query);
+
+		return $this->dbh->affected_rows > 0;
+	}
+
+    /**
+     * @param int $cid
+     * @param string[] $keywords
+     * @param int $start
+     * @param int $end
+     * @param string $sort
+     * @param string $order
+     * @return PhpcOccurrence[]
+     */
+	function search($cid, $keywords, $start, $end, $sort, $order) {
+		$events_table = SQL_PREFIX . 'events';
+		$occurrences_table = SQL_PREFIX . 'occurrences';
+		$users_table = SQL_PREFIX . 'users';
+		$cats_table = SQL_PREFIX . 'categories';
+		$start_str = "FROM_UNIXTIME('$start')";
+		$end_str = "FROM_UNIXTIME('$end')";
+
+		$words = array();
+		foreach($keywords as $keyword) {
+			$words[] = "(`subject` LIKE '%$keyword%' "
+				."OR `description` LIKE '%$keyword%')\n";
+		}
+		$where = implode(' AND ', $words);
+
+		if($start)
+			$where .= "AND IF(`start_ts`, `start_ts` <= $end_str, `start_date` <= DATE($start_str))\n";
+		if($end)
+			$where .= "AND IF(`end_ts`, `end_ts` >= $start_str, `end_date` >= DATE($end_str))\n";
+
+                $query = "SELECT " . $this->get_occurrence_fields()
+			.", `username`, `name`, `bg_color`, `text_color`\n"
+			."FROM `$events_table`\n"
+                        ."INNER JOIN `$occurrences_table` USING (`eid`)\n"
+			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
+			."LEFT JOIN `$cats_table` USING (`catid`)\n"
+			."WHERE ($where)\n"
+			."AND `$events_table`.`cid` = '$cid'\n"
+			."ORDER BY `$sort` $order";
+
+		if(!($result = $this->dbh->query($query)))
+			$this->db_error(__('Error during searching'), $query);
+
+		$events = array();
+		while($row = $result->fetch_assoc()) {
+			$events[] = new PhpcOccurrence($row);
+		}
+		return $events;
+	}
+
+    /**
+     * @param int $cid
+     * @param int $uid
+     * @param array $perms
+     */
+	function update_permissions($cid, $uid, $perms)
+	{
+		$names = array();
+		$values = array();
+		$sets = array();
+		foreach($perms as $name => $value) {
+			$names[] = "`$name`";
+			$values[] = $value;
+			$sets[] = "`$name`=$value";
+		}
+
+		$query = "INSERT INTO ".SQL_PREFIX."permissions\n"
+			."(`cid`, `uid`, ".implode(", ", $names).")\n"
+			."VALUES ('$cid', '$uid', ".implode(", ", $values).")\n"
+			."ON DUPLICATE KEY UPDATE ".implode(", ", $sets);
+
+		if(!($sth = $this->dbh->query($query)))
+			$this->db_error(__('Error updating user permissions.'),
+					$query);
+	}
+
+    /**
+     * @param int $uid
+     * @param int $series
+     * @return bool
+     */
+	function get_login_token($uid, $series) {
+		$query = "SELECT token FROM ".SQL_PREFIX."logins\n"
+			."WHERE `uid`='$uid' AND `series`='$series'";
+
+		$sth = $this->dbh->query($query)
+			or $this->db_error(__("Error getting login token."),
+					$query);
+
+		$result = $sth->fetch_assoc();
+		if(!$result)
+			return false;
+		return $result["token"];
+	}
+
+    /**
+     * @param int $uid
+     * @param int $series
+     * @param int $token
+     */
+	function add_login_token($uid, $series, $token) {
+		$query = "INSERT INTO ".SQL_PREFIX."logins\n"
+			."(`uid`, `series`, `token`)\n"
+			."VALUES ('$uid', '$series', '$token')";
+
+		$this->dbh->query($query)
+			or $this->db_error(__("Error adding login token."),
+					$query);
+	}
+
+    /**
+     * @param int $uid
+     * @param int $series
+     * @param int $token
+     */
+	function update_login_token($uid, $series, $token) {
+		$query = "UPDATE ".SQL_PREFIX."logins\n"
+			."SET `token`='$token', `atime`=NOW()\n"
+			."WHERE `uid`='$uid' AND `series`='$series'";
+
+		$this->dbh->query($query)
+			or $this->db_error(__("Error updating login token."),
+					$query);
+	}
+
+    /**
+     * @param int $uid
+     */
+	function remove_login_tokens($uid) {
+		$query = "DELETE FROM ".SQL_PREFIX."logins\n"
+			."WHERE `uid`='$uid'";
+
+		$this->dbh->query($query)
+			or $this->db_error(__("Error removing login tokens."),
+					$query);
+	}
+
+	function cleanup_login_tokens() {
+		$query = "DELETE FROM ".SQL_PREFIX."logins\n"
+			."WHERE `atime` < DATE_SUB(CURDATE(), INTERVAL 30 DAY)";
+
+		$this->dbh->query($query)
+			or $this->db_error(__("Error cleaning login tokens."),
+					$query);
+	}
+
+	// called when there is an error involving the DB
+
+    /**
+     * @param string $str
+     * @param string $query
+     * @throws Exception
+     */
+	function db_error($str, $query = "")
+	{
+		$string = $str . "<pre>" . phpc_html_escape($this->dbh->error)
+			. "</pre>";
+		if($query != "") {
+			$string .= "<pre>" . __('SQL query') . ": "
+				. phpc_html_escape($query)
+				. "</pre>";
+		}
+		throw new Exception($string);
+	}
+
+}
diff --git a/src/phpcevent.class.php b/src/phpcevent.class.php
new file mode 100644
index 0000000..4d7201f
--- /dev/null
+++ b/src/phpcevent.class.php
@@ -0,0 +1,217 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+class PhpcEvent {
+    /** @var int */
+	var $eid;
+    /** @var int */
+	var $cid;
+    /** @var int */
+	var $uid;
+    /** @var string */
+	var $author;
+    /** @var string */
+	var $subject;
+    /** @var string */
+	var $desc;
+    /** @var bool */
+	var $readonly;
+    /** @var string */
+	var $category;
+    /** @var string */
+	var $bg_color;
+    /** @var string */
+	var $text_color;
+    /** @var int */
+	var $catid;
+    /** @var int */
+	var $gid;
+	var $ctime;
+	var $mtime;
+    /** @var PhpcCalendar */
+	var $cal;
+
+    /**
+     * PhpcEvent constructor.
+     * @param string[] $event
+     */
+	function __construct($event)
+	{
+        global $phpcdb;
+
+        $this->eid = intval($event['eid']);
+        $this->cid = intval($event['cid']);
+        $this->uid = intval($event['owner']);
+		if(empty($event['owner']))
+			$this->author = __('anonymous');
+		elseif(empty($event['username']))
+			$this->author = __('unknown');
+		else
+			$this->author = $event['username'];
+		$this->subject = $event['subject'];
+		$this->desc = $event['description'];
+        $this->readonly = intval($event['readonly']) != 0;
+		$this->category = $event['name'];
+		$this->bg_color = $event['bg_color'];
+		$this->text_color = $event['text_color'];
+        $this->catid = intval($event['catid']);
+        $this->gid = intval($event['gid']);
+		$this->ctime = $event['ctime'];
+		$this->mtime = $event['mtime'];
+        $this->cal = $phpcdb->get_calendar($this->cid);
+	}
+
+    /**
+     * @return string
+     */
+	function get_raw_subject() {
+		return phpc_html_escape($this->subject);
+	}
+
+    /**
+     * @return string
+     */
+	function get_subject()
+	{
+		if(empty($this->subject))
+			return __('(No subject)');
+
+		return phpc_html_escape(stripslashes($this->subject));
+	}
+
+    /**
+     * @return string
+     */
+	function get_author()
+	{
+		return $this->author;
+	}
+
+    /**
+     * @return int
+     */
+	function get_uid()
+	{
+		return $this->uid;
+	}
+
+    /**
+     * @return string
+     */
+	function get_raw_desc() {
+		// Don't allow tags and make the description HTML-safe
+		return phpc_html_escape($this->desc);
+	}
+
+    /**
+     * @return string
+     */
+	function get_desc()
+	{
+		return $this->desc;
+	}
+
+    /**
+     * @return int
+     */
+	function get_eid()
+	{
+		return $this->eid;
+	}
+
+    /**
+     * @return int
+     */
+	function get_cid()
+	{
+		return $this->cid;
+	}
+
+    /**
+     * @return bool
+     */
+	function is_readonly()
+	{
+		return $this->readonly;
+	}
+
+    /**
+     * @return string
+     */
+	function get_text_color()
+	{
+		return phpc_html_escape($this->text_color);
+	}
+
+    /**
+     * @return string
+     */
+	function get_bg_color()
+	{
+		return phpc_html_escape($this->bg_color);
+	}
+
+    /**
+     * @return string
+     */
+	function get_category()
+	{
+		if(empty($this->category))
+			return $this->category;
+		return phpc_html_escape($this->category);
+	}
+
+    /**
+     * @return bool
+     */
+	function is_owner() {
+		global $phpc_user;
+        /** @var PhpcUser $phpc_user */
+
+		return $phpc_user->get_uid() == $this->get_uid();
+	}
+
+	// returns whether or not the current user can modify $event
+	function can_modify()
+	{
+		return $this->cal->can_admin() || $this->is_owner()
+			|| ($this->cal->can_modify() && !$this->is_readonly());
+	}
+
+	// returns whether or not the current user can read $event
+	function can_read() {
+		global $phpcdb, $phpc_user;
+        /** @var PhpcUser $phpc_user */
+
+		$visible_category = empty($this->gid) || !isset($this->catid)
+			|| $phpcdb->is_cat_visible($phpc_user->get_uid(),
+					$this->catid);
+		return $this->cal->can_read() && $visible_category;
+	}
+
+	function get_ctime_string() {
+		return format_timestamp_string($this->ctime,
+				$this->cal->date_format,
+				$this->cal->hours_24);
+	}
+
+	function get_mtime_string() {
+		return format_timestamp_string($this->mtime,
+				$this->cal->date_format,
+				$this->cal->hours_24);
+	}
+}
diff --git a/src/phpcoccurrence.class.php b/src/phpcoccurrence.class.php
new file mode 100644
index 0000000..793a74d
--- /dev/null
+++ b/src/phpcoccurrence.class.php
@@ -0,0 +1,286 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+require_once("$phpc_includes_path/phpcevent.class.php");
+
+class PhpcOccurrence extends PhpcEvent
+{
+    /** @var int */
+	var $oid;
+	var $start_year;
+	var $start_month;
+	var $start_day;
+	var $end_year;
+	var $end_month;
+	var $end_day;
+	var $time_type;
+	var $start_hour = NULL;
+	var $start_minute = NULL;
+	var $end_hour = NULL;
+	var $end_minute = NULL;
+	var $duration;
+
+	function __construct($event) {
+		parent::__construct($event);
+
+        $this->oid = intval($event['oid']);
+
+		if(!empty($event['start_ts'])) {
+			$start_ts = $event['start_ts'];
+			$this->start_year = date('Y', $start_ts);
+			$this->start_month = date('n', $start_ts);
+			$this->start_day = date('j', $start_ts);
+			$this->start_hour = date('H', $start_ts);
+			$this->start_minute = date('i', $start_ts);
+		}
+
+		if(!empty($event['start_date'])) {
+			if(preg_match('/^(\d{4})(\d{2})(\d{2})$/',
+						$event['start_date'],
+						$start_matches) < 1) {
+				soft_error(__('DB returned an invalid date.')
+						. "({$event['start_date']})");
+			}
+			$this->start_year = $start_matches[1];
+			$this->start_month = $start_matches[2];
+			$this->start_day = $start_matches[3];
+		}
+
+		if(!empty($event['end_ts'])) {
+			$end_ts = $event['end_ts'];
+			$this->end_year = date('Y', $end_ts);
+			$this->end_month = date('n', $end_ts);
+			$this->end_day = date('j', $end_ts);
+			$this->end_hour = date('H', $end_ts);
+			$this->end_minute = date('i', $end_ts);
+		}
+
+		if(!empty($event['end_date'])) {
+			if(preg_match('/^(\d{4})(\d{2})(\d{2})$/',
+						$event['end_date'],
+						$end_matches) < 1) {
+				soft_error(__('DB returned an invalid date.')
+						. "({$event['start_date']})");
+			}
+			$this->end_year = $end_matches[1];
+			$this->end_month = $end_matches[2];
+			$this->end_day = $end_matches[3];
+		}
+		
+		$this->time_type = $event['time_type'];
+		
+		if(!empty($event['end_ts'])) {
+		
+		$this->duration=$event['end_ts'] - $event['start_ts'];
+		}
+	}
+
+	// formats the time according to type
+	// returns the formatted string
+	function get_time_string()
+	{
+		switch($this->time_type) {
+			default:
+				return $this->get_start_time();
+			case 1: // FULL DAY
+			case 3: // None
+				return '';
+			case 2:
+				return __('TBA');
+		}
+	}
+
+	function get_time_span_string()
+	{
+		switch($this->time_type) {
+			default:
+				$start_time = $this->get_start_time();
+				$end_time = $this->get_end_time();
+				return $start_time.' '.__('to').' '.$end_time;
+			case 1: // FULL DAY
+			case 3: // None
+				return '';
+			case 2:
+				return __('TBA');
+		}
+	}
+		
+	function get_start_year()
+	{
+		return $this->start_year;
+	}
+
+	function get_start_month()
+	{
+		return $this->start_month;
+	}
+
+	function get_start_day()
+	{
+		return $this->start_day;
+	}
+
+	function get_end_year()
+	{
+		return $this->end_year;
+	}
+
+	function get_end_month()
+	{
+		return $this->end_month;
+	}
+
+	function get_end_day()
+	{
+		return $this->end_day;
+	}
+
+	function get_start_hour()
+	{
+                return $this->start_hour;
+	}
+
+	function get_start_minute()
+	{
+		return $this->start_minute;
+	}
+
+	function get_end_hour()
+	{
+                return $this->end_hour;
+	}
+
+	function get_end_minute()
+	{
+		return $this->end_minute;
+	}
+
+	function get_start_date() {
+		return format_date_string($this->start_year, $this->start_month,
+				$this->start_day,
+				$this->cal->date_format);
+	}
+
+	function get_short_start_date() {
+		return format_short_date_string($this->start_year,
+				$this->start_month, $this->start_day,
+				$this->cal->date_format);
+	}
+
+	function get_start_time() {
+		if($this->start_hour == NULL || $this->start_minute == NULL)
+			return NULL;
+
+		return format_time_string($this->start_hour,
+				$this->start_minute,
+				$this->cal->hours_24);
+	}
+
+	function get_end_date() {
+		return format_date_string($this->end_year, $this->end_month,
+				$this->end_day,
+				$this->cal->date_format);
+	}
+
+	function get_short_end_date() {
+		return format_short_date_string($this->end_year,
+				$this->end_month, $this->end_day,
+				$this->cal->date_format);
+	}
+
+	function get_end_time() {
+		if($this->end_hour == NULL || $this->end_minute == NULL)
+			return NULL;
+
+		return format_time_string($this->end_hour,
+				$this->end_minute,
+				$this->cal->hours_24);
+	}
+
+	function get_start_timestamp() {
+		return mktime(0, 0, 0, $this->get_start_month(),
+				$this->get_start_day(),
+				$this->get_start_year());
+	}
+
+	function get_end_timestamp() {
+		$hour = $this->end_hour ? $this->end_hour : 23;
+		$minute = $this->end_minute ? $this->end_minute : 59;
+		return mktime($hour, $minute, 59, $this->get_end_month(),
+				$this->get_end_day(), $this->get_end_year());
+	}
+
+	// takes start and end dates and returns a nice display
+	function get_date_string()
+	{
+		$start_time = $this->get_start_timestamp();
+		$end_time = $this->get_end_timestamp();
+
+		$str = $this->get_start_date();
+
+		if($start_time != $end_time)
+			$str .= ' - ' . $this->get_end_date();
+
+		return $str;
+	}
+	
+	function get_datetime_string()
+	{
+		if ($this->duration <= 86400 && $this->start_day==$this->end_day)
+		{
+		//normal behaviour
+		
+		$event_time = $this->get_time_span_string();
+		if(!empty($event_time))
+			$event_time = ' ' . __('at') . " $event_time";
+	
+		$str= $this->get_date_string() . $event_time;	
+		}
+		else
+		{
+		//format on multiple days
+	
+			$str = ' ' . __('From') . ' ' . $this->get_start_date()
+				. ' ' .	__('at') . ' ' . $this->get_start_time()
+				. ' ' . __('to') . ' ' . $this->get_end_date()
+				. ' ' . __('at') . ' ' . $this->get_end_time();	
+			
+		}
+		return $str;
+	}
+
+	function get_oid()
+	{
+		return $this->oid;
+	}
+
+	function get_time_type() {
+		return $this->time_type;
+	}
+
+	function get_start_ts() {
+		$start_hour = $this->start_hour;
+		if($start_hour == NULL)
+			$start_hour = 0;
+		$start_minute = $this->start_minute;
+		if($start_minute == NULL);
+			$start_minute = 0;
+		return mktime($start_hour, $start_minute, 0,
+				$this->start_month, $this->start_day,
+				$this->start_year);
+	}
+}
diff --git a/src/phpcuser.class.php b/src/phpcuser.class.php
new file mode 100644
index 0000000..86e2909
--- /dev/null
+++ b/src/phpcuser.class.php
@@ -0,0 +1,106 @@
+<?php
+/*
+ * Copyright 2009 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+class PhpcUser {
+    /** @var int */
+	var $uid;
+    /** @var string */
+	var $username;
+    /** @var string */
+	var $password;
+    /** @var bool */
+	var $admin;
+    /** @var bool */
+	var $password_editable;
+    /** @var string */
+    var $timezone;
+    /** @var string */
+	var $language;
+    /** @var array */
+	var $groups;
+
+    /**
+     * PhpcUser constructor.
+     * @param string[] $result
+     */
+    function __construct($result)
+	{
+        $this->uid = intval($result['uid']);
+		$this->username = $result['username'];
+		$this->password = $result['password'];
+        $this->admin = intval($result['admin']) != 0;
+        $this->password_editable = intval($result['password_editable']) != 0;
+		$this->timezone = $result['timezone'];
+		$this->language = $result['language'];
+	}
+
+    /**
+     * @return string
+     */
+	function get_username()
+	{
+		return $this->username;
+	}
+
+    /**
+     * @return int
+     */
+	function get_uid()
+	{
+		return $this->uid;
+	}
+
+    /**
+     * @return string
+     */
+	function get_password() {
+		return $this->password;
+	}
+
+    /**
+     * @return bool
+     */
+	function is_password_editable() {
+		return $this->password_editable;
+	}
+
+    /**
+     * @return string
+     */
+	function get_timezone() {
+		return $this->timezone;
+	}
+
+    /**
+     * @return string
+     */
+	function get_language() {
+		return $this->language;
+	}
+
+    /**
+     * @return array
+     */
+	function get_groups() {
+		global $phpcdb;
+
+		if(!isset($this->groups))
+			$this->groups = $phpcdb->get_user_groups($this->uid);
+
+		return $this->groups;
+	}
+}
diff --git a/src/search.php b/src/search.php
new file mode 100644
index 0000000..97fa9e9
--- /dev/null
+++ b/src/search.php
@@ -0,0 +1,138 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+        die("Hacking attempt");
+}
+
+require_once("$phpc_includes_path/form.php");
+
+/**
+ * @return Html
+ */
+function search_results()
+{
+	global $vars, $phpcdb, $phpcid, $sort_options, $order_options;
+
+	$searchstring = $vars['searchstring'];
+	if(!empty($vars['search-from-date'])
+			&& strlen($vars['search-from-date']) > 0)
+		$start = get_timestamp('search-from');
+	else
+		$start = false;
+	if(!empty($vars['search-to-date'])
+			&& strlen($vars['search-to-date']) > 0)
+		$end = get_timestamp('search-to', 23, 59, 59);
+	else
+		$end = false;
+
+        // make sure sort is valid
+	$sort = phpc_html_escape($vars['sort']);
+        if(array_search($sort, array_keys($sort_options)) === false) {
+                soft_error(__('Invalid sort option') . ": $sort");
+        }
+
+        // make sure order is valid
+	$order = phpc_html_escape($vars['order']);
+        if(array_search($order, array_keys($order_options)) === false) {
+                soft_error(__('Invalid order option') . ": $order");
+        }
+
+	$keywords = explode(" ", $searchstring);
+
+	$results = $phpcdb->search($phpcid, $keywords, $start, $end, $sort,
+			$order);
+
+	$tags = array();
+	foreach ($results as $event) {
+		if(!$event->can_read())
+			continue;
+
+		$subject = $event->get_subject();
+		$desc = $event->get_desc();
+		$date = $event->get_date_string();
+		$time = $event->get_time_string();
+		$eid = $event->get_eid();
+
+		$tags[] = tag('tr',
+				tag('td',
+					tag('strong',
+						create_event_link(
+							$subject,
+							'display_event',
+							$eid)
+					   )),
+				tag('td', "$date $time"),
+				tag('td', $desc));
+	}
+
+	if(sizeof($tags) == 0) {
+		$html = tag('div', tag('strong',
+					__('No events matched your search criteria.')));
+	} else {
+		$html = tag('table',
+				attributes('class="phpc-main"'),
+				tag('caption', __('Search Results')),
+				tag('thead',
+					tag('tr',
+						tag('th', __('Subject')),
+						tag('th', __('Date Time')),
+						tag('th', __('Description')))));
+		foreach($tags as $tag) $html->add($tag);
+	}
+
+	return $html;
+}
+
+/**
+ * @return Html
+ */
+function search_form()
+{
+    global $phpc_script, $sort_options, $order_options, $phpcid, $phpc_cal;
+	
+	$date_format = $phpc_cal->date_format;
+ 
+	$form = new Form($phpc_script, __('Search'),'post');
+    	$form->add_part(new FormFreeQuestion('searchstring', __('Phrase'),
+				false, 32, true));
+	$form->add_hidden('action', 'search');
+	$form->add_hidden('phpcid', $phpcid);
+	$form->add_part(new FormDateQuestion('search-from', __('From'),
+				$date_format));
+	$form->add_part(new FormDateQuestion('search-to', __('To'),
+				$date_format));
+	$sort = new FormDropdownQuestion('sort', __('Sort By'));
+	$sort->add_options($sort_options);
+	$form->add_part($sort);
+	$order = new FormDropdownQuestion('order', __('Order'));
+	$order->add_options($order_options);
+	$form->add_part($order);
+	$form->add_part(new FormSubmitButton(__("Search")));
+	return $form->get_form();
+}
+
+/**
+ * @return Html
+ */
+function search()
+{
+	global $vars;
+
+	if(isset($vars['searchstring'])) return search_results();
+	return search_form();
+}
diff --git a/src/settings.php b/src/settings.php
new file mode 100644
index 0000000..25e3d3e
--- /dev/null
+++ b/src/settings.php
@@ -0,0 +1,151 @@
+<?php 
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function settings()
+{
+    /** @var PhpcUser $phpc_user */
+    global $vars, $phpc_user;
+
+	if(!empty($vars["phpc_submit"]))
+		settings_submit();
+
+	$index = tag('ul',
+			tag('li', tag('a', attrs('href="#phpc-config"'),
+					__('Settings'))));
+	$forms = array();
+
+	$forms[] = config_form();
+
+	if(is_user() && $phpc_user->is_password_editable()) {
+		$forms[] = password_form();
+		$index->add(tag('li', tag('a', attrs('href="#phpc-password"'),
+						__('Password'))));
+	}
+
+	return tag('div', attrs('class="phpc-tabs"'), $index, $forms);
+}
+
+/**
+ * @return Html
+ */
+function password_form()
+{
+	global $phpc_script, $phpc_token;
+
+	$form = tag('form', attributes("action=\"$phpc_script\"",
+                                'method="post"'),
+			tag('table', attributes("class=\"phpc-container\""),
+				tag('caption', __('Change Password')),
+				tag('tfoot',
+					tag('tr',
+						tag('td', attributes('colspan="2"'),
+							create_hidden('phpc_token', $phpc_token),
+							create_hidden('action', 'password_submit'),
+							create_submit(__('Submit'))))),
+				tag('tbody',
+					tag('tr',
+						tag('th', __('Old Password')),
+						tag('td', create_password('old_password'))),
+					tag('tr',
+						tag('th', __('New Password')),
+						tag('td', create_password('password1'))),
+					tag('tr',
+						tag('th', __('Confirm New Password')),
+						tag('td', create_password('password2')))
+				   )));
+
+	return tag('div', attrs('id="phpc-password"'), $form);
+}
+
+/**
+ * @return Html
+ */
+function config_form()
+{
+	global $phpc_script, $phpc_user_tz, $phpc_user_lang, $phpc_token;
+
+	$tz_input = create_multi_select('timezone', get_timezone_list(),
+			$phpc_user_tz);
+
+	$languages = array("" => __("Default"));
+	foreach(get_languages() as $lang) {
+		$languages[$lang] = $lang;
+	}
+	$lang_input = create_select('language', $languages,
+			$phpc_user_lang);
+
+	$form = tag('form', attributes("action=\"$phpc_script\"",
+				'method="post"'),
+			tag('table', attributes("class=\"phpc-container\""),
+				tag('caption', __('Settings')),
+				tag('tfoot',
+					tag('tr',
+						tag('td', attributes('colspan="2"'),
+							create_hidden('phpc_token', $phpc_token),
+							create_hidden('action', 'settings'),
+							create_hidden('phpc_submit', 'settings'),
+							create_submit(__('Submit'))))),
+				tag('tbody',
+					tag('tr',
+						tag('th', __('Timezone')),
+						tag('td', $tz_input)),
+					tag('tr',
+						tag('th', __('Language')),
+						tag('td', $lang_input))
+				   )));
+
+	return tag('div', attrs('id="phpc-config"'), $form);
+}
+
+function settings_submit()
+{
+    /** @var PhpcUser $phpc_user */
+    global $vars, $phpcdb, $phpc_user_tz, $phpc_user_lang,
+	       $phpc_prefix, $phpc_user;
+
+	verify_token();
+
+	// Expire 20 years in the future, give or take.
+	$expiration_time = time() + 20 * 365 * 24 * 60 * 60;
+	// One hour in the past
+	$past_time = time() - 3600;
+	if(!empty($vars["timezone"]))
+		phpc_set_cookie("{$phpc_prefix}tz", $vars['timezone'], $expiration_time);
+	else
+		phpc_set_cookie("{$phpc_prefix}tz", '', $past_time);
+	if(!empty($vars["language"]))
+		phpc_set_cookie("{$phpc_prefix}lang", $vars['language'], $expiration_time);
+	else
+		phpc_set_cookie("{$phpc_prefix}lang", '', $past_time);
+
+	if(is_user()) {
+		$uid = $phpc_user->get_uid();
+		$phpcdb->set_timezone($uid, $vars['timezone']);
+		$phpcdb->set_language($uid, $vars['language']);
+		$phpc_user_tz = $vars["timezone"];
+		$phpc_user_lang = $vars["language"];
+	}
+
+    message(__('Settings updated.'));
+}
diff --git a/src/setup.php b/src/setup.php
new file mode 100644
index 0000000..0355927
--- /dev/null
+++ b/src/setup.php
@@ -0,0 +1,223 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+   This file sets up the global variables to be used later
+*/
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+// Run the installer if we have no config file
+// This doesn't work when embedded from outside
+if(!file_exists($phpc_config_file)) {
+        redirect('install.php');
+        exit;
+}
+require_once($phpc_config_file);
+if(!defined('SQL_TYPE')) {
+        redirect('install.php');
+        exit;
+}
+
+if(defined('PHPC_DEBUG')) {
+	error_reporting(E_ALL);
+	ini_set('display_errors', 1);
+	ini_set('html_errors', 1);
+}
+
+$phpc_prefix = "phpc_" . SQL_PREFIX . SQL_DATABASE;
+
+require_once("$phpc_includes_path/calendar.php");
+
+// Make the database connection.
+require_once("$phpc_includes_path/phpcdatabase.class.php");
+if(!defined("SQL_PORT"))
+	define("SQL_PORT", ini_get("mysqli.default_port"));
+$phpcdb = new PhpcDatabase(SQL_HOST, SQL_USER, SQL_PASSWD, SQL_DATABASE,
+		SQL_PORT);
+
+session_set_cookie_params(0, "", "", false, true);
+session_start();
+
+if(empty($_SESSION["{$phpc_prefix}uid"])) {
+	if(!empty($_COOKIE["{$phpc_prefix}login"])
+			&& !empty($_COOKIE["{$phpc_prefix}uid"])
+			&& !empty($_COOKIE["{$phpc_prefix}login_series"])) {
+		// Cleanup before we check their token so they can't login with
+		//   an ancient token
+		$phpcdb->cleanup_login_tokens();
+
+		$phpc_uid = $_COOKIE["{$phpc_prefix}uid"];
+		$phpc_login_series = $_COOKIE["{$phpc_prefix}login_series"];
+		$phpc_token = $phpcdb->get_login_token($phpc_uid,
+					$phpc_login_series);
+		if($phpc_token) {
+			if($phpc_token == $_COOKIE["{$phpc_prefix}login"]) {
+				$user = $phpcdb->get_user($phpc_uid);
+				phpc_do_login($user, $phpc_login_series);
+			} else {
+				$phpcdb->remove_login_tokens($phpc_uid);
+				soft_error(__("Possible hacking attempt on your account."));
+			}
+		} else {
+			$phpc_uid = 0;
+		}
+	}
+} else {
+	$phpc_token = $_SESSION["{$phpc_prefix}login"];
+}
+
+if(empty($phpc_token))
+	$phpc_token = '';
+
+// Create vars
+$vars = array_merge(real_escape_r($_GET), real_escape_r($_POST));
+
+// Find an appropriate calendar id
+if(!empty($vars['phpcid'])) {
+	if(!is_numeric($vars['phpcid']))
+		soft_error(__("Invalid calendar ID."));
+        $phpcid = $vars['phpcid'];
+} elseif(!empty($default_calendar_id)) {
+	$phpcid = $default_calendar_id;
+} else {
+	$phpcid = 1;
+}
+
+if (!$phpcdb->have_calendar($phpcid)) {
+    $phpcid = 1;
+    if (!$phpcdb->have_calendar($phpcid))
+        soft_error(__("Could not find a calendar."));
+}
+
+$phpc_cal = $phpcdb->get_calendar($phpcid);
+
+//set action
+if(empty($vars['action'])) {
+	$action = 'display_month';
+} else {
+	$action = $vars['action'];
+}
+
+if(empty($vars['contentType']))
+	$vars['contentType'] = "html";
+
+if(!empty($_SESSION["{$phpc_prefix}uid"])) {
+	$phpc_user = $phpcdb->get_user($_SESSION["{$phpc_prefix}uid"]);
+} else {
+	$anonymous = array('uid' => 0,
+			'username' => 'anonymous',
+			'password' => '',
+			'admin' => false,
+			'password_editable' => false,
+			'timezone' => NULL,
+			'language' => NULL,
+			);
+	if(isset($_COOKIE["{$phpc_prefix}tz"]))
+		$anonymous['timezone'] = $_COOKIE["{$phpc_prefix}tz"];
+	if(isset($_COOKIE["{$phpc_prefix}lang"]))
+		$anonymous['language'] = $_COOKIE["{$phpc_prefix}lang"];
+	$phpc_user = new PhpcUser($anonymous);
+}
+
+$phpc_user_lang = $phpc_user->get_language();
+$phpc_user_tz = $phpc_user->get_timezone();
+
+// setup translation stuff
+if(!empty($vars['lang'])) {
+	$phpc_lang = $vars['lang'];
+} elseif(!empty($phpc_user_lang)) {
+	$phpc_lang = $phpc_user_lang;
+} elseif(!empty($phpc_cal->language)) {
+	$phpc_lang = $phpc_cal->language;
+} elseif(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
+	$phpc_lang = substr(phpc_html_escape($_SERVER['HTTP_ACCEPT_LANGUAGE']),
+			0, 2);
+} else {
+	$phpc_lang = 'en';
+}
+
+if(!preg_match('/^\w+$/', $phpc_lang, $matches))
+	$phpc_lang = 'en';
+
+$phpc_gettext = new Gettext_PHP($phpc_locale_path, 'messages', $phpc_lang);
+
+// Must be included after translation is setup
+require_once("$phpc_includes_path/globals.php");
+
+if(!empty($vars['clearmsg']))
+	$_SESSION["{$phpc_prefix}messages"] = NULL;
+
+$phpc_messages = array();
+
+if(!empty($_SESSION["{$phpc_prefix}messages"])) {
+	foreach($_SESSION["{$phpc_prefix}messages"] as $message) {
+		$phpc_messages[] = $message;
+	}
+}
+
+if(!empty($phpc_user_tz))
+	$phpc_tz = $phpc_user_tz;
+else
+	$phpc_tz = $phpc_cal->timezone;
+
+if(!empty($phpc_tz))
+	date_default_timezone_set($phpc_tz); 
+$phpc_tz = date_default_timezone_get();
+
+// set day/month/year
+if(isset($vars['month']) && is_numeric($vars['month'])) {
+	$month = $vars['month'];
+	if($month < 1 || $month > 12)
+		display_error(__("Month is out of range."));
+} else {
+	$month = date('n');
+}
+
+if(isset($vars['year']) && is_numeric($vars['year'])) {
+	$time = mktime(0, 0, 0, $month, 1, $vars['year']);
+        if(!$time || $time < 0) {
+                display_error(__('Invalid year') . ": {$vars['year']}");
+        }
+	$year = date('Y', $time);
+} else {
+	$year = date('Y');
+}
+
+if(isset($vars['day']) && is_numeric($vars['day'])) {
+	$day = ($vars['day'] - 1) % date('t', mktime(0, 0, 0, $month, 1, $year))
+                + 1;
+} else {
+	if($month == date('n') && $year == date('Y')) {
+                $day = date('j');
+	} else {
+                $day = 1;
+        }
+}
+
+if ($vars["contentType"] == "json") {
+	header("Content-Type: application/json; charset=UTF-8");
+	echo do_action();
+	exit;
+}
+
+header("Content-Type: text/html; charset=UTF-8");
+header("X-Content-Type-Options: nosniff");
+header("X-Frame-Options: DENY");
+
diff --git a/src/translate.php b/src/translate.php
new file mode 100644
index 0000000..70f7878
--- /dev/null
+++ b/src/translate.php
@@ -0,0 +1,62 @@
+<?php
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+require_once("$phpc_includes_path/msgfmt-functions.php");
+
+/**
+ * @return Html
+ */
+function translate() {
+	global $phpc_locale_path;
+
+	if(!is_admin()) {
+		permission_error(__('Need to be admin'));
+		exit;
+	}
+
+	$handle = opendir($phpc_locale_path);
+
+	if(!$handle) {
+        soft_error("Error reading locale directory.");
+	}
+
+	$output_tag = tag('div', tag('h2', __('Translate')));
+	while(($filename = readdir($handle)) !== false) {
+		$pathname = "$phpc_locale_path/$filename";
+		if(strncmp($filename, ".", 1) == 0 || !is_dir($pathname))
+			continue;
+		$msgs_path = "$pathname/LC_MESSAGES";
+
+		$hash=	parse_po_file("$msgs_path/messages.po");
+		if ($hash === FALSE) {
+			print(nl2br("Error reading '$msgs_path/messages.po', aborted.\n"));
+		} else {
+			$out="$msgs_path/messages.mo";
+			write_mo_file($hash, $out);
+		}
+		$output_tag->add(tag('div', sprintf(__('Translated "%s"'),
+					$filename)));
+	}
+
+	closedir($handle);
+
+	return $output_tag;
+}
diff --git a/src/user_create.php b/src/user_create.php
new file mode 100644
index 0000000..7cdd424
--- /dev/null
+++ b/src/user_create.php
@@ -0,0 +1,120 @@
+<?php 
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function user_create() {
+	global $vars;
+
+        if(!is_admin()) {
+                return tag('div', __('Permission denied'));
+        }
+
+	if(!empty($vars['submit_form']))
+		process_form();
+
+	return display_form();
+
+}
+
+/**
+ * @return Html
+ */
+function display_form() {
+	global $phpc_script, $phpc_token, $phpcdb;
+
+	$groups = array();
+	foreach($phpcdb->get_groups() as $group) {
+		$groups[$group['gid']] = $group['name'];
+	}
+
+	$size = sizeof($groups);
+	if($size > 6)
+		$size = 6;
+
+	return tag('form', attributes("action=\"$phpc_script\"",
+                                'method="post"'),
+			tag('table', attributes("class=\"phpc-container\""),
+				tag('caption', __('Create User')),
+				tag('tfoot',
+					tag('tr',
+						tag('td', attributes('colspan="2"'),
+							create_hidden('phpc_token', $phpc_token),												
+							create_hidden('action', 'user_create'),												
+							create_hidden('submit_form', 'submit_form'),
+							create_submit(__('Submit'))))),
+				tag('tbody',
+					tag('tr',
+						tag('th', __('User Name')),
+						tag('td', create_text('user_name'))),
+					tag('tr',
+						tag('th', __('Password')),
+						tag('td', create_password('password1'))),
+					tag('tr',
+						tag('th', __('Confirm Password')),
+						tag('td', create_password('password2'))),
+					tag('tr',
+						tag('th', __('Make Admin')),
+						tag('td', create_checkbox('make_admin', '1', false, __('Admin')))),
+					tag('tr',
+						tag('th', __('Groups')),
+						tag('td', create_select('groups[]',
+								$groups, false, attrs('multiple', "size=\"$size\""))))
+				   )));
+}
+
+function process_form()
+{
+    global $vars, $phpcdb;
+
+	verify_token();
+
+        if(empty($vars['user_name'])) {
+                return message(__('You must specify a user name'));
+        }
+
+        if(empty($vars['password1'])) {
+                return message(__('You must specify a password'));
+        }
+
+        if(empty($vars['password2'])
+                || $vars['password1'] != $vars['password2']) {
+                return message(__('Your passwords did not match'));
+        }
+
+	$make_admin = empty($vars['make_admin']) ? 0 : 1;
+
+        $passwd = md5($vars['password1']);
+
+	if($phpcdb->get_user_by_name($vars["user_name"]))
+		return message(__('User already exists.'));
+	
+	$uid = $phpcdb->create_user($vars["user_name"], $passwd, $make_admin);
+
+	if(!empty($vars['groups'])) {
+		foreach($vars['groups'] as $gid) {
+			$phpcdb->user_add_group($uid, $gid);
+		}
+	}
+
+        return message(__('Added user.'));
+}
diff --git a/src/user_delete.php b/src/user_delete.php
new file mode 100644
index 0000000..d2aefbd
--- /dev/null
+++ b/src/user_delete.php
@@ -0,0 +1,72 @@
+<?php
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function user_delete()
+{
+	global $vars, $phpcid, $phpcdb, $phpc_script;
+
+	$html = tag('div', attributes('class="phpc-container"'));
+
+	if(!is_admin()) {
+		$html->add(tag('p', __('You must be an admin to delete users.')));
+		return $html;
+	}
+
+	if(empty($vars["uid"])) {
+		$html->add(tag('p', __('No user selected.')));
+		return $html;
+	}
+
+	if (is_array($vars["uid"])) {
+		$ids = $vars["uid"];
+	} else {
+		$ids = array($vars["uid"]);
+	}
+
+	if (empty($vars["confirm"])) {
+		$list = tag('ul');
+		foreach ($ids as $id) {
+			$user = $phpcdb->get_user($id);
+			$list->add(tag('li', "$id: ".$user->get_username()));
+		}
+		$html->add(tag('p', __('Confirm you want to delete:')));
+		$html->add($list);
+		$html->add(" [ ", create_action_link(__('Confirm'),
+					"user_delete", array("uid" => $ids,
+						"confirm" => "1")), " ] ");
+		$html->add(" [ ", create_action_link(__('Deny'),
+					"display_month"), " ] ");
+		return $html;
+	}
+
+	foreach($ids as $id) {
+		if($phpcdb->delete_user($id)) {
+			$html->add(tag('p', __("Removed user: $id")));
+		} else {        
+			$html->add(tag('p', __("Could not remove user: $id")));
+		}
+	}
+
+        return message_redirect($html, "$phpc_script?action=admin&phpcid=$phpcid");
+}
diff --git a/src/user_groups.php b/src/user_groups.php
new file mode 100644
index 0000000..89c2670
--- /dev/null
+++ b/src/user_groups.php
@@ -0,0 +1,106 @@
+<?php 
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function user_groups() {
+	global $vars, $phpc_cal;
+
+        if(!$phpc_cal->can_admin()) {
+                return tag('div', __('Permission denied'));
+        }
+
+	if(!empty($vars['submit_form']))
+		process_form();
+
+	return display_form();
+
+}
+
+/**
+ * @return Html
+ */
+function display_form() {
+	global $phpc_script, $phpc_token, $phpcdb, $vars, $phpc_cal, $phpcid;
+
+	$groups = array();
+	foreach($phpc_cal->get_groups() as $group) {
+		$groups[$group['gid']] = $group['name'];
+	}
+
+	$size = sizeof($groups);
+	if($size > 6)
+		$size = 6;
+
+	$user = $phpcdb->get_user($vars["uid"]);
+
+	$user_groups = array();
+	foreach($user->get_groups() as $group) {
+		$user_groups[] = $group['gid'];
+	}
+
+	return tag('form', attributes("action=\"$phpc_script\"",
+                                'method="post"'),
+			tag('div', attributes("class=\"phpc-container\""),
+				tag('h2', __('Edit User Groups')),
+				tag('div', create_select('groups[]', $groups,
+					$user_groups,
+					attrs('multiple', "size=\"$size\""))),
+				tag('div',
+					create_hidden('phpc_token',
+						$phpc_token),
+					create_hidden('uid', $vars['uid']),
+					create_hidden('phpcid', $phpcid),
+					create_hidden('action', 'user_groups'),
+					create_hidden('submit_form',
+						'submit_form'),
+					create_submit(__('Submit')))));
+}
+
+function process_form()
+{
+    global $phpcid, $vars, $phpcdb, $phpc_cal;
+
+	verify_token();
+
+	$user = $phpcdb->get_user($vars["uid"]);
+	// Remove existing groups for this calendar
+	foreach($user->get_groups() as $group) {
+		if($group["cid"] == $phpcid)
+			$phpcdb->user_remove_group($vars["uid"], $group["gid"]);
+	}
+	
+	$valid_groups = array();
+	foreach($phpc_cal->get_groups() as $group) {
+		$valid_groups[] = $group["gid"];
+	}
+	if(!empty($vars["groups"])) {
+		foreach($vars["groups"] as $gid) {
+			if(!in_array($gid, $valid_groups))
+				soft_error("Invalid gid");
+
+			$phpcdb->user_add_group($vars["uid"], $gid);
+		}
+	}
+
+    return message(__('Groups updated.'));
+}
diff --git a/src/user_permissions_submit.php b/src/user_permissions_submit.php
new file mode 100644
index 0000000..7b6c3af
--- /dev/null
+++ b/src/user_permissions_submit.php
@@ -0,0 +1,67 @@
+<?php 
+/*
+ * Copyright 2012 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if(!defined('IN_PHPC')) {
+       die("Hacking attempt");
+}
+
+/**
+ * @return Html
+ */
+function user_permissions_submit()
+{
+	global $phpcid, $phpc_cal, $vars, $phpcdb, $phpc_script;
+
+        if(!$phpc_cal->can_admin()) {
+                return tag('div', __('Permission denied'));
+        }
+
+        if(empty($vars['uid'])) {
+                return tag('div', __('No users'));
+        }
+
+	$users = array();
+
+	foreach ($vars['uid'] as $uid) {
+		$perm_names = array('read', 'write', 'readonly', 'modify',
+				'admin');
+		$old_perms = $phpcdb->get_permissions($phpcid, $uid);
+
+		$new_perms = array();
+		
+		$different = false;
+		foreach($perm_names as $perm_name) {
+			$new_perms[$perm_name] =
+				asbool(!empty($vars["$perm_name$uid"]));
+			if(empty($old_perms[$perm_name]) !=
+					empty($vars["$perm_name$uid"]))
+				$different = true;
+		}
+
+		if ($different) {
+			$user = $phpcdb->get_user($uid);
+			$users[] = $user->get_username();
+			$phpcdb->update_permissions($phpcid, $uid, $new_perms);
+		}
+	}
+	if(sizeof($users) == 0)
+		$message = __('No changes to make.');
+	else
+		$message = __('Updated user(s):').' ' .implode(', ', $users);
+
+	return message_redirect($message, "$phpc_script?action=cadmin&phpcid=$phpcid");
+}
diff --git a/src/util.php b/src/util.php
new file mode 100644
index 0000000..6945067
--- /dev/null
+++ b/src/util.php
@@ -0,0 +1,409 @@
+<?php
+/*
+ * Copyright 2014 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+if ( !defined('IN_PHPC') ) {
+       die("Hacking attempt");
+}
+
+// called when some error happens
+/**
+ * @param string $message
+ * @throws Exception
+ */
+function soft_error($message)
+{
+	throw new Exception(phpc_html_escape($message));
+}
+
+class PermissionException extends Exception {
+}
+
+/**
+ * @param string $message
+ * @throws PermissionException
+ */
+function permission_error($message)
+{
+	throw new PermissionException(phpc_html_escape($message));
+}
+
+/**
+ * @param int $minute
+ * @return string
+ */
+function minute_pad($minute)
+{
+	return sprintf('%02d', $minute);
+}
+
+/**
+ * @param string $page
+ */
+function redirect($page) {
+	global $phpc_script, $phpc_server, $phpc_redirect, $phpc_proto;
+
+	session_write_close();
+
+	$phpc_redirect = true;
+
+	if($page[0] == "/") {
+		$dir = '';
+	} else {
+		$dir = dirname($phpc_script) . "/";
+	}
+	$url = "$phpc_proto://$phpc_server$dir$page";
+
+	header("Location: $url");
+}
+
+/**
+ * @param string $message
+ * @param string $page
+ * @return Html
+ */
+function message_redirect($message, $page) {
+	global $phpc_prefix;
+
+	if(empty($_SESSION["{$phpc_prefix}messages"]))
+		$_SESSION["{$phpc_prefix}messages"] = array();
+
+	if (is_a($message, 'Html'))
+		$message = $message->toString();
+	
+	$_SESSION["{$phpc_prefix}messages"][] = $message;
+	redirect($page);
+
+	$continue_url = $page . '&amp;clearmsg=1';
+
+	return tag('div', attrs('class="phpc-box"'), "$message ",
+ 		tag('a', attrs("href=\"$continue_url\""), __("continue")));
+}
+
+/**
+ * @param string $message
+ */
+function message($message) {
+	global $phpc_messages;
+
+	$phpc_messages[] = $message;
+}
+
+/**
+ * @param array|string $var
+ * @return array|string
+ */
+function stripslashes_r($var) {
+	if (is_array($var))
+		return array_map("stripslashes_r", $var);
+	else
+		return stripslashes($var);
+}
+
+/**
+ * @param array|string $var
+ * @return array|string
+ */
+function real_escape_r($var) {
+	global $phpcdb;
+
+	if(is_array($var))
+		return array_map("real_escape_r", $var);
+	else
+		return mysqli_real_escape_string($phpcdb->dbh, $var);
+}
+
+/**
+ * @param bool $val
+ * @return string
+ */
+function asbool($val)
+{
+	return $val ? "1" : "0";
+}
+
+/**
+ * @param int $timestamp
+ * @param int $date_format
+ * @param bool $hours24
+ * @return string
+ */
+function format_timestamp_string($timestamp, $date_format, $hours24) {
+	$year = date('Y', $timestamp);
+	$month = date('n', $timestamp);
+	$day = date('j', $timestamp);
+	$hour = date('H', $timestamp);
+	$minute = date('i', $timestamp);
+
+	return format_date_string($year, $month, $day, $date_format) . ' '
+		. __('at') . ' ' . format_time_string($hour, $minute, $hours24);
+}
+
+/**
+ * @param int $year
+ * @param int $month
+ * @param int $day
+ * @param int $date_format
+ * @return string
+ */
+function format_date_string($year, $month, $day, $date_format)
+{
+	$month_name = short_month_name($month);
+	switch($date_format) {
+		case 0: // Month Day Year
+			return "$month_name $day, $year";
+		case 1: // Year Month Day
+			return "$year $month_name $day";
+		case 2: // Day Month Year
+			return "$day $month_name $year";
+		default:
+			soft_error("Invalid date_format");
+	}
+}
+
+/**
+ * @param int $year
+ * @param int $month
+ * @param int $day
+ * @param int $date_format
+ * @return string
+ */
+function format_short_date_string($year, $month, $day, $date_format)
+{
+	switch($date_format) {
+		case 0: // Month Day Year
+			return "$month/$day/$year";
+		case 1: // Year Month Day
+			return "$year-$month-$day";
+		case 2: // Day Month Year
+			return "$day-$month-$year";
+		default:
+			soft_error("Invalid date_format");
+	}
+}
+
+/**
+ * @param int $hour
+ * @param int $minute
+ * @param bool $hour24
+ * @return string
+ */
+function format_time_string($hour, $minute, $hour24)
+{
+	if(!$hour24) {
+		if($hour >= 12) {
+			$hour -= 12;
+			$pm = ' PM';
+		} else {
+			$pm = ' AM';
+		}
+		if($hour == 0) {
+			$hour = 12;
+		}
+	} else {
+		$pm = '';
+	}
+
+	return sprintf('%d:%02d%s', $hour, $minute, $pm);
+}
+
+// called when some error happens
+/**
+ * @param string $str
+ */
+function display_error($str)
+{
+	echo '<html><head><title>', __('Error'), "</title></head>\n",
+	     '<body><h1>', __('Software Error'), "</h1>\n",
+	     "<h2>", __('Message:'), "</h2>\n",
+	     "<pre>$str</pre>\n",
+	     "<h2>", __('Backtrace'), "</h2>\n",
+	     "<ol>\n";
+	foreach(debug_backtrace() as $bt) {
+		echo "<li>$bt[file]:$bt[line] - $bt[function]</li>\n";
+	}
+	echo "</ol>\n",
+	     "</body></html>\n";
+	exit;
+}
+
+/**
+ * @param int $timestamp
+ * @return int
+ */
+function days_in_year($timestamp) {
+	return 365 + date('L', $timestamp);
+}
+
+/**
+ * @param int|null $stamp
+ * @param int $days
+ * @return false|int|null
+ */
+function add_days($stamp, $days)
+{
+    if ($stamp == null)
+        return null;
+
+	return mktime(date('H', $stamp), date('i', $stamp), date('s', $stamp),
+			date('n', $stamp), date('j', $stamp) + $days,
+			date('Y', $stamp));
+}
+
+/**
+ * @param int|null $stamp
+ * @param int $months
+ * @return false|int|null
+ */
+function add_months($stamp, $months)
+{
+    if ($stamp == null)
+        return null;
+
+	return mktime(date('H', $stamp), date('i', $stamp), date('s', $stamp),
+			date('m', $stamp) + $months, date('d', $stamp),
+			date('Y', $stamp));
+}
+
+/**
+ * @param int|null $stamp
+ * @param int $years
+ * @return false|int|null
+ */
+function add_years($stamp, $years)
+{
+    if ($stamp == null)
+        return null;
+
+	return mktime(date('H', $stamp), date('i', $stamp), date('s', $stamp),
+			date('m', $stamp), date('d', $stamp),
+			date('Y', $stamp) + $years);
+}
+
+/**
+ * @param int $ts1
+ * @param int $ts2
+ * @return int
+ */
+function days_between($ts1, $ts2) {
+	// First date always comes first
+	if($ts1 > $ts2)
+		return -days_between($ts2, $ts1);
+
+	// If we're in different years, keep adding years until we're in
+	//   the same year
+	if(date('Y', $ts2) > date('Y', $ts1))
+		return days_in_year($ts1)
+			+ days_between(add_years($ts1, 1), $ts2);
+
+	// The years are equal, subtract day of the year of each
+    return intval(date('z', $ts2)) - intval(date('z', $ts1));
+}
+
+// Stolen from Drupal
+function phpc_random_bytes($count) {
+	// $random_state does not use drupal_static as it stores random bytes.
+	static $random_state, $bytes, $php_compatible;
+	// Initialize on the first call. The contents of $_SERVER includes a
+	// mix of user-specific and system information that varies a little
+	// with each page.
+	if (!isset($random_state)) {
+		$random_state = print_r($_SERVER, TRUE);
+		if (function_exists('getmypid')) {
+			// Further initialize with the somewhat random PHP process ID.
+			$random_state .= getmypid();
+		}
+		$bytes = '';
+	}
+	if (strlen($bytes) < $count) {
+		// PHP versions prior 5.3.4 experienced openssl_random_pseudo_bytes()
+		// locking on Windows and rendered it unusable.
+		if (!isset($php_compatible)) {
+			$php_compatible = version_compare(PHP_VERSION, '5.3.4', '>=');
+		}
+		// /dev/urandom is available on many *nix systems and is
+		// considered the best commonly available pseudo-random source.
+		if ($fh = @fopen('/dev/urandom', 'rb')) {
+			// PHP only performs buffered reads, so in reality it
+			// will always read at least 4096 bytes. Thus, it costs
+			// nothing extra to read and store that much so as to
+			// speed any additional invocations.
+			$bytes .= fread($fh, max(4096, $count));
+			fclose($fh);
+		}
+		// openssl_random_pseudo_bytes() will find entropy in a
+		// system-dependent  way.
+		elseif ($php_compatible && function_exists('openssl_random_pseudo_bytes')) {
+			$bytes .= openssl_random_pseudo_bytes($count - strlen($bytes));
+		}
+		// If /dev/urandom is not available or returns no bytes, this
+		// loop will generate a good set of pseudo-random bytes on any
+		// system.
+		// Note that it may be important that our $random_state is
+		// passed through hash() prior to being rolled into $output,
+		// that the two hash()
+		// invocations are different, and that the extra input into the
+		// first one - the microtime() - is prepended rather than
+		// appended. This is to avoid directly leaking $random_state
+		// via the $output stream, which could allow for trivial
+		// prediction of further "random" numbers.
+		while (strlen($bytes) < $count) {
+			$random_state = hash('sha256', microtime() . mt_rand() . $random_state);
+			$bytes .= hash('sha256', mt_rand() . $random_state, TRUE);
+		}
+	}
+	$output = substr($bytes, 0, $count);
+	$bytes = substr($bytes, $count);
+	return $output;
+}
+
+// Adapted from Drupal
+function phpc_get_private_key() {
+	static $key;
+
+	if(!isset($key))
+		$key = phpc_hash_base64(phpc_random_bytes(55));
+
+	return $key;
+}
+
+function phpc_get_token($value='') {
+	return phpc_hmac_base64($value, session_id() . phpc_get_private_key()
+			. phpc_get_hash_salt());
+}
+
+// Stolen from Drupal
+function phpc_hmac_base64($data, $key) {
+	$hmac = base64_encode(hash_hmac('sha256', $data, $key, TRUE));
+	// Modify the hmac so it's safe to use in URLs.
+	return strtr($hmac, array('+' => '-', '/' => '_', '=' => ''));
+}
+
+// Stolen from Drupal
+function phpc_hash_base64($data) {
+	$hash = base64_encode(hash('sha256', $data, TRUE));
+	// Modify the hash so it's safe to use in URLs.
+	return strtr($hash, array('+' => '-', '/' => '_', '=' => ''));
+}
+
+// Adapted from Drupal
+function phpc_get_hash_salt() {
+	return hash('sha256', SQL_HOST . SQL_USER . SQL_PASSWD . SQL_DATABASE . SQL_PREFIX);
+}
+
+function phpc_html_escape($str) {
+	return htmlspecialchars($str, ENT_COMPAT, "UTF-8");
+}
diff --git a/static/index.html b/static/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/static/jquery-ui-timepicker.css b/static/jquery-ui-timepicker.css
new file mode 100755
index 0000000..f546027
--- /dev/null
+++ b/static/jquery-ui-timepicker.css
@@ -0,0 +1,40 @@
+/*
+ * Timepicker stylesheet
+ * Highly inspired from datepicker
+ * FG - Nov 2010 - Web3R 
+ *
+ * version 0.0.3 : Fixed some settings, more dynamic
+ * version 0.0.4 : Removed width:100% on tables
+ * version 0.1.1 : set width 0 on tables to fix an ie6 bug
+ */
+
+.ui-timepicker-inline { display: inline; }
+
+#ui-timepicker-div { padding: 0.2em }
+.ui-timepicker-table { display: inline-table; width: 0; }
+.ui-timepicker-table table { margin:0.15em 0 0 0; border-collapse: collapse; }
+
+.ui-timepicker-hours, .ui-timepicker-minutes { padding: 0.2em;  }
+
+.ui-timepicker-table .ui-timepicker-title { line-height: 1.8em; text-align: center; }
+.ui-timepicker-table td { padding: 0.1em; width: 2.2em; }
+.ui-timepicker-table th.periods { padding: 0.1em; width: 2.2em; }
+
+/* span for disabled cells */
+.ui-timepicker-table td span {
+	display:block;
+    padding:0.2em 0.3em 0.2em 0.5em;
+    width: 1.2em;
+
+    text-align:right;
+    text-decoration:none;
+}
+/* anchors for clickable cells */
+.ui-timepicker-table td a {
+    display:block;
+    padding:0.2em 0.3em 0.2em 0.5em;
+    width: 1.2em;
+
+    text-align:right;
+    text-decoration:none;
+}
\ No newline at end of file
diff --git a/static/jquery.hoverIntent.minified.js b/static/jquery.hoverIntent.minified.js
new file mode 100644
index 0000000..3f6bf73
--- /dev/null
+++ b/static/jquery.hoverIntent.minified.js
@@ -0,0 +1,8 @@
+/*!
+ * hoverIntent r7 // 2013.03.11 // jQuery 1.9.1+
+ * http://cherne.net/brian/resources/jquery.hoverIntent.html
+ *
+ * You may use hoverIntent under the terms of the MIT license.
+ * Copyright 2007, 2013 Brian Cherne
+ */
+(function(e){e.fn.hoverIntent=function(t,n,r){var i={interval:100,sensitivity:7,timeout:0};if(typeof t==="object"){i=e.extend(i,t)}else if(e.isFunction(n)){i=e.extend(i,{over:t,out:n,selector:r})}else{i=e.extend(i,{over:t,out:t,selector:n})}var s,o,u,a;var f=function(e){s=e.pageX;o=e.pageY};var l=function(t,n){n.hoverIntent_t=clearTimeout(n.hoverIntent_t);if(Math.abs(u-s)+Math.abs(a-o)<i.sensitivity){e(n).off("mousemove.hoverIntent",f);n.hoverIntent_s=1;return i.over.apply(n,[t])}else{u=s;a=o;n.hoverIntent_t=setTimeout(function(){l(t,n)},i.interval)}};var c=function(e,t){t.hoverIntent_t=clearTimeout(t.hoverIntent_t);t.hoverIntent_s=0;return i.out.apply(t,[e])};var h=function(t){var n=jQuery.extend({},t);var r=this;if(r.hoverIntent_t){r.hoverIntent_t=clearTimeout(r.hoverIntent_t)}if(t.type=="mouseenter"){u=n.pageX;a=n.pageY;e(r).on("mousemove.hoverIntent",f);if(r.hoverIntent_s!=1){r.hoverIntent_t=setTimeout(function(){l(n,r)},i.interval)}}else{e(r).off("mousemove.hoverIntent",f);if(r.hoverIntent_s==1){r.hoverIntent_t=setTimeout(function(){c(n,r)},i.timeout)}}};return this.on({"mouseenter.hoverIntent":h,"mouseleave.hoverIntent":h},i.selector)}})(jQuery)
\ No newline at end of file
diff --git a/static/jquery.ui.timepicker.js b/static/jquery.ui.timepicker.js
new file mode 100755
index 0000000..46eb417
--- /dev/null
+++ b/static/jquery.ui.timepicker.js
@@ -0,0 +1,1434 @@
+/*
+ * jQuery UI Timepicker 0.3.1
+ *
+ * Copyright 2010-2011, Francois Gelinas
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://fgelinas.com/code/timepicker
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *  jquery.ui.position.js (only if position settngs are used)
+ *
+ * Change version 0.1.0 - moved the t-rex up here
+ *
+                                                  ____
+       ___                                      .-~. /_"-._
+      `-._~-.                                  / /_ "~o\  :Y
+          \  \                                / : \~x.  ` ')
+           ]  Y                              /  |  Y< ~-.__j
+          /   !                        _.--~T : l  l<  /.-~
+         /   /                 ____.--~ .   ` l /~\ \<|Y
+        /   /             .-~~"        /| .    ',-~\ \L|
+       /   /             /     .^   \ Y~Y \.^>/l_   "--'
+      /   Y           .-"(  .  l__  j_j l_/ /~_.-~    .
+     Y    l          /    \  )    ~~~." / `/"~ / \.__/l_
+     |     \     _.-"      ~-{__     l  :  l._Z~-.___.--~
+     |      ~---~           /   ~~"---\_  ' __[>
+     l  .                _.^   ___     _>-y~
+      \  \     .      .-~   .-~   ~>--"  /
+       \  ~---"            /     ./  _.-'
+        "-.,_____.,_  _.--~\     _.-~
+                    ~~     (   _}       -Row
+                           `. ~(
+                             )  \
+                            /,`--'~\--'~\
+                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+                             ->T-Rex<-
+*/
+
+(function ($) {
+
+    $.extend($.ui, { timepicker: { version: "0.3.2"} });
+
+    var PROP_NAME = 'timepicker',
+        tpuuid = new Date().getTime();
+
+    /* Time picker manager.
+    Use the singleton instance of this class, $.timepicker, to interact with the time picker.
+    Settings for (groups of) time pickers are maintained in an instance object,
+    allowing multiple different settings on the same page. */
+
+    function Timepicker() {
+        this.debug = true; // Change this to true to start debugging
+        this._curInst = null; // The current instance in use
+        this._disabledInputs = []; // List of time picker inputs that have been disabled
+        this._timepickerShowing = false; // True if the popup picker is showing , false if not
+        this._inDialog = false; // True if showing within a "dialog", false if not
+        this._dialogClass = 'ui-timepicker-dialog'; // The name of the dialog marker class
+        this._mainDivId = 'ui-timepicker-div'; // The ID of the main timepicker division
+        this._inlineClass = 'ui-timepicker-inline'; // The name of the inline marker class
+        this._currentClass = 'ui-timepicker-current'; // The name of the current hour / minutes marker class
+        this._dayOverClass = 'ui-timepicker-days-cell-over'; // The name of the day hover marker class
+
+        this.regional = []; // Available regional settings, indexed by language code
+        this.regional[''] = { // Default regional settings
+            hourText: 'Hour',           // Display text for hours section
+            minuteText: 'Minute',       // Display text for minutes link
+            amPmText: ['AM', 'PM'],     // Display text for AM PM
+            closeButtonText: 'Done',        // Text for the confirmation button (ok button)
+            nowButtonText: 'Now',           // Text for the now button
+            deselectButtonText: 'Deselect'  // Text for the deselect button
+        };
+        this._defaults = { // Global defaults for all the time picker instances
+            showOn: 'focus',    // 'focus' for popup on focus,
+                                // 'button' for trigger button, or 'both' for either (not yet implemented)
+            button: null,                   // 'button' element that will trigger the timepicker
+            showAnim: 'fadeIn',             // Name of jQuery animation for popup
+            showOptions: {},                // Options for enhanced animations
+            appendText: '',                 // Display text following the input box, e.g. showing the format
+
+            beforeShow: null,               // Define a callback function executed before the timepicker is shown
+            onSelect: null,                 // Define a callback function when a hour / minutes is selected
+            onClose: null,                  // Define a callback function when the timepicker is closed
+
+            timeSeparator: ':',             // The character to use to separate hours and minutes.
+            periodSeparator: ' ',           // The character to use to separate the time from the time period.
+            showPeriod: false,              // Define whether or not to show AM/PM with selected time
+            showPeriodLabels: true,         // Show the AM/PM labels on the left of the time picker
+            showLeadingZero: true,          // Define whether or not to show a leading zero for hours < 10. [true/false]
+            showMinutesLeadingZero: true,   // Define whether or not to show a leading zero for minutes < 10.
+            altField: '',                   // Selector for an alternate field to store selected time into
+            defaultTime: 'now',             // Used as default time when input field is empty or for inline timePicker
+                                            // (set to 'now' for the current time, '' for no highlighted time)
+            myPosition: 'left top',         // Position of the dialog relative to the input.
+                                            // see the position utility for more info : http://jqueryui.com/demos/position/
+            atPosition: 'left bottom',      // Position of the input element to match
+                                            // Note : if the position utility is not loaded, the timepicker will attach left top to left bottom
+            //NEW: 2011-02-03
+            onHourShow: null,			    // callback for enabling / disabling on selectable hours  ex : function(hour) { return true; }
+            onMinuteShow: null,             // callback for enabling / disabling on time selection  ex : function(hour,minute) { return true; }
+
+            hours: {
+                starts: 0,                  // first displayed hour
+                ends: 23                    // last displayed hour
+            },
+            minutes: {
+                starts: 0,                  // first displayed minute
+                ends: 55,                   // last displayed minute
+                interval: 5                 // interval of displayed minutes
+            },
+            rows: 4,                        // number of rows for the input tables, minimum 2, makes more sense if you use multiple of 2
+            // 2011-08-05 0.2.4
+            showHours: true,                // display the hours section of the dialog
+            showMinutes: true,              // display the minute section of the dialog
+            optionalMinutes: false,         // optionally parse inputs of whole hours with minutes omitted
+						
+            // buttons
+            showCloseButton: false,         // shows an OK button to confirm the edit
+            showNowButton: false,           // Shows the 'now' button
+            showDeselectButton: false       // Shows the deselect time button
+
+        };
+        $.extend(this._defaults, this.regional['']);
+
+        this.tpDiv = $('<div id="' + this._mainDivId + '" class="ui-timepicker ui-widget ui-helper-clearfix ui-corner-all " style="display: none"></div>');
+    }
+
+    $.extend(Timepicker.prototype, {
+        /* Class name added to elements to indicate already configured with a time picker. */
+        markerClassName: 'hasTimepicker',
+
+        /* Debug logging (if enabled). */
+        log: function () {
+            if (this.debug)
+                console.log.apply('', arguments);
+        },
+
+        _widgetTimepicker: function () {
+            return this.tpDiv;
+        },
+
+        /* Override the default settings for all instances of the time picker.
+        @param  settings  object - the new settings to use as defaults (anonymous object)
+        @return the manager object */
+        setDefaults: function (settings) {
+            extendRemove(this._defaults, settings || {});
+            return this;
+        },
+
+        /* Attach the time picker to a jQuery selection.
+        @param  target    element - the target input field or division or span
+        @param  settings  object - the new settings to use for this time picker instance (anonymous) */
+        _attachTimepicker: function (target, settings) {
+            // check for settings on the control itself - in namespace 'time:'
+            var inlineSettings = null;
+            for (var attrName in this._defaults) {
+                var attrValue = target.getAttribute('time:' + attrName);
+                if (attrValue) {
+                    inlineSettings = inlineSettings || {};
+                    try {
+                        inlineSettings[attrName] = eval(attrValue);
+                    } catch (err) {
+                        inlineSettings[attrName] = attrValue;
+                    }
+                }
+            }
+            var nodeName = target.nodeName.toLowerCase();
+            var inline = (nodeName == 'div' || nodeName == 'span');
+
+            if (!target.id) {
+                this.uuid += 1;
+                target.id = 'tp' + this.uuid;
+            }
+            var inst = this._newInst($(target), inline);
+            inst.settings = $.extend({}, settings || {}, inlineSettings || {});
+            if (nodeName == 'input') {
+                this._connectTimepicker(target, inst);
+                // init inst.hours and inst.minutes from the input value
+                this._setTimeFromField(inst);
+            } else if (inline) {
+                this._inlineTimepicker(target, inst);
+            }
+
+
+        },
+
+        /* Create a new instance object. */
+        _newInst: function (target, inline) {
+            var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
+            return {
+                id: id, input: target, // associated target
+                inline: inline, // is timepicker inline or not :
+                tpDiv: (!inline ? this.tpDiv : // presentation div
+                    $('<div class="' + this._inlineClass + ' ui-timepicker ui-widget  ui-helper-clearfix"></div>'))
+            };
+        },
+
+        /* Attach the time picker to an input field. */
+        _connectTimepicker: function (target, inst) {
+            var input = $(target);
+            inst.append = $([]);
+            inst.trigger = $([]);
+            if (input.hasClass(this.markerClassName)) { return; }
+            this._attachments(input, inst);
+            input.addClass(this.markerClassName).
+                keydown(this._doKeyDown).
+                keyup(this._doKeyUp).
+                bind("setData.timepicker", function (event, key, value) {
+                    inst.settings[key] = value;
+                }).
+                bind("getData.timepicker", function (event, key) {
+                    return this._get(inst, key);
+                });
+            $.data(target, PROP_NAME, inst);
+        },
+
+        /* Handle keystrokes. */
+        _doKeyDown: function (event) {
+            var inst = $.timepicker._getInst(event.target);
+            var handled = true;
+            inst._keyEvent = true;
+            if ($.timepicker._timepickerShowing) {
+                switch (event.keyCode) {
+                    case 9: $.timepicker._hideTimepicker();
+                        handled = false;
+                        break; // hide on tab out
+                    case 13:
+                        $.timepicker._updateSelectedValue(inst);
+                        $.timepicker._hideTimepicker();
+                            
+						return false; // don't submit the form
+						break; // select the value on enter
+                    case 27: $.timepicker._hideTimepicker();
+                        break; // hide on escape
+                    default: handled = false;
+                }
+            }
+            else if (event.keyCode == 36 && event.ctrlKey) { // display the time picker on ctrl+home
+                $.timepicker._showTimepicker(this);
+            }
+            else {
+                handled = false;
+            }
+            if (handled) {
+                event.preventDefault();
+                event.stopPropagation();
+            }
+        },
+
+        /* Update selected time on keyUp */
+        /* Added verion 0.0.5 */
+        _doKeyUp: function (event) {
+            var inst = $.timepicker._getInst(event.target);
+            $.timepicker._setTimeFromField(inst);
+            $.timepicker._updateTimepicker(inst);
+        },
+
+        /* Make attachments based on settings. */
+        _attachments: function (input, inst) {
+            var appendText = this._get(inst, 'appendText');
+            var isRTL = this._get(inst, 'isRTL');
+            if (inst.append) { inst.append.remove(); }
+            if (appendText) {
+                inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
+                input[isRTL ? 'before' : 'after'](inst.append);
+            }
+            input.unbind('focus.timepicker', this._showTimepicker);
+            input.unbind('click.timepicker', this._adjustZIndex);
+
+            if (inst.trigger) { inst.trigger.remove(); }
+
+            var showOn = this._get(inst, 'showOn');
+            if (showOn == 'focus' || showOn == 'both') { // pop-up time picker when in the marked field
+                input.bind("focus.timepicker", this._showTimepicker);
+                input.bind("click.timepicker", this._adjustZIndex);
+            }
+            if (showOn == 'button' || showOn == 'both') { // pop-up time picker when 'button' element is clicked
+                var button = this._get(inst, 'button');
+                $(button).bind("click.timepicker", function () {
+                    if ($.timepicker._timepickerShowing && $.timepicker._lastInput == input[0]) {
+                        $.timepicker._hideTimepicker();
+                    } else if (!inst.input.is(':disabled')) {
+                        $.timepicker._showTimepicker(input[0]);
+                    }
+                    return false;
+                });
+
+            }
+        },
+
+
+        /* Attach an inline time picker to a div. */
+        _inlineTimepicker: function(target, inst) {
+            var divSpan = $(target);
+            if (divSpan.hasClass(this.markerClassName))
+                return;
+            divSpan.addClass(this.markerClassName).append(inst.tpDiv).
+                bind("setData.timepicker", function(event, key, value){
+                    inst.settings[key] = value;
+                }).bind("getData.timepicker", function(event, key){
+                    return this._get(inst, key);
+                });
+            $.data(target, PROP_NAME, inst);
+
+            this._setTimeFromField(inst);
+            this._updateTimepicker(inst);
+            inst.tpDiv.show();
+        },
+
+        _adjustZIndex: function(input) {
+            input = input.target || input;
+            var inst = $.timepicker._getInst(input);
+            inst.tpDiv.css('zIndex', $.timepicker._getZIndex(input) +1);
+        },
+
+        /* Pop-up the time picker for a given input field.
+        @param  input  element - the input field attached to the time picker or
+        event - if triggered by focus */
+        _showTimepicker: function (input) {
+            input = input.target || input;
+            if (input.nodeName.toLowerCase() != 'input') { input = $('input', input.parentNode)[0]; } // find from button/image trigger
+
+            if ($.timepicker._isDisabledTimepicker(input) || $.timepicker._lastInput == input) { return; } // already here
+
+            // fix v 0.0.8 - close current timepicker before showing another one
+            $.timepicker._hideTimepicker();
+
+            var inst = $.timepicker._getInst(input);
+            if ($.timepicker._curInst && $.timepicker._curInst != inst) {
+                $.timepicker._curInst.tpDiv.stop(true, true);
+            }
+            var beforeShow = $.timepicker._get(inst, 'beforeShow');
+            extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
+            inst.lastVal = null;
+            $.timepicker._lastInput = input;
+
+            $.timepicker._setTimeFromField(inst);
+
+            // calculate default position
+            if ($.timepicker._inDialog) { input.value = ''; } // hide cursor
+            if (!$.timepicker._pos) { // position below input
+                $.timepicker._pos = $.timepicker._findPos(input);
+                $.timepicker._pos[1] += input.offsetHeight; // add the height
+            }
+            var isFixed = false;
+            $(input).parents().each(function () {
+                isFixed |= $(this).css('position') == 'fixed';
+                return !isFixed;
+            });
+            if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
+                $.timepicker._pos[0] -= document.documentElement.scrollLeft;
+                $.timepicker._pos[1] -= document.documentElement.scrollTop;
+            }
+
+            var offset = { left: $.timepicker._pos[0], top: $.timepicker._pos[1] };
+
+            $.timepicker._pos = null;
+            // determine sizing offscreen
+            inst.tpDiv.css({ position: 'absolute', display: 'block', top: '-1000px' });
+            $.timepicker._updateTimepicker(inst);
+
+
+            // position with the ui position utility, if loaded
+            if ( ( ! inst.inline )  && ( typeof $.ui.position == 'object' ) ) {
+                inst.tpDiv.position({
+                    of: inst.input,
+                    my: $.timepicker._get( inst, 'myPosition' ),
+                    at: $.timepicker._get( inst, 'atPosition' ),
+                    // offset: $( "#offset" ).val(),
+                    // using: using,
+                    collision: 'flip'
+                });
+                var offset = inst.tpDiv.offset();
+                $.timepicker._pos = [offset.top, offset.left];
+            }
+
+
+            // reset clicked state
+            inst._hoursClicked = false;
+            inst._minutesClicked = false;
+
+            // fix width for dynamic number of time pickers
+            // and adjust position before showing
+            offset = $.timepicker._checkOffset(inst, offset, isFixed);
+            inst.tpDiv.css({ position: ($.timepicker._inDialog && $.blockUI ?
+			    'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
+                left: offset.left + 'px', top: offset.top + 'px'
+            });
+            if ( ! inst.inline ) {
+                var showAnim = $.timepicker._get(inst, 'showAnim');
+                var duration = $.timepicker._get(inst, 'duration');
+
+                var postProcess = function () {
+                    $.timepicker._timepickerShowing = true;
+                    var borders = $.timepicker._getBorders(inst.tpDiv);
+                    inst.tpDiv.find('iframe.ui-timepicker-cover'). // IE6- only
+					css({ left: -borders[0], top: -borders[1],
+					    width: inst.tpDiv.outerWidth(), height: inst.tpDiv.outerHeight()
+					});
+                };
+
+                // Fixed the zIndex problem for real (I hope) - FG - v 0.2.9
+                $.timepicker._adjustZIndex(input);
+                //inst.tpDiv.css('zIndex', $.timepicker._getZIndex(input) +1);
+
+                if ($.effects && $.effects[showAnim]) {
+                    inst.tpDiv.show(showAnim, $.timepicker._get(inst, 'showOptions'), duration, postProcess);
+                }
+                else {
+                    inst.tpDiv.show((showAnim ? duration : null), postProcess);
+                }
+                if (!showAnim || !duration) { postProcess(); }
+                if (inst.input.is(':visible') && !inst.input.is(':disabled')) { inst.input.focus(); }
+                $.timepicker._curInst = inst;
+            }
+        },
+
+        // This is a copy of the zIndex function of UI core 1.8.??
+        // Copied in the timepicker to stay backward compatible.
+        _getZIndex: function (target) {
+            var elem = $( target ), position, value;
+            while ( elem.length && elem[ 0 ] !== document ) {
+                position = elem.css( "position" );
+                if ( position === "absolute" || position === "relative" || position === "fixed" ) {
+                    value = parseInt( elem.css( "zIndex" ), 10 );
+                    if ( !isNaN( value ) && value !== 0 ) {
+                        return value;
+                    }
+                }
+                elem = elem.parent();
+            }
+        },
+
+        /* Refresh the time picker
+           @param   target  element - The target input field or inline container element. */
+        _refreshTimepicker: function(target) {
+            var inst = this._getInst(target);
+            if (inst) {
+                this._updateTimepicker(inst);
+            }
+        },
+
+
+        /* Generate the time picker content. */
+        _updateTimepicker: function (inst) {
+            inst.tpDiv.empty().append(this._generateHTML(inst));
+            this._rebindDialogEvents(inst);
+
+        },
+
+        _rebindDialogEvents: function (inst) {
+            var borders = $.timepicker._getBorders(inst.tpDiv),
+                self = this;
+            inst.tpDiv
+			.find('iframe.ui-timepicker-cover') // IE6- only
+				.css({ left: -borders[0], top: -borders[1],
+				    width: inst.tpDiv.outerWidth(), height: inst.tpDiv.outerHeight()
+				})
+			.end()
+            // after the picker html is appended bind the click & double click events (faster in IE this way
+            // then letting the browser interpret the inline events)
+            // the binding for the minute cells also exists in _updateMinuteDisplay
+            .find('.ui-timepicker-minute-cell')
+                .unbind()
+                .bind("click", { fromDoubleClick:false }, $.proxy($.timepicker.selectMinutes, this))
+                .bind("dblclick", { fromDoubleClick:true }, $.proxy($.timepicker.selectMinutes, this))
+            .end()
+            .find('.ui-timepicker-hour-cell')
+                .unbind()
+                .bind("click", { fromDoubleClick:false }, $.proxy($.timepicker.selectHours, this))
+                .bind("dblclick", { fromDoubleClick:true }, $.proxy($.timepicker.selectHours, this))
+            .end()
+			.find('.ui-timepicker td a')
+                .unbind()
+				.bind('mouseout', function () {
+				    $(this).removeClass('ui-state-hover');
+				    if (this.className.indexOf('ui-timepicker-prev') != -1) $(this).removeClass('ui-timepicker-prev-hover');
+				    if (this.className.indexOf('ui-timepicker-next') != -1) $(this).removeClass('ui-timepicker-next-hover');
+				})
+				.bind('mouseover', function () {
+				    if ( ! self._isDisabledTimepicker(inst.inline ? inst.tpDiv.parent()[0] : inst.input[0])) {
+				        $(this).parents('.ui-timepicker-calendar').find('a').removeClass('ui-state-hover');
+				        $(this).addClass('ui-state-hover');
+				        if (this.className.indexOf('ui-timepicker-prev') != -1) $(this).addClass('ui-timepicker-prev-hover');
+				        if (this.className.indexOf('ui-timepicker-next') != -1) $(this).addClass('ui-timepicker-next-hover');
+				    }
+				})
+			.end()
+			.find('.' + this._dayOverClass + ' a')
+				.trigger('mouseover')
+			.end()
+            .find('.ui-timepicker-now').bind("click", function(e) {
+                    $.timepicker.selectNow(e);
+            }).end()
+            .find('.ui-timepicker-deselect').bind("click",function(e) {
+                    $.timepicker.deselectTime(e);
+            }).end()
+            .find('.ui-timepicker-close').bind("click",function(e) {
+                    $.timepicker._hideTimepicker();
+            }).end();
+        },
+
+        /* Generate the HTML for the current state of the time picker. */
+        _generateHTML: function (inst) {
+
+            var h, m, row, col, html, hoursHtml, minutesHtml = '',
+                showPeriod = (this._get(inst, 'showPeriod') == true),
+                showPeriodLabels = (this._get(inst, 'showPeriodLabels') == true),
+                showLeadingZero = (this._get(inst, 'showLeadingZero') == true),
+                showHours = (this._get(inst, 'showHours') == true),
+                showMinutes = (this._get(inst, 'showMinutes') == true),
+                amPmText = this._get(inst, 'amPmText'),
+                rows = this._get(inst, 'rows'),
+                amRows = 0,
+                pmRows = 0,
+                amItems = 0,
+                pmItems = 0,
+                amFirstRow = 0,
+                pmFirstRow = 0,
+                hours = Array(),
+                hours_options = this._get(inst, 'hours'),
+                hoursPerRow = null,
+                hourCounter = 0,
+                hourLabel = this._get(inst, 'hourText'),
+                showCloseButton = this._get(inst, 'showCloseButton'),
+                closeButtonText = this._get(inst, 'closeButtonText'),
+                showNowButton = this._get(inst, 'showNowButton'),
+                nowButtonText = this._get(inst, 'nowButtonText'),
+                showDeselectButton = this._get(inst, 'showDeselectButton'),
+                deselectButtonText = this._get(inst, 'deselectButtonText'),
+                showButtonPanel = showCloseButton || showNowButton || showDeselectButton;
+            
+
+
+            // prepare all hours and minutes, makes it easier to distribute by rows
+            for (h = hours_options.starts; h <= hours_options.ends; h++) {
+                hours.push (h);
+            }
+            hoursPerRow = Math.ceil(hours.length / rows); // always round up
+
+            if (showPeriodLabels) {
+                for (hourCounter = 0; hourCounter < hours.length; hourCounter++) {
+                    if (hours[hourCounter] < 12) {
+                        amItems++;
+                    }
+                    else {
+                        pmItems++;
+                    }
+                }
+                hourCounter = 0; 
+
+                amRows = Math.floor(amItems / hours.length * rows);
+                pmRows = Math.floor(pmItems / hours.length * rows);
+
+                // assign the extra row to the period that is more densely populated
+                if (rows != amRows + pmRows) {
+                    // Make sure: AM Has Items and either PM Does Not, AM has no rows yet, or AM is more dense
+                    if (amItems && (!pmItems || !amRows || (pmRows && amItems / amRows >= pmItems / pmRows))) {
+                        amRows++;
+                    } else {
+                        pmRows++;
+                    }
+                }
+                amFirstRow = Math.min(amRows, 1);
+                pmFirstRow = amRows + 1;
+
+                if (amRows == 0) {
+                    hoursPerRow = Math.ceil(pmItems / pmRows);
+                } else if (pmRows == 0) {
+                    hoursPerRow = Math.ceil(amItems / amRows);
+                } else {
+                    hoursPerRow = Math.ceil(Math.max(amItems / amRows, pmItems / pmRows));
+                }
+            }
+
+
+            html = '<table class="ui-timepicker-table ui-widget-content ui-corner-all"><tr>';
+
+            if (showHours) {
+
+                html += '<td class="ui-timepicker-hours">' +
+                        '<div class="ui-timepicker-title ui-widget-header ui-helper-clearfix ui-corner-all">' +
+                        hourLabel +
+                        '</div>' +
+                        '<table class="ui-timepicker">';
+
+                for (row = 1; row <= rows; row++) {
+                    html += '<tr>';
+                    // AM
+                    if (row == amFirstRow && showPeriodLabels) {
+                        html += '<th rowspan="' + amRows.toString() + '" class="periods" scope="row">' + amPmText[0] + '</th>';
+                    }
+                    // PM
+                    if (row == pmFirstRow && showPeriodLabels) {
+                        html += '<th rowspan="' + pmRows.toString() + '" class="periods" scope="row">' + amPmText[1] + '</th>';
+                    }
+                    for (col = 1; col <= hoursPerRow; col++) {
+                        if (showPeriodLabels && row < pmFirstRow && hours[hourCounter] >= 12) {
+                            html += this._generateHTMLHourCell(inst, undefined, showPeriod, showLeadingZero);
+                        } else {
+                            html += this._generateHTMLHourCell(inst, hours[hourCounter], showPeriod, showLeadingZero);
+                            hourCounter++;
+                        }
+                    }
+                    html += '</tr>';
+                }
+                html += '</table>' + // Close the hours cells table
+                        '</td>'; // Close the Hour td
+            }
+
+            if (showMinutes) {
+                html += '<td class="ui-timepicker-minutes">';
+                html += this._generateHTMLMinutes(inst);
+                html += '</td>';
+            }
+            
+            html += '</tr>';
+
+
+            if (showButtonPanel) {
+                var buttonPanel = '<tr><td colspan="3"><div class="ui-timepicker-buttonpane ui-widget-content">';
+                if (showNowButton) {
+                    buttonPanel += '<button type="button" class="ui-timepicker-now ui-state-default ui-corner-all" '
+                                   + ' data-timepicker-instance-id="#' + inst.id.replace(/\\\\/g,"\\") + '" >'
+                                   + nowButtonText + '</button>';
+                }
+                if (showDeselectButton) {
+                    buttonPanel += '<button type="button" class="ui-timepicker-deselect ui-state-default ui-corner-all" '
+                                   + ' data-timepicker-instance-id="#' + inst.id.replace(/\\\\/g,"\\") + '" >'
+                                   + deselectButtonText + '</button>';
+                }
+                if (showCloseButton) {
+                    buttonPanel += '<button type="button" class="ui-timepicker-close ui-state-default ui-corner-all" '
+                                   + ' data-timepicker-instance-id="#' + inst.id.replace(/\\\\/g,"\\") + '" >'
+                                   + closeButtonText + '</button>';
+                }
+
+                html += buttonPanel + '</div></td></tr>';
+            }
+            html += '</table>';
+
+            return html;
+        },
+
+        /* Special function that update the minutes selection in currently visible timepicker
+         * called on hour selection when onMinuteShow is defined  */
+        _updateMinuteDisplay: function (inst) {
+            var newHtml = this._generateHTMLMinutes(inst);
+            inst.tpDiv.find('td.ui-timepicker-minutes').html(newHtml);
+            this._rebindDialogEvents(inst);
+                // after the picker html is appended bind the click & double click events (faster in IE this way
+                // then letting the browser interpret the inline events)
+                // yes I know, duplicate code, sorry
+/*                .find('.ui-timepicker-minute-cell')
+                    .bind("click", { fromDoubleClick:false }, $.proxy($.timepicker.selectMinutes, this))
+                    .bind("dblclick", { fromDoubleClick:true }, $.proxy($.timepicker.selectMinutes, this));
+*/
+
+        },
+
+        /*
+         * Generate the minutes table
+         * This is separated from the _generateHTML function because is can be called separately (when hours changes)
+         */
+        _generateHTMLMinutes: function (inst) {
+
+            var m, row, html = '',
+                rows = this._get(inst, 'rows'),
+                minutes = Array(),
+                minutes_options = this._get(inst, 'minutes'),
+                minutesPerRow = null,
+                minuteCounter = 0,
+                showMinutesLeadingZero = (this._get(inst, 'showMinutesLeadingZero') == true),
+                onMinuteShow = this._get(inst, 'onMinuteShow'),
+                minuteLabel = this._get(inst, 'minuteText');
+
+            if ( ! minutes_options.starts) {
+                minutes_options.starts = 0;
+            }
+            if ( ! minutes_options.ends) {
+                minutes_options.ends = 59;
+            }
+            for (m = minutes_options.starts; m <= minutes_options.ends; m += minutes_options.interval) {
+                minutes.push(m);
+            }
+            minutesPerRow = Math.round(minutes.length / rows + 0.49); // always round up
+
+            /*
+             * The minutes table
+             */
+            // if currently selected minute is not enabled, we have a problem and need to select a new minute.
+            if (onMinuteShow &&
+                (onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours , inst.minutes]) == false) ) {
+                // loop minutes and select first available
+                for (minuteCounter = 0; minuteCounter < minutes.length; minuteCounter += 1) {
+                    m = minutes[minuteCounter];
+                    if (onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours, m])) {
+                        inst.minutes = m;
+                        break;
+                    }
+                }
+            }
+
+
+
+            html += '<div class="ui-timepicker-title ui-widget-header ui-helper-clearfix ui-corner-all">' +
+                    minuteLabel +
+                    '</div>' +
+                    '<table class="ui-timepicker">';
+            
+            minuteCounter = 0;
+            for (row = 1; row <= rows; row++) {
+                html += '<tr>';
+                while (minuteCounter < row * minutesPerRow) {
+                    var m = minutes[minuteCounter];
+                    var displayText = '';
+                    if (m !== undefined ) {
+                        displayText = (m < 10) && showMinutesLeadingZero ? "0" + m.toString() : m.toString();
+                    }
+                    html += this._generateHTMLMinuteCell(inst, m, displayText);
+                    minuteCounter++;
+                }
+                html += '</tr>';
+            }
+
+            html += '</table>';
+
+            return html;
+        },
+
+        /* Generate the content of a "Hour" cell */
+        _generateHTMLHourCell: function (inst, hour, showPeriod, showLeadingZero) {
+
+            var displayHour = hour;
+            if ((hour > 12) && showPeriod) {
+                displayHour = hour - 12;
+            }
+            if ((displayHour == 0) && showPeriod) {
+                displayHour = 12;
+            }
+            if ((displayHour < 10) && showLeadingZero) {
+                displayHour = '0' + displayHour;
+            }
+
+            var html = "";
+            var enabled = true;
+            var onHourShow = this._get(inst, 'onHourShow');		//custom callback
+
+            if (hour == undefined) {
+                html = '<td><span class="ui-state-default ui-state-disabled">&nbsp;</span></td>';
+                return html;
+            }
+
+            if (onHourShow) {
+            	enabled = onHourShow.apply((inst.input ? inst.input[0] : null), [hour]);
+            }
+
+            if (enabled) {
+                html = '<td class="ui-timepicker-hour-cell" data-timepicker-instance-id="#' + inst.id.replace(/\\\\/g,"\\") + '" data-hour="' + hour.toString() + '">' +
+                   '<a class="ui-state-default ' +
+                   (hour == inst.hours ? 'ui-state-active' : '') +
+                   '">' +
+                   displayHour.toString() +
+                   '</a></td>';
+            }
+            else {
+            	html =
+            		'<td>' +
+		                '<span class="ui-state-default ui-state-disabled ' +
+		                (hour == inst.hours ? ' ui-state-active ' : ' ') +
+		                '">' +
+		                displayHour.toString() +
+		                '</span>' +
+		            '</td>';
+            }
+            return html;
+        },
+
+        /* Generate the content of a "Hour" cell */
+        _generateHTMLMinuteCell: function (inst, minute, displayText) {
+        	 var html = "";
+             var enabled = true;
+             var onMinuteShow = this._get(inst, 'onMinuteShow');		//custom callback
+             if (onMinuteShow) {
+            	 //NEW: 2011-02-03  we should give the hour as a parameter as well!
+             	enabled = onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours,minute]);		//trigger callback
+             }
+
+             if (minute == undefined) {
+                 html = '<td><span class="ui-state-default ui-state-disabled">&nbsp;</span></td>';
+                 return html;
+             }
+
+             if (enabled) {
+	             html = '<td class="ui-timepicker-minute-cell" data-timepicker-instance-id="#' + inst.id.replace(/\\\\/g,"\\") + '" data-minute="' + minute.toString() + '" >' +
+	                   '<a class="ui-state-default ' +
+	                   (minute == inst.minutes ? 'ui-state-active' : '') +
+	                   '" >' +
+	                   displayText +
+	                   '</a></td>';
+             }
+             else {
+
+            	html = '<td>' +
+	                 '<span class="ui-state-default ui-state-disabled" >' +
+	                 	displayText +
+	                 '</span>' +
+                 '</td>';
+             }
+             return html;
+        },
+
+
+        /* Detach a timepicker from its control.
+           @param  target    element - the target input field or division or span */
+        _destroyTimepicker: function(target) {
+            var $target = $(target);
+            var inst = $.data(target, PROP_NAME);
+            if (!$target.hasClass(this.markerClassName)) {
+                return;
+            }
+            var nodeName = target.nodeName.toLowerCase();
+            $.removeData(target, PROP_NAME);
+            if (nodeName == 'input') {
+                inst.append.remove();
+                inst.trigger.remove();
+                $target.removeClass(this.markerClassName)
+                    .unbind('focus.timepicker', this._showTimepicker)
+                    .unbind('click.timepicker', this._adjustZIndex);
+            } else if (nodeName == 'div' || nodeName == 'span')
+                $target.removeClass(this.markerClassName).empty();
+        },
+
+        /* Enable the date picker to a jQuery selection.
+           @param  target    element - the target input field or division or span */
+        _enableTimepicker: function(target) {
+            var $target = $(target),
+                target_id = $target.attr('id'),
+                inst = $.data(target, PROP_NAME);
+            
+            if (!$target.hasClass(this.markerClassName)) {
+                return;
+            }
+            var nodeName = target.nodeName.toLowerCase();
+            if (nodeName == 'input') {
+                target.disabled = false;
+                var button = this._get(inst, 'button');
+                $(button).removeClass('ui-state-disabled').disabled = false;
+                inst.trigger.filter('button').
+                    each(function() { this.disabled = false; }).end();
+            }
+            else if (nodeName == 'div' || nodeName == 'span') {
+                var inline = $target.children('.' + this._inlineClass);
+                inline.children().removeClass('ui-state-disabled');
+                inline.find('button').each(
+                    function() { this.disabled = false }
+                )
+            }
+            this._disabledInputs = $.map(this._disabledInputs,
+                function(value) { return (value == target_id ? null : value); }); // delete entry
+        },
+
+        /* Disable the time picker to a jQuery selection.
+           @param  target    element - the target input field or division or span */
+        _disableTimepicker: function(target) {
+            var $target = $(target);
+            var inst = $.data(target, PROP_NAME);
+            if (!$target.hasClass(this.markerClassName)) {
+                return;
+            }
+            var nodeName = target.nodeName.toLowerCase();
+            if (nodeName == 'input') {
+                var button = this._get(inst, 'button');
+
+                $(button).addClass('ui-state-disabled').disabled = true;
+                target.disabled = true;
+
+                inst.trigger.filter('button').
+                    each(function() { this.disabled = true; }).end();
+
+            }
+            else if (nodeName == 'div' || nodeName == 'span') {
+                var inline = $target.children('.' + this._inlineClass);
+                inline.children().addClass('ui-state-disabled');
+                inline.find('button').each(
+                    function() { this.disabled = true }
+                )
+
+            }
+            this._disabledInputs = $.map(this._disabledInputs,
+                function(value) { return (value == target ? null : value); }); // delete entry
+            this._disabledInputs[this._disabledInputs.length] = $target.attr('id');
+        },
+
+        /* Is the first field in a jQuery collection disabled as a timepicker?
+        @param  target_id element - the target input field or division or span
+        @return boolean - true if disabled, false if enabled */
+        _isDisabledTimepicker: function (target_id) {
+            if ( ! target_id) { return false; }
+            for (var i = 0; i < this._disabledInputs.length; i++) {
+                if (this._disabledInputs[i] == target_id) { return true; }
+            }
+            return false;
+        },
+
+        /* Check positioning to remain on screen. */
+        _checkOffset: function (inst, offset, isFixed) {
+            var tpWidth = inst.tpDiv.outerWidth();
+            var tpHeight = inst.tpDiv.outerHeight();
+            var inputWidth = inst.input ? inst.input.outerWidth() : 0;
+            var inputHeight = inst.input ? inst.input.outerHeight() : 0;
+            var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
+            var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();
+
+            offset.left -= (this._get(inst, 'isRTL') ? (tpWidth - inputWidth) : 0);
+            offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
+            offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
+
+            // now check if datepicker is showing outside window viewport - move to a better place if so.
+            offset.left -= Math.min(offset.left, (offset.left + tpWidth > viewWidth && viewWidth > tpWidth) ?
+			Math.abs(offset.left + tpWidth - viewWidth) : 0);
+            offset.top -= Math.min(offset.top, (offset.top + tpHeight > viewHeight && viewHeight > tpHeight) ?
+			Math.abs(tpHeight + inputHeight) : 0);
+
+            return offset;
+        },
+
+        /* Find an object's position on the screen. */
+        _findPos: function (obj) {
+            var inst = this._getInst(obj);
+            var isRTL = this._get(inst, 'isRTL');
+            while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) {
+                obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
+            }
+            var position = $(obj).offset();
+            return [position.left, position.top];
+        },
+
+        /* Retrieve the size of left and top borders for an element.
+        @param  elem  (jQuery object) the element of interest
+        @return  (number[2]) the left and top borders */
+        _getBorders: function (elem) {
+            var convert = function (value) {
+                return { thin: 1, medium: 2, thick: 3}[value] || value;
+            };
+            return [parseFloat(convert(elem.css('border-left-width'))),
+			parseFloat(convert(elem.css('border-top-width')))];
+        },
+
+
+        /* Close time picker if clicked elsewhere. */
+        _checkExternalClick: function (event) {
+            if (!$.timepicker._curInst) { return; }
+            var $target = $(event.target);
+            if ($target[0].id != $.timepicker._mainDivId &&
+				$target.parents('#' + $.timepicker._mainDivId).length == 0 &&
+				!$target.hasClass($.timepicker.markerClassName) &&
+				!$target.hasClass($.timepicker._triggerClass) &&
+				$.timepicker._timepickerShowing && !($.timepicker._inDialog && $.blockUI))
+                $.timepicker._hideTimepicker();
+        },
+
+        /* Hide the time picker from view.
+        @param  input  element - the input field attached to the time picker */
+        _hideTimepicker: function (input) {
+            var inst = this._curInst;
+            if (!inst || (input && inst != $.data(input, PROP_NAME))) { return; }
+            if (this._timepickerShowing) {
+                var showAnim = this._get(inst, 'showAnim');
+                var duration = this._get(inst, 'duration');
+                var postProcess = function () {
+                    $.timepicker._tidyDialog(inst);
+                    this._curInst = null;
+                };
+                if ($.effects && $.effects[showAnim]) {
+                    inst.tpDiv.hide(showAnim, $.timepicker._get(inst, 'showOptions'), duration, postProcess);
+                }
+                else {
+                    inst.tpDiv[(showAnim == 'slideDown' ? 'slideUp' :
+					    (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
+                }
+                if (!showAnim) { postProcess(); }
+
+                this._timepickerShowing = false;
+
+                this._lastInput = null;
+                if (this._inDialog) {
+                    this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
+                    if ($.blockUI) {
+                        $.unblockUI();
+                        $('body').append(this.tpDiv);
+                    }
+                }
+                this._inDialog = false;
+
+                var onClose = this._get(inst, 'onClose');
+                 if (onClose) {
+                     onClose.apply(
+                         (inst.input ? inst.input[0] : null),
+ 					    [(inst.input ? inst.input.val() : ''), inst]);  // trigger custom callback
+                 }
+
+            }
+        },
+
+
+
+        /* Tidy up after a dialog display. */
+        _tidyDialog: function (inst) {
+            inst.tpDiv.removeClass(this._dialogClass).unbind('.ui-timepicker');
+        },
+
+        /* Retrieve the instance data for the target control.
+        @param  target  element - the target input field or division or span
+        @return  object - the associated instance data
+        @throws  error if a jQuery problem getting data */
+        _getInst: function (target) {
+            try {
+                return $.data(target, PROP_NAME);
+            }
+            catch (err) {
+                throw 'Missing instance data for this timepicker';
+            }
+        },
+
+        /* Get a setting value, defaulting if necessary. */
+        _get: function (inst, name) {
+            return inst.settings[name] !== undefined ?
+			inst.settings[name] : this._defaults[name];
+        },
+
+        /* Parse existing time and initialise time picker. */
+        _setTimeFromField: function (inst) {
+            if (inst.input.val() == inst.lastVal) { return; }
+            var defaultTime = this._get(inst, 'defaultTime');
+
+            var timeToParse = defaultTime == 'now' ? this._getCurrentTimeRounded(inst) : defaultTime;
+            if ((inst.inline == false) && (inst.input.val() != '')) { timeToParse = inst.input.val() }
+
+            if (timeToParse instanceof Date) {
+                inst.hours = timeToParse.getHours();
+                inst.minutes = timeToParse.getMinutes();
+            } else {
+                var timeVal = inst.lastVal = timeToParse;
+                if (timeToParse == '') {
+                    inst.hours = -1;
+                    inst.minutes = -1;
+                } else {
+                    var time = this.parseTime(inst, timeVal);
+                    inst.hours = time.hours;
+                    inst.minutes = time.minutes;
+                }
+            }
+
+
+            $.timepicker._updateTimepicker(inst);
+        },
+
+        /* Update or retrieve the settings for an existing time picker.
+           @param  target  element - the target input field or division or span
+           @param  name    object - the new settings to update or
+                           string - the name of the setting to change or retrieve,
+                           when retrieving also 'all' for all instance settings or
+                           'defaults' for all global defaults
+           @param  value   any - the new value for the setting
+                       (omit if above is an object or to retrieve a value) */
+        _optionTimepicker: function(target, name, value) {
+            var inst = this._getInst(target);
+            if (arguments.length == 2 && typeof name == 'string') {
+                return (name == 'defaults' ? $.extend({}, $.timepicker._defaults) :
+                    (inst ? (name == 'all' ? $.extend({}, inst.settings) :
+                    this._get(inst, name)) : null));
+            }
+            var settings = name || {};
+            if (typeof name == 'string') {
+                settings = {};
+                settings[name] = value;
+            }
+            if (inst) {
+                if (this._curInst == inst) {
+                    this._hideTimepicker();
+                }
+                extendRemove(inst.settings, settings);
+                this._updateTimepicker(inst);
+            }
+        },
+
+
+        /* Set the time for a jQuery selection.
+	    @param  target  element - the target input field or division or span
+	    @param  time    String - the new time */
+	    _setTimeTimepicker: function(target, time) {
+		    var inst = this._getInst(target);
+		    if (inst) {
+			    this._setTime(inst, time);
+    			this._updateTimepicker(inst);
+	    		this._updateAlternate(inst, time);
+		    }
+	    },
+
+        /* Set the time directly. */
+        _setTime: function(inst, time, noChange) {
+            var origHours = inst.hours;
+            var origMinutes = inst.minutes;
+            if (time instanceof Date) {
+                inst.hours = time.getHours();
+                inst.minutes = time.getMinutes();
+            } else {
+                var time = this.parseTime(inst, time);
+                inst.hours = time.hours;
+                inst.minutes = time.minutes;
+            }
+
+            if ((origHours != inst.hours || origMinutes != inst.minutes) && !noChange) {
+                inst.input.trigger('change');
+            }
+            this._updateTimepicker(inst);
+            this._updateSelectedValue(inst);
+        },
+
+        /* Return the current time, ready to be parsed, rounded to the closest 5 minute */
+        _getCurrentTimeRounded: function (inst) {
+            var currentTime = new Date(),
+                currentMinutes = currentTime.getMinutes(),
+                // round to closest 5
+                adjustedMinutes = Math.round( currentMinutes / 5 ) * 5;
+            currentTime.setMinutes(adjustedMinutes);
+            return currentTime;
+        },
+
+        /*
+        * Parse a time string into hours and minutes
+        */
+        parseTime: function (inst, timeVal) {
+            var retVal = new Object();
+            retVal.hours = -1;
+            retVal.minutes = -1;
+            
+            if(!timeVal)
+                return '';
+
+            var timeSeparator = this._get(inst, 'timeSeparator'),
+                amPmText = this._get(inst, 'amPmText'),
+                showHours = this._get(inst, 'showHours'),
+                showMinutes = this._get(inst, 'showMinutes'),
+                optionalMinutes = this._get(inst, 'optionalMinutes'),
+                showPeriod = (this._get(inst, 'showPeriod') == true),
+                p = timeVal.indexOf(timeSeparator);
+
+            // check if time separator found
+            if (p != -1) {
+                retVal.hours = parseInt(timeVal.substr(0, p), 10);
+                retVal.minutes = parseInt(timeVal.substr(p + 1), 10);
+            }
+            // check for hours only
+            else if ( (showHours) && ( !showMinutes || optionalMinutes ) ) {
+                retVal.hours = parseInt(timeVal, 10);
+            }
+            // check for minutes only
+            else if ( ( ! showHours) && (showMinutes) ) {
+                retVal.minutes = parseInt(timeVal, 10);
+            }
+
+            if (showHours) {
+                var timeValUpper = timeVal.toUpperCase();
+                if ((retVal.hours < 12) && (showPeriod) && (timeValUpper.indexOf(amPmText[1].toUpperCase()) != -1)) {
+                    retVal.hours += 12;
+                }
+                // fix for 12 AM
+                if ((retVal.hours == 12) && (showPeriod) && (timeValUpper.indexOf(amPmText[0].toUpperCase()) != -1)) {
+                    retVal.hours = 0;
+                }
+            }
+            
+            return retVal;
+        },
+
+        selectNow: function(event) {
+            var id = $(event.target).attr("data-timepicker-instance-id"),
+                $target = $(id),
+                inst = this._getInst($target[0]);
+            //if (!inst || (input && inst != $.data(input, PROP_NAME))) { return; }
+            var currentTime = new Date();
+            inst.hours = currentTime.getHours();
+            inst.minutes = currentTime.getMinutes();
+            this._updateSelectedValue(inst);
+            this._updateTimepicker(inst);
+            this._hideTimepicker();
+        },
+
+        deselectTime: function(event) {
+            var id = $(event.target).attr("data-timepicker-instance-id"),
+                $target = $(id),
+                inst = this._getInst($target[0]);
+            inst.hours = -1;
+            inst.minutes = -1;
+            this._updateSelectedValue(inst);
+            this._hideTimepicker();
+        },
+
+
+        selectHours: function (event) {
+            var $td = $(event.currentTarget),
+                id = $td.attr("data-timepicker-instance-id"),
+                newHours = parseInt($td.attr("data-hour")),
+                fromDoubleClick = event.data.fromDoubleClick,
+                $target = $(id),
+                inst = this._getInst($target[0]),
+                showMinutes = (this._get(inst, 'showMinutes') == true);
+
+            // don't select if disabled
+            if ( $.timepicker._isDisabledTimepicker($target.attr('id')) ) { return false }
+
+            $td.parents('.ui-timepicker-hours:first').find('a').removeClass('ui-state-active');
+            $td.children('a').addClass('ui-state-active');
+            inst.hours = newHours;
+
+            // added for onMinuteShow callback
+            var onMinuteShow = this._get(inst, 'onMinuteShow');
+            if (onMinuteShow) {
+                // this will trigger a callback on selected hour to make sure selected minute is allowed. 
+                this._updateMinuteDisplay(inst);
+            }
+
+            this._updateSelectedValue(inst);
+
+            inst._hoursClicked = true;
+            if ((inst._minutesClicked) || (fromDoubleClick) || (showMinutes == false)) {
+                $.timepicker._hideTimepicker();
+            }
+            // return false because if used inline, prevent the url to change to a hashtag
+            return false;
+        },
+
+        selectMinutes: function (event) {
+            var $td = $(event.currentTarget),
+                id = $td.attr("data-timepicker-instance-id"),
+                newMinutes = parseInt($td.attr("data-minute")),
+                fromDoubleClick = event.data.fromDoubleClick,
+                $target = $(id),
+                inst = this._getInst($target[0]),
+                showHours = (this._get(inst, 'showHours') == true);
+
+            // don't select if disabled
+            if ( $.timepicker._isDisabledTimepicker($target.attr('id')) ) { return false }
+
+            $td.parents('.ui-timepicker-minutes:first').find('a').removeClass('ui-state-active');
+            $td.children('a').addClass('ui-state-active');
+
+            inst.minutes = newMinutes;
+            this._updateSelectedValue(inst);
+
+            inst._minutesClicked = true;
+            if ((inst._hoursClicked) || (fromDoubleClick) || (showHours == false)) {
+                $.timepicker._hideTimepicker();
+                // return false because if used inline, prevent the url to change to a hashtag
+                return false;
+            }
+
+            // return false because if used inline, prevent the url to change to a hashtag
+            return false;
+        },
+
+        _updateSelectedValue: function (inst) {
+            var newTime = this._getParsedTime(inst);
+            if (inst.input) {
+                inst.input.val(newTime);
+                inst.input.trigger('change');
+            }
+            var onSelect = this._get(inst, 'onSelect');
+            if (onSelect) { onSelect.apply((inst.input ? inst.input[0] : null), [newTime, inst]); } // trigger custom callback
+            this._updateAlternate(inst, newTime);
+            return newTime;
+        },
+        
+        /* this function process selected time and return it parsed according to instance options */
+        _getParsedTime: function(inst) {
+
+            if (inst.hours == -1 && inst.minutes == -1) {
+                return '';
+            }
+
+            // default to 0 AM if hours is not valid
+            if ((inst.hours < inst.hours.starts) || (inst.hours > inst.hours.ends )) { inst.hours = 0; }
+            // default to 0 minutes if minute is not valid
+            if ((inst.minutes < inst.minutes.starts) || (inst.minutes > inst.minutes.ends)) { inst.minutes = 0; }
+
+            var period = "",
+                showPeriod = (this._get(inst, 'showPeriod') == true),
+                showLeadingZero = (this._get(inst, 'showLeadingZero') == true),
+                showHours = (this._get(inst, 'showHours') == true),
+                showMinutes = (this._get(inst, 'showMinutes') == true),
+                optionalMinutes = (this._get(inst, 'optionalMinutes') == true),
+                amPmText = this._get(inst, 'amPmText'),
+                selectedHours = inst.hours ? inst.hours : 0,
+                selectedMinutes = inst.minutes ? inst.minutes : 0,
+                displayHours = selectedHours ? selectedHours : 0,
+                parsedTime = '';
+
+            // fix some display problem when hours or minutes are not selected yet
+            if (displayHours == -1) { displayHours = 0 }
+            if (selectedMinutes == -1) { selectedMinutes = 0 }
+
+            if (showPeriod) { 
+                if (inst.hours == 0) {
+                    displayHours = 12;
+                }
+                if (inst.hours < 12) {
+                    period = amPmText[0];
+                }
+                else {
+                    period = amPmText[1];
+                    if (displayHours > 12) {
+                        displayHours -= 12;
+                    }
+                }
+            }
+
+            var h = displayHours.toString();
+            if (showLeadingZero && (displayHours < 10)) { h = '0' + h; }
+
+            var m = selectedMinutes.toString();
+            if (selectedMinutes < 10) { m = '0' + m; }
+
+            if (showHours) {
+                parsedTime += h;
+            }
+            if (showHours && showMinutes && (!optionalMinutes || m != 0)) {
+                parsedTime += this._get(inst, 'timeSeparator');
+            }
+            if (showMinutes && (!optionalMinutes || m != 0)) {
+                parsedTime += m;
+            }
+            if (showHours) {
+                if (period.length > 0) { parsedTime += this._get(inst, 'periodSeparator') + period; }
+            }
+            
+            return parsedTime;
+        },
+        
+        /* Update any alternate field to synchronise with the main field. */
+        _updateAlternate: function(inst, newTime) {
+            var altField = this._get(inst, 'altField');
+            if (altField) { // update alternate field too
+                $(altField).each(function(i,e) {
+                    $(e).val(newTime);
+                });
+            }
+        },
+
+        _getTimeAsDateTimepicker: function(input) {
+            var inst = this._getInst(input);
+            if (inst.hours == -1 && inst.minutes == -1) {
+                return '';
+            }
+
+            // default to 0 AM if hours is not valid
+            if ((inst.hours < inst.hours.starts) || (inst.hours > inst.hours.ends )) { inst.hours = 0; }
+            // default to 0 minutes if minute is not valid
+            if ((inst.minutes < inst.minutes.starts) || (inst.minutes > inst.minutes.ends)) { inst.minutes = 0; }
+
+            return new Date(0, 0, 0, inst.hours, inst.minutes, 0);
+        },
+        /* This might look unused but it's called by the $.fn.timepicker function with param getTime */
+        /* added v 0.2.3 - gitHub issue #5 - Thanks edanuff */
+        _getTimeTimepicker : function(input) {
+            var inst = this._getInst(input);
+            return this._getParsedTime(inst);
+        },
+        _getHourTimepicker: function(input) {
+            var inst = this._getInst(input);
+            if ( inst == undefined) { return -1; }
+            return inst.hours;
+        },
+        _getMinuteTimepicker: function(input) {
+            var inst= this._getInst(input);
+            if ( inst == undefined) { return -1; }
+            return inst.minutes;
+        }
+
+    });
+
+
+
+    /* Invoke the timepicker functionality.
+    @param  options  string - a command, optionally followed by additional parameters or
+    Object - settings for attaching new timepicker functionality
+    @return  jQuery object */
+    $.fn.timepicker = function (options) {
+
+        /* Initialise the time picker. */
+        if (!$.timepicker.initialized) {
+            $(document).mousedown($.timepicker._checkExternalClick).
+			find('body').append($.timepicker.tpDiv);
+            $.timepicker.initialized = true;
+        }
+
+
+
+        var otherArgs = Array.prototype.slice.call(arguments, 1);
+        if (typeof options == 'string' && (options == 'getTime' || options == 'getTimeAsDate' || options == 'getHour' || options == 'getMinute' ))
+            return $.timepicker['_' + options + 'Timepicker'].
+			    apply($.timepicker, [this[0]].concat(otherArgs));
+        if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
+            return $.timepicker['_' + options + 'Timepicker'].
+                apply($.timepicker, [this[0]].concat(otherArgs));
+        return this.each(function () {
+            typeof options == 'string' ?
+			$.timepicker['_' + options + 'Timepicker'].
+				apply($.timepicker, [this].concat(otherArgs)) :
+			$.timepicker._attachTimepicker(this, options);
+        });
+    };
+
+    /* jQuery extend now ignores nulls! */
+    function extendRemove(target, props) {
+        $.extend(target, props);
+        for (var name in props)
+            if (props[name] == null || props[name] == undefined)
+                target[name] = props[name];
+        return target;
+    };
+
+    $.timepicker = new Timepicker(); // singleton instance
+    $.timepicker.initialized = false;
+    $.timepicker.uuid = new Date().getTime();
+    $.timepicker.version = "0.3.2";
+
+    // Workaround for #4055
+    // Add another global to avoid noConflict issues with inline event handlers
+    window['TP_jQuery_' + tpuuid] = $;
+
+})(jQuery);
diff --git a/static/office-calendar.png b/static/office-calendar.png
new file mode 100644
index 0000000..106a592
Binary files /dev/null and b/static/office-calendar.png differ
diff --git a/static/phpc.css b/static/phpc.css
new file mode 100644
index 0000000..cc590a3
--- /dev/null
+++ b/static/phpc.css
@@ -0,0 +1,271 @@
+/*
+ * Copyright 2013 Sean Proctor
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+body {
+  margin: 0 2em;
+  padding: 0;
+}
+
+.php-calendar h1 {
+  text-align: center;
+  font-size: 2em !important;
+}
+
+.php-calendar h1 a {
+  text-decoration: none;
+}
+
+.php-calendar h2 {
+  text-align: center;
+}
+
+.phpc-bar {
+  margin: .5em 0;
+  text-align: center;
+  padding: 4px;
+}
+
+.phpc-bar a {
+  margin: 0 .25em;
+  text-decoration: none;
+}
+
+.php-calendar a:hover {
+  opacity: .7;
+  filter:Alpha(Opacity=70);
+}
+
+.php-calendar a.ui-state-default,
+.php-calendar .ui-state-default a {
+  opacity: 1;
+  filter:Alpha(Opacity=100);
+}
+
+.php-calendar table {
+  border-collapse: collapse;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.phpc-container {
+  min-width: 50%;
+}
+
+.php-create-category {
+  margin-left: auto;
+  margin-right: auto;
+  text-align: center;
+}
+
+table.phpc-main {
+  width: 100%;
+}
+
+div.phpc-main {
+  padding: 0;
+}
+
+.phpc-main h2 {
+  text-align: left;
+  margin: 0;
+  padding: 2px .5em; 
+}
+
+.phpc-main div {
+  padding-left: .5em;
+  padding-right: .5em;
+}
+
+.phpc-event-header {
+  padding: .5em;
+}
+
+.phpc-event li a {
+  text-decoration: none;
+  margin: 0 .25em;
+}
+
+p.phpc-desc {
+  padding: .5em;
+  text-align: justify;
+}
+
+.php-calendar caption {
+  font-weight: bolder;
+}
+
+.php-calendar tfoot {
+  text-align: center;
+}
+
+col.phpc-week {
+  width: 3%;
+}
+
+col.phpc-day {
+  width: 14%;
+}
+
+.phpc-calendar td, .phpc-calendar th {
+  border-collapse: collapse;
+  vertical-align: text-top;
+}
+
+.phpc-calendar td {
+  padding: 0;
+  text-align: left;
+  height: 100px;
+}
+
+.phpc-calendar li {
+  margin: 4px;
+}
+
+.phpc-main ul {
+  list-style-type: none;
+  padding: 0;
+}
+
+.phpc-calendar li a {
+  font-weight: normal !important;
+  display: block;
+  padding: 2px;
+  text-decoration: none;
+}
+
+.phpc-button {
+  text-align: center;
+}
+
+a.phpc-add {
+  float: right;
+  padding: 0;
+  font-size: .5em !important;
+}
+
+#phpc-summary-view {
+  display: none;
+  position: absolute;
+  width: 300px;
+  max-height: 250px;
+  overflow: hidden;
+  z-index: 1;
+}
+
+#phpc-summary-head {
+  border-bottom: 1px solid inherit;
+  padding: 5px;
+}
+
+#phpc-summary-body {
+  padding: 5px;
+}
+
+.form table {
+  width: 100%;
+}
+
+.phpc-date {
+  padding: 5px 3px;
+  cursor: pointer;
+}
+
+.phpc-calendar th.ui-state-default {
+  cursor: pointer;
+}
+
+.phpc-date > a {
+  text-decoration: none;
+}
+
+.phpc-shadow {
+  opacity: .5;
+  filter:Alpha(Opacity=5);
+}
+
+td.form-color {
+  padding: 2px;
+  width: 20px;
+  height: 20px;
+  border-style: none;
+}
+
+td.form-color-selected {
+  border: 2px dotted #000000;
+  padding: 0;
+}
+
+.phpc-message {
+  padding: 4px;
+  margin: .5em 0;
+}
+
+.phpc-logged {
+  padding: 4px;
+  z-index: 1;
+  float: right;
+}
+
+.phpc-logged span {
+  font-weight: bold;
+  margin-left: 1em;
+}
+
+/* labels associated with checkboxes */
+.php-calendar label,
+.php-calendar input[type=submit],
+.php-calendar tfoot a {
+  font-size: .9em !important;
+}
+
+.form-submit div {
+  text-align: center;
+}
+
+div.ui-datepicker, div.ui-timepicker {
+  font-size: .9em;
+}
+
+.php-calendar.ui-widget {
+  font-size: 1em;
+}
+
+.phpc-dropdown-list-title {
+  margin-right: 2px;
+}
+
+.phpc-dropdown-list ul {
+  position: absolute;
+  margin: 0;
+  padding: 0;
+  list-style-type: none;
+  z-index: 99;
+}
+
+.phpc-dropdown-list li {
+  text-align: left;
+  font-size: medium;
+  font-weight: normal;
+  padding: 0.1em;
+}
+
+.phpc-dropdown-list {
+  margin-right: 1em;
+}
+
+.phpc-dropdown-list-button {
+  display: inline-block !important;
+}
diff --git a/static/phpc.js b/static/phpc.js
new file mode 100755
index 0000000..4c3279f
--- /dev/null
+++ b/static/phpc.js
@@ -0,0 +1,326 @@
+var activeRequest = null;
+var cache = new Object;
+ 
+$(document).ready(function(){
+  // Add theme to appropriate items
+  // All widgets
+  $(".phpc-event-list a, .phpc-message, .phpc-date, .phpc-bar, .php-calendar h1, #phpc-summary-view, .phpc-logged, .php-calendar td, .php-calendar th, .phpc-message, .phpc-dropdown-list ul").addClass("ui-widget");
+  // Buttons
+  $(".phpc-add").button({
+      text: false,
+      icons: { primary: "ui-icon-plus" }
+    });
+  $(".php-calendar input[type=submit], .php-calendar tfoot a, .phpc-button").button();
+  // The buttons are too hard to read waiting on:
+  //    http://wiki.jqueryui.com/w/page/12137730/Checkbox
+  // $(".php-calendar input[type=checkbox] + label").prev().button();
+  $(".phpc-date, .phpc-event-list a, .phpc-calendar th.ui-state-default").on('mouseover mouseout',
+      function (event) {
+        $(this).toggleClass("ui-state-hover");
+      });
+  $(".phpc-date .phpc-add").on('mouseover mouseout',
+      function (event) {
+        $(this).parent(".phpc-date").toggleClass("ui-state-hover");
+      });
+  // fancy corners
+  $(".phpc-event-list a, .phpc-message, .phpc-bar, .php-calendar h1, #phpc-summary-view, .phpc-logged, .phpc-dropdown-list ul").addClass("ui-corner-all");
+  // add jquery ui style classes
+  $(".php-calendar td, #phpc-summary-view, .phpc-dropdown-list ul").addClass("ui-widget-content");
+  $(".phpc-event-list a, .phpc-message").addClass("ui-state-default");
+  // Tabs
+  $(".phpc-tabs").tabs();
+
+  // Find the color of ui-widget-content
+  var $tempElem = $("<p class=ui-widget-content></p>").hide().appendTo("body");
+  var color = $tempElem.css("color");
+  $(".phpc-dropdown-list ul a").css("color", color);
+  $tempElem.remove();
+
+  // Replace descriptions with the description run through markdown
+  var converter = new showdown.Converter();
+  $(".phpc-desc").each(function() {
+    var text = $(this).text();
+    var html = converter.makeHtml(text);
+    $(this).html(html);
+  });
+
+  // Summary init
+  $("#phpc-summary-view").hide();
+  $(".phpc-event-list a").hoverIntent(
+    function() { showSummary(this); },
+    function() { hideSummary(this); });
+
+  // Multi select stuff
+  var select_id = 1;
+  var options = new Array();
+  var default_option = false;
+  $(".phpc-multi-select").each(function() {
+    var master_id = "phpc-multi-master"+select_id
+    $(this).before("<select class=\"phpc-multi-master\" id=\""+master_id+"\"></select>");
+    $(this).children().each(function() {
+      if($(this).prop("tagName") == "OPTION") {
+        var val = $(this).attr("value");
+        $("#"+master_id).append("<option value=\""+val+"\">"+$(this).text()+"</option>");
+        options[val] = [this];
+        if($(this).attr("selected") == "selected")
+          default_option = val;
+      } else if($(this).prop("tagName") == "OPTGROUP") {
+        var val = $(this).attr("label");
+        var sub_options = new Array();
+        $("#"+master_id).append("<option value=\""+val+"\">"+val+"</option>");
+        $(this).children().each(function() {
+          sub_options.push(this);
+          if($(this).attr("selected") == "selected")
+            default_option = val;
+        });
+        options[val] = sub_options;
+      }
+    });
+    if(default_option !== false)
+      $("#"+master_id).val(default_option);
+    var select = this;
+    $("#"+master_id).each(function() {
+      var val = $("#"+master_id+" option:selected").attr("value");
+      $(select).empty();
+      for(var key in options[val]) {
+        $(select).append(options[val][key]);
+      }
+    });
+    $("#"+master_id).change(function() {
+      var val = $("#"+master_id+" option:selected").attr("value");
+      $(select).empty();
+      for(var key in options[val]) {
+        $(select).append(options[val][key]);
+      }
+    });
+    select_id++;
+  });
+
+  // Generic form stuff
+  $(".form-select").each(function(){
+    formSelectUpdate($(this));
+  });
+  $(".form-select").change(function(){
+    formSelectUpdate($(this));
+  });
+  $(".form-color-input").spectrum({ preferredFormat: "hex", showInput: true });
+
+  // Dropdown list stuff
+  $(".phpc-dropdown-list").each(function(index, elem) {
+    var titleElement = $(elem).children(".phpc-dropdown-list-header");
+    var listElement = $(elem).children("ul");
+    $(document).mouseup(function(e) {
+      var container = $(elem);
+
+      if (!container.is(e.target) // if the target of the click isn't the container...
+        && container.has(e.target).length === 0) // ... nor a descendant of the container
+      {
+        listElement.hide();
+      }
+    });
+    var positionList = function() {
+        listElement.css("left", titleElement.offset().left);
+        listElement.css("top", titleElement.offset().top +
+		titleElement.outerHeight());
+        listElement.css("min-width", titleElement.outerWidth());
+    }
+    var button = $("<a>")
+      .appendTo(titleElement)
+      .addClass("phpc-dropdown-list-button ui-icon ui-icon-circle-triangle-s")
+      .click(function() {
+        $(window).resize(positionList);
+        positionList();
+        listElement.toggle();
+      });
+
+    listElement.hide();
+  });
+
+  // Calendar specific/hacky stuff
+  if($("#phpc-modify").length > 0 && !$("#phpc-modify").prop("checked"))
+    toggle_when(false);
+
+  $("#phpc-modify").click(function() {
+      toggle_when($(this).prop("checked"));
+    });
+
+  $("#time-type").change(function(){
+    if($(this).val() == "normal") {
+      $("#start-time").show();
+      $("#end-time").show();
+    } else {
+      $("#start-time").hide();
+      $("#end-time").hide();
+    }
+  });
+
+  $("#time-type").each(function(){
+    if($(this).val() == "normal") {
+      $("#start-time").show();
+      $("#end-time").show();
+    } else {
+      $("#start-time").hide();
+      $("#end-time").hide();
+    }
+  });
+
+  var dateRelation = compareDates("start", "end");
+  $("#start-date select").change(function(){
+    if(dateRelation == 0) {
+      copyDate("start", "end");
+    } else {
+      dateRelation = compareDates("start", "end");
+      /*if(dateRelation > 0) {
+        copyDate("start", "end");
+	dateRelation = 0;
+      }*/
+    }
+  });
+  $("#end-date select").change(function(){
+    dateRelation = compareDates("start", "end");
+    /*if(dateRelation > 0) {
+      copyDate("end", "start");
+      dateRelation = 0;
+    }*/
+  });
+
+});
+
+function toggle_when(on) {
+  $('.phpc-when input[name!="phpc-modify"], .phpc-when select').prop('disabled', !on);
+}
+
+function formSelectUpdate(select) {
+  var idPrefix = "#" + select.attr("name") + "-";
+  select.children("option:not(:selected)").each(function(){
+    $(idPrefix + $(this).val()).hide();
+  });
+  select.children("option:selected").each(function(){
+    $(idPrefix + $(this).val()).show();
+  });
+}
+
+// return 0 on equal 1 on prefix1 > prefix, -1 on prefix1 < prefix2
+function compareDates(prefix1, prefix2) {
+  var year1 = parseInt($("#" + prefix1 + "-year").val());
+  var year2 = parseInt($("#" + prefix2 + "-year").val());
+  if(year1 > year2)
+    return 1;
+  if(year1 < year2)
+    return -1;
+
+  var month1 = parseInt($("#" + prefix1 + "-month").val());
+  var month2 = parseInt($("#" + prefix2 + "-month").val());
+  if(month1 > month2)
+    return 1;
+  if(month1 < month2)
+    return -1;
+
+  var day1 = parseInt($("#" + prefix1 + "-day").val());
+  var day2 = parseInt($("#" + prefix2 + "-day").val());
+  if(day1 > day2)
+    return 1;
+  if(day1 < day2)
+    return -1;
+
+  return 0;
+}
+
+function copyDate(date1, date2) {
+  $("#" + date2 + "-year").val($("#" + date1 + "-year").val());
+  $("#" + date2 + "-month").val($("#" + date1 + "-month").val());
+  $("#" + date2 + "-day").val($("#" + date1 + "-day").val());
+}
+
+//based on http://haacked.com/archive/2009/12/29/convert-rgb-to-hex.aspx
+function rgbToHex(color) {
+  if (color.substr(0, 1) == '#') {
+    return color.toUpperCase();
+  }
+  var digits = /(.*?)RGB\((\d+), (\d+), (\d+)\)/.exec(color.toUpperCase());
+  var red =  '0' + parseInt(digits[2]).toString(16);
+  var green = '0' + parseInt(digits[3]).toString(16);
+  var blue = '0' + parseInt(digits[4]).toString(16);
+  return ('#' + red.substring(red.length-2) + green.substring(green.length-2) + blue.substring(blue.length-2)).toUpperCase();
+}
+
+function textcolor(bgcolor) {
+  var red = parseInt(bgcolor.substr(1, 2),16);
+  var green = parseInt(bgcolor.substr(3, 2),16);
+  var blue = parseInt(bgcolor.substr(5, 2),16);
+  var luminance= (red*0.3 + green*0.59 + blue*0.11);
+  if (luminance <128) 
+  {
+    return "#FFFFFF"
+  }
+  else
+  {
+    return "#000000";
+  }
+}
+
+// sets he specified text in the floating div
+function setSummaryText(title,author,time,description,category) {
+  var converter = new showdown.Converter();
+	$("#phpc-summary-title").html(title);
+	$("#phpc-summary-author").html(author);
+	$("#phpc-summary-time").html(time);
+	$("#phpc-summary-body").html(converter.makeHtml(description));
+	$("#phpc-summary-category").html(category);
+}
+ 
+// set the location of the div relative to the current link and display it
+function showSummaryDiv(link) {
+	
+	var div = $("#phpc-summary-view");
+	var jLink = $(link);
+	var win = $(window);
+	var newTop = jLink.offset().top + jLink.outerHeight();
+	if( newTop + div.outerHeight()  > win.height() + win.scrollTop() )
+		newTop -= (jLink.outerHeight() + div.outerHeight());
+	
+	var newLeft = jLink.offset().left - ((div.outerWidth() - jLink.outerWidth())/2)
+	if( newLeft < 1 )
+		newLeft = 1;
+	else if( newLeft + div.outerWidth() > win.width() ) 
+		newLeft -=  (newLeft + div.outerWidth()) - win.width();
+
+	div.css("top", newTop + "px");
+	div.css("left", newLeft + "px");
+	div.show();
+}
+ 
+// shows the summary for a particular anchor's url. This will display cached data after the first request
+function showSummary(link) {
+	if( cache[link.href] != null ) {
+		var data = cache[link.href];
+		setSummaryText(data.title,data.author,data.time,data.body,
+				data.category);
+		showSummaryDiv(link);
+	}
+	else {
+		// abort any pending requests
+		if( activeRequest != null )
+			activeRequest.abort();
+		
+		// get the calendar data
+		activeRequest = $.getJSON(link.href + "&contentType=json",
+			function(data) {
+				cache[link.href] = data;
+				setSummaryText(data.title,data.author,data.time,
+					data.body,data.category);
+				showSummaryDiv(link);
+				activeRequest = null;
+			});
+	}	
+}
+ 
+// hides the event summary information
+function hideSummary(link) {
+	// abort any pending requests
+	if( activeRequest != null )
+		activeRequest.abort();
+
+	$("#phpc-summary-view").hide();
+	setSummaryText('','','','','');
+}
diff --git a/static/spectrum.css b/static/spectrum.css
new file mode 100644
index 0000000..a8ad9e4
--- /dev/null
+++ b/static/spectrum.css
@@ -0,0 +1,507 @@
+/***
+Spectrum Colorpicker v1.8.0
+https://github.com/bgrins/spectrum
+Author: Brian Grinstead
+License: MIT
+***/
+
+.sp-container {
+    position:absolute;
+    top:0;
+    left:0;
+    display:inline-block;
+    *display: inline;
+    *zoom: 1;
+    /* https://github.com/bgrins/spectrum/issues/40 */
+    z-index: 9999994;
+    overflow: hidden;
+}
+.sp-container.sp-flat {
+    position: relative;
+}
+
+/* Fix for * { box-sizing: border-box; } */
+.sp-container,
+.sp-container * {
+    -webkit-box-sizing: content-box;
+       -moz-box-sizing: content-box;
+            box-sizing: content-box;
+}
+
+/* http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio */
+.sp-top {
+  position:relative;
+  width: 100%;
+  display:inline-block;
+}
+.sp-top-inner {
+   position:absolute;
+   top:0;
+   left:0;
+   bottom:0;
+   right:0;
+}
+.sp-color {
+    position: absolute;
+    top:0;
+    left:0;
+    bottom:0;
+    right:20%;
+}
+.sp-hue {
+    position: absolute;
+    top:0;
+    right:0;
+    bottom:0;
+    left:84%;
+    height: 100%;
+}
+
+.sp-clear-enabled .sp-hue {
+    top:33px;
+    height: 77.5%;
+}
+
+.sp-fill {
+    padding-top: 80%;
+}
+.sp-sat, .sp-val {
+    position: absolute;
+    top:0;
+    left:0;
+    right:0;
+    bottom:0;
+}
+
+.sp-alpha-enabled .sp-top {
+    margin-bottom: 18px;
+}
+.sp-alpha-enabled .sp-alpha {
+    display: block;
+}
+.sp-alpha-handle {
+    position:absolute;
+    top:-4px;
+    bottom: -4px;
+    width: 6px;
+    left: 50%;
+    cursor: pointer;
+    border: 1px solid black;
+    background: white;
+    opacity: .8;
+}
+.sp-alpha {
+    display: none;
+    position: absolute;
+    bottom: -14px;
+    right: 0;
+    left: 0;
+    height: 8px;
+}
+.sp-alpha-inner {
+    border: solid 1px #333;
+}
+
+.sp-clear {
+    display: none;
+}
+
+.sp-clear.sp-clear-display {
+    background-position: center;
+}
+
+.sp-clear-enabled .sp-clear {
+    display: block;
+    position:absolute;
+    top:0px;
+    right:0;
+    bottom:0;
+    left:84%;
+    height: 28px;
+}
+
+/* Don't allow text selection */
+.sp-container, .sp-replacer, .sp-preview, .sp-dragger, .sp-slider, .sp-alpha, .sp-clear, .sp-alpha-handle, .sp-container.sp-dragging .sp-input, .sp-container button  {
+    -webkit-user-select:none;
+    -moz-user-select: -moz-none;
+    -o-user-select:none;
+    user-select: none;
+}
+
+.sp-container.sp-input-disabled .sp-input-container {
+    display: none;
+}
+.sp-container.sp-buttons-disabled .sp-button-container {
+    display: none;
+}
+.sp-container.sp-palette-buttons-disabled .sp-palette-button-container {
+    display: none;
+}
+.sp-palette-only .sp-picker-container {
+    display: none;
+}
+.sp-palette-disabled .sp-palette-container {
+    display: none;
+}
+
+.sp-initial-disabled .sp-initial {
+    display: none;
+}
+
+
+/* Gradients for hue, saturation and value instead of images.  Not pretty... but it works */
+.sp-sat {
+    background-image: -webkit-gradient(linear,  0 0, 100% 0, from(#FFF), to(rgba(204, 154, 129, 0)));
+    background-image: -webkit-linear-gradient(left, #FFF, rgba(204, 154, 129, 0));
+    background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
+    background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
+    background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
+    background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0));
+    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";
+    filter : progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81');
+}
+.sp-val {
+    background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000000), to(rgba(204, 154, 129, 0)));
+    background-image: -webkit-linear-gradient(bottom, #000000, rgba(204, 154, 129, 0));
+    background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
+    background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
+    background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
+    background-image: linear-gradient(to top, #000, rgba(204, 154, 129, 0));
+    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";
+    filter : progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000');
+}
+
+.sp-hue {
+    background: -moz-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
+    background: -ms-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
+    background: -o-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
+    background: -webkit-gradient(linear, left top, left bottom, from(#ff0000), color-stop(0.17, #ffff00), color-stop(0.33, #00ff00), color-stop(0.5, #00ffff), color-stop(0.67, #0000ff), color-stop(0.83, #ff00ff), to(#ff0000));
+    background: -webkit-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
+    background: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
+}
+
+/* IE filters do not support multiple color stops.
+   Generate 6 divs, line them up, and do two color gradients for each.
+   Yes, really.
+ */
+.sp-1 {
+    height:17%;
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00');
+}
+.sp-2 {
+    height:16%;
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00');
+}
+.sp-3 {
+    height:17%;
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff');
+}
+.sp-4 {
+    height:17%;
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff');
+}
+.sp-5 {
+    height:16%;
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff');
+}
+.sp-6 {
+    height:17%;
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000');
+}
+
+.sp-hidden {
+    display: none !important;
+}
+
+/* Clearfix hack */
+.sp-cf:before, .sp-cf:after { content: ""; display: table; }
+.sp-cf:after { clear: both; }
+.sp-cf { *zoom: 1; }
+
+/* Mobile devices, make hue slider bigger so it is easier to slide */
+@media (max-device-width: 480px) {
+    .sp-color { right: 40%; }
+    .sp-hue { left: 63%; }
+    .sp-fill { padding-top: 60%; }
+}
+.sp-dragger {
+   border-radius: 5px;
+   height: 5px;
+   width: 5px;
+   border: 1px solid #fff;
+   background: #000;
+   cursor: pointer;
+   position:absolute;
+   top:0;
+   left: 0;
+}
+.sp-slider {
+    position: absolute;
+    top:0;
+    cursor:pointer;
+    height: 3px;
+    left: -1px;
+    right: -1px;
+    border: 1px solid #000;
+    background: white;
+    opacity: .8;
+}
+
+/*
+Theme authors:
+Here are the basic themeable display options (colors, fonts, global widths).
+See http://bgrins.github.io/spectrum/themes/ for instructions.
+*/
+
+.sp-container {
+    border-radius: 0;
+    background-color: #ECECEC;
+    border: solid 1px #f0c49B;
+    padding: 0;
+}
+.sp-container, .sp-container button, .sp-container input, .sp-color, .sp-hue, .sp-clear {
+    font: normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    -ms-box-sizing: border-box;
+    box-sizing: border-box;
+}
+.sp-top {
+    margin-bottom: 3px;
+}
+.sp-color, .sp-hue, .sp-clear {
+    border: solid 1px #666;
+}
+
+/* Input */
+.sp-input-container {
+    float:right;
+    width: 100px;
+    margin-bottom: 4px;
+}
+.sp-initial-disabled  .sp-input-container {
+    width: 100%;
+}
+.sp-input {
+   font-size: 12px !important;
+   border: 1px inset;
+   padding: 4px 5px;
+   margin: 0;
+   width: 100%;
+   background:transparent;
+   border-radius: 3px;
+   color: #222;
+}
+.sp-input:focus  {
+    border: 1px solid orange;
+}
+.sp-input.sp-validation-error {
+    border: 1px solid red;
+    background: #fdd;
+}
+.sp-picker-container , .sp-palette-container {
+    float:left;
+    position: relative;
+    padding: 10px;
+    padding-bottom: 300px;
+    margin-bottom: -290px;
+}
+.sp-picker-container {
+    width: 172px;
+    border-left: solid 1px #fff;
+}
+
+/* Palettes */
+.sp-palette-container {
+    border-right: solid 1px #ccc;
+}
+
+.sp-palette-only .sp-palette-container {
+    border: 0;
+}
+
+.sp-palette .sp-thumb-el {
+    display: block;
+    position:relative;
+    float:left;
+    width: 24px;
+    height: 15px;
+    margin: 3px;
+    cursor: pointer;
+    border:solid 2px transparent;
+}
+.sp-palette .sp-thumb-el:hover, .sp-palette .sp-thumb-el.sp-thumb-active {
+    border-color: orange;
+}
+.sp-thumb-el {
+    position:relative;
+}
+
+/* Initial */
+.sp-initial {
+    float: left;
+    border: solid 1px #333;
+}
+.sp-initial span {
+    width: 30px;
+    height: 25px;
+    border:none;
+    display:block;
+    float:left;
+    margin:0;
+}
+
+.sp-initial .sp-clear-display {
+    background-position: center;
+}
+
+/* Buttons */
+.sp-palette-button-container,
+.sp-button-container {
+    float: right;
+}
+
+/* Replacer (the little preview div that shows up instead of the <input>) */
+.sp-replacer {
+    margin:0;
+    overflow:hidden;
+    cursor:pointer;
+    padding: 4px;
+    display:inline-block;
+    *zoom: 1;
+    *display: inline;
+    border: solid 1px #91765d;
+    background: #eee;
+    color: #333;
+    vertical-align: middle;
+}
+.sp-replacer:hover, .sp-replacer.sp-active {
+    border-color: #F0C49B;
+    color: #111;
+}
+.sp-replacer.sp-disabled {
+    cursor:default;
+    border-color: silver;
+    color: silver;
+}
+.sp-dd {
+    padding: 2px 0;
+    height: 16px;
+    line-height: 16px;
+    float:left;
+    font-size:10px;
+}
+.sp-preview {
+    position:relative;
+    width:25px;
+    height: 20px;
+    border: solid 1px #222;
+    margin-right: 5px;
+    float:left;
+    z-index: 0;
+}
+
+.sp-palette {
+    *width: 220px;
+    max-width: 220px;
+}
+.sp-palette .sp-thumb-el {
+    width:16px;
+    height: 16px;
+    margin:2px 1px;
+    border: solid 1px #d0d0d0;
+}
+
+.sp-container {
+    padding-bottom:0;
+}
+
+
+/* Buttons: http://hellohappy.org/css3-buttons/ */
+.sp-container button {
+  background-color: #eeeeee;
+  background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc);
+  background-image: -moz-linear-gradient(top, #eeeeee, #cccccc);
+  background-image: -ms-linear-gradient(top, #eeeeee, #cccccc);
+  background-image: -o-linear-gradient(top, #eeeeee, #cccccc);
+  background-image: linear-gradient(to bottom, #eeeeee, #cccccc);
+  border: 1px solid #ccc;
+  border-bottom: 1px solid #bbb;
+  border-radius: 3px;
+  color: #333;
+  font-size: 14px;
+  line-height: 1;
+  padding: 5px 4px;
+  text-align: center;
+  text-shadow: 0 1px 0 #eee;
+  vertical-align: middle;
+}
+.sp-container button:hover {
+    background-color: #dddddd;
+    background-image: -webkit-linear-gradient(top, #dddddd, #bbbbbb);
+    background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb);
+    background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb);
+    background-image: -o-linear-gradient(top, #dddddd, #bbbbbb);
+    background-image: linear-gradient(to bottom, #dddddd, #bbbbbb);
+    border: 1px solid #bbb;
+    border-bottom: 1px solid #999;
+    cursor: pointer;
+    text-shadow: 0 1px 0 #ddd;
+}
+.sp-container button:active {
+    border: 1px solid #aaa;
+    border-bottom: 1px solid #888;
+    -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
+    -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
+    -ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
+    -o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
+    box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
+}
+.sp-cancel {
+    font-size: 11px;
+    color: #d93f3f !important;
+    margin:0;
+    padding:2px;
+    margin-right: 5px;
+    vertical-align: middle;
+    text-decoration:none;
+
+}
+.sp-cancel:hover {
+    color: #d93f3f !important;
+    text-decoration: underline;
+}
+
+
+.sp-palette span:hover, .sp-palette span.sp-thumb-active {
+    border-color: #000;
+}
+
+.sp-preview, .sp-alpha, .sp-thumb-el {
+    position:relative;
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);
+}
+.sp-preview-inner, .sp-alpha-inner, .sp-thumb-inner {
+    display:block;
+    position:absolute;
+    top:0;left:0;bottom:0;right:0;
+}
+
+.sp-palette .sp-thumb-inner {
+    background-position: 50% 50%;
+    background-repeat: no-repeat;
+}
+
+.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner {
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=);
+}
+
+.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner {
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=);
+}
+
+.sp-clear-display {
+    background-repeat:no-repeat;
+    background-position: center;
+    background-image: url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==);
+}
diff --git a/static/spectrum.js b/static/spectrum.js
new file mode 100644
index 0000000..7200978
--- /dev/null
+++ b/static/spectrum.js
@@ -0,0 +1,2323 @@
+// Spectrum Colorpicker v1.8.0
+// https://github.com/bgrins/spectrum
+// Author: Brian Grinstead
+// License: MIT
+
+(function (factory) {
+    "use strict";
+
+    if (typeof define === 'function' && define.amd) { // AMD
+        define(['jquery'], factory);
+    }
+    else if (typeof exports == "object" && typeof module == "object") { // CommonJS
+        module.exports = factory(require('jquery'));
+    }
+    else { // Browser
+        factory(jQuery);
+    }
+})(function($, undefined) {
+    "use strict";
+
+    var defaultOpts = {
+
+        // Callbacks
+        beforeShow: noop,
+        move: noop,
+        change: noop,
+        show: noop,
+        hide: noop,
+
+        // Options
+        color: false,
+        flat: false,
+        showInput: false,
+        allowEmpty: false,
+        showButtons: true,
+        clickoutFiresChange: true,
+        showInitial: false,
+        showPalette: false,
+        showPaletteOnly: false,
+        hideAfterPaletteSelect: false,
+        togglePaletteOnly: false,
+        showSelectionPalette: true,
+        localStorageKey: false,
+        appendTo: "body",
+        maxSelectionSize: 7,
+        cancelText: "cancel",
+        chooseText: "choose",
+        togglePaletteMoreText: "more",
+        togglePaletteLessText: "less",
+        clearText: "Clear Color Selection",
+        noColorSelectedText: "No Color Selected",
+        preferredFormat: false,
+        className: "", // Deprecated - use containerClassName and replacerClassName instead.
+        containerClassName: "",
+        replacerClassName: "",
+        showAlpha: false,
+        theme: "sp-light",
+        palette: [["#ffffff", "#000000", "#ff0000", "#ff8000", "#ffff00", "#008000", "#0000ff", "#4b0082", "#9400d3"]],
+        selectionPalette: [],
+        disabled: false,
+        offset: null
+    },
+    spectrums = [],
+    IE = !!/msie/i.exec( window.navigator.userAgent ),
+    rgbaSupport = (function() {
+        function contains( str, substr ) {
+            return !!~('' + str).indexOf(substr);
+        }
+
+        var elem = document.createElement('div');
+        var style = elem.style;
+        style.cssText = 'background-color:rgba(0,0,0,.5)';
+        return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla');
+    })(),
+    replaceInput = [
+        "<div class='sp-replacer'>",
+            "<div class='sp-preview'><div class='sp-preview-inner'></div></div>",
+            "<div class='sp-dd'>&#9660;</div>",
+        "</div>"
+    ].join(''),
+    markup = (function () {
+
+        // IE does not support gradients with multiple stops, so we need to simulate
+        //  that for the rainbow slider with 8 divs that each have a single gradient
+        var gradientFix = "";
+        if (IE) {
+            for (var i = 1; i <= 6; i++) {
+                gradientFix += "<div class='sp-" + i + "'></div>";
+            }
+        }
+
+        return [
+            "<div class='sp-container sp-hidden'>",
+                "<div class='sp-palette-container'>",
+                    "<div class='sp-palette sp-thumb sp-cf'></div>",
+                    "<div class='sp-palette-button-container sp-cf'>",
+                        "<button type='button' class='sp-palette-toggle'></button>",
+                    "</div>",
+                "</div>",
+                "<div class='sp-picker-container'>",
+                    "<div class='sp-top sp-cf'>",
+                        "<div class='sp-fill'></div>",
+                        "<div class='sp-top-inner'>",
+                            "<div class='sp-color'>",
+                                "<div class='sp-sat'>",
+                                    "<div class='sp-val'>",
+                                        "<div class='sp-dragger'></div>",
+                                    "</div>",
+                                "</div>",
+                            "</div>",
+                            "<div class='sp-clear sp-clear-display'>",
+                            "</div>",
+                            "<div class='sp-hue'>",
+                                "<div class='sp-slider'></div>",
+                                gradientFix,
+                            "</div>",
+                        "</div>",
+                        "<div class='sp-alpha'><div class='sp-alpha-inner'><div class='sp-alpha-handle'></div></div></div>",
+                    "</div>",
+                    "<div class='sp-input-container sp-cf'>",
+                        "<input class='sp-input' type='text' spellcheck='false'  />",
+                    "</div>",
+                    "<div class='sp-initial sp-thumb sp-cf'></div>",
+                    "<div class='sp-button-container sp-cf'>",
+                        "<a class='sp-cancel' href='#'></a>",
+                        "<button type='button' class='sp-choose'></button>",
+                    "</div>",
+                "</div>",
+            "</div>"
+        ].join("");
+    })();
+
+    function paletteTemplate (p, color, className, opts) {
+        var html = [];
+        for (var i = 0; i < p.length; i++) {
+            var current = p[i];
+            if(current) {
+                var tiny = tinycolor(current);
+                var c = tiny.toHsl().l < 0.5 ? "sp-thumb-el sp-thumb-dark" : "sp-thumb-el sp-thumb-light";
+                c += (tinycolor.equals(color, current)) ? " sp-thumb-active" : "";
+                var formattedString = tiny.toString(opts.preferredFormat || "rgb");
+                var swatchStyle = rgbaSupport ? ("background-color:" + tiny.toRgbString()) : "filter:" + tiny.toFilter();
+                html.push('<span title="' + formattedString + '" data-color="' + tiny.toRgbString() + '" class="' + c + '"><span class="sp-thumb-inner" style="' + swatchStyle + ';" /></span>');
+            } else {
+                var cls = 'sp-clear-display';
+                html.push($('<div />')
+                    .append($('<span data-color="" style="background-color:transparent;" class="' + cls + '"></span>')
+                        .attr('title', opts.noColorSelectedText)
+                    )
+                    .html()
+                );
+            }
+        }
+        return "<div class='sp-cf " + className + "'>" + html.join('') + "</div>";
+    }
+
+    function hideAll() {
+        for (var i = 0; i < spectrums.length; i++) {
+            if (spectrums[i]) {
+                spectrums[i].hide();
+            }
+        }
+    }
+
+    function instanceOptions(o, callbackContext) {
+        var opts = $.extend({}, defaultOpts, o);
+        opts.callbacks = {
+            'move': bind(opts.move, callbackContext),
+            'change': bind(opts.change, callbackContext),
+            'show': bind(opts.show, callbackContext),
+            'hide': bind(opts.hide, callbackContext),
+            'beforeShow': bind(opts.beforeShow, callbackContext)
+        };
+
+        return opts;
+    }
+
+    function spectrum(element, o) {
+
+        var opts = instanceOptions(o, element),
+            flat = opts.flat,
+            showSelectionPalette = opts.showSelectionPalette,
+            localStorageKey = opts.localStorageKey,
+            theme = opts.theme,
+            callbacks = opts.callbacks,
+            resize = throttle(reflow, 10),
+            visible = false,
+            isDragging = false,
+            dragWidth = 0,
+            dragHeight = 0,
+            dragHelperHeight = 0,
+            slideHeight = 0,
+            slideWidth = 0,
+            alphaWidth = 0,
+            alphaSlideHelperWidth = 0,
+            slideHelperHeight = 0,
+            currentHue = 0,
+            currentSaturation = 0,
+            currentValue = 0,
+            currentAlpha = 1,
+            palette = [],
+            paletteArray = [],
+            paletteLookup = {},
+            selectionPalette = opts.selectionPalette.slice(0),
+            maxSelectionSize = opts.maxSelectionSize,
+            draggingClass = "sp-dragging",
+            shiftMovementDirection = null;
+
+        var doc = element.ownerDocument,
+            body = doc.body,
+            boundElement = $(element),
+            disabled = false,
+            container = $(markup, doc).addClass(theme),
+            pickerContainer = container.find(".sp-picker-container"),
+            dragger = container.find(".sp-color"),
+            dragHelper = container.find(".sp-dragger"),
+            slider = container.find(".sp-hue"),
+            slideHelper = container.find(".sp-slider"),
+            alphaSliderInner = container.find(".sp-alpha-inner"),
+            alphaSlider = container.find(".sp-alpha"),
+            alphaSlideHelper = container.find(".sp-alpha-handle"),
+            textInput = container.find(".sp-input"),
+            paletteContainer = container.find(".sp-palette"),
+            initialColorContainer = container.find(".sp-initial"),
+            cancelButton = container.find(".sp-cancel"),
+            clearButton = container.find(".sp-clear"),
+            chooseButton = container.find(".sp-choose"),
+            toggleButton = container.find(".sp-palette-toggle"),
+            isInput = boundElement.is("input"),
+            isInputTypeColor = isInput && boundElement.attr("type") === "color" && inputTypeColorSupport(),
+            shouldReplace = isInput && !flat,
+            replacer = (shouldReplace) ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName) : $([]),
+            offsetElement = (shouldReplace) ? replacer : boundElement,
+            previewElement = replacer.find(".sp-preview-inner"),
+            initialColor = opts.color || (isInput && boundElement.val()),
+            colorOnShow = false,
+            currentPreferredFormat = opts.preferredFormat,
+            clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange,
+            isEmpty = !initialColor,
+            allowEmpty = opts.allowEmpty && !isInputTypeColor;
+
+        function applyOptions() {
+
+            if (opts.showPaletteOnly) {
+                opts.showPalette = true;
+            }
+
+            toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);
+
+            if (opts.palette) {
+                palette = opts.palette.slice(0);
+                paletteArray = $.isArray(palette[0]) ? palette : [palette];
+                paletteLookup = {};
+                for (var i = 0; i < paletteArray.length; i++) {
+                    for (var j = 0; j < paletteArray[i].length; j++) {
+                        var rgb = tinycolor(paletteArray[i][j]).toRgbString();
+                        paletteLookup[rgb] = true;
+                    }
+                }
+            }
+
+            container.toggleClass("sp-flat", flat);
+            container.toggleClass("sp-input-disabled", !opts.showInput);
+            container.toggleClass("sp-alpha-enabled", opts.showAlpha);
+            container.toggleClass("sp-clear-enabled", allowEmpty);
+            container.toggleClass("sp-buttons-disabled", !opts.showButtons);
+            container.toggleClass("sp-palette-buttons-disabled", !opts.togglePaletteOnly);
+            container.toggleClass("sp-palette-disabled", !opts.showPalette);
+            container.toggleClass("sp-palette-only", opts.showPaletteOnly);
+            container.toggleClass("sp-initial-disabled", !opts.showInitial);
+            container.addClass(opts.className).addClass(opts.containerClassName);
+
+            reflow();
+        }
+
+        function initialize() {
+
+            if (IE) {
+                container.find("*:not(input)").attr("unselectable", "on");
+            }
+
+            applyOptions();
+
+            if (shouldReplace) {
+                boundElement.after(replacer).hide();
+            }
+
+            if (!allowEmpty) {
+                clearButton.hide();
+            }
+
+            if (flat) {
+                boundElement.after(container).hide();
+            }
+            else {
+
+                var appendTo = opts.appendTo === "parent" ? boundElement.parent() : $(opts.appendTo);
+                if (appendTo.length !== 1) {
+                    appendTo = $("body");
+                }
+
+                appendTo.append(container);
+            }
+
+            updateSelectionPaletteFromStorage();
+
+            offsetElement.bind("click.spectrum touchstart.spectrum", function (e) {
+                if (!disabled) {
+                    toggle();
+                }
+
+                e.stopPropagation();
+
+                if (!$(e.target).is("input")) {
+                    e.preventDefault();
+                }
+            });
+
+            if(boundElement.is(":disabled") || (opts.disabled === true)) {
+                disable();
+            }
+
+            // Prevent clicks from bubbling up to document.  This would cause it to be hidden.
+            container.click(stopPropagation);
+
+            // Handle user typed input
+            textInput.change(setFromTextInput);
+            textInput.bind("paste", function () {
+                setTimeout(setFromTextInput, 1);
+            });
+            textInput.keydown(function (e) { if (e.keyCode == 13) { setFromTextInput(); } });
+
+            cancelButton.text(opts.cancelText);
+            cancelButton.bind("click.spectrum", function (e) {
+                e.stopPropagation();
+                e.preventDefault();
+                revert();
+                hide();
+            });
+
+            clearButton.attr("title", opts.clearText);
+            clearButton.bind("click.spectrum", function (e) {
+                e.stopPropagation();
+                e.preventDefault();
+                isEmpty = true;
+                move();
+
+                if(flat) {
+                    //for the flat style, this is a change event
+                    updateOriginalInput(true);
+                }
+            });
+
+            chooseButton.text(opts.chooseText);
+            chooseButton.bind("click.spectrum", function (e) {
+                e.stopPropagation();
+                e.preventDefault();
+
+                if (IE && textInput.is(":focus")) {
+                    textInput.trigger('change');
+                }
+
+                if (isValid()) {
+                    updateOriginalInput(true);
+                    hide();
+                }
+            });
+
+            toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);
+            toggleButton.bind("click.spectrum", function (e) {
+                e.stopPropagation();
+                e.preventDefault();
+
+                opts.showPaletteOnly = !opts.showPaletteOnly;
+
+                // To make sure the Picker area is drawn on the right, next to the
+                // Palette area (and not below the palette), first move the Palette
+                // to the left to make space for the picker, plus 5px extra.
+                // The 'applyOptions' function puts the whole container back into place
+                // and takes care of the button-text and the sp-palette-only CSS class.
+                if (!opts.showPaletteOnly && !flat) {
+                    container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5));
+                }
+                applyOptions();
+            });
+
+            draggable(alphaSlider, function (dragX, dragY, e) {
+                currentAlpha = (dragX / alphaWidth);
+                isEmpty = false;
+                if (e.shiftKey) {
+                    currentAlpha = Math.round(currentAlpha * 10) / 10;
+                }
+
+                move();
+            }, dragStart, dragStop);
+
+            draggable(slider, function (dragX, dragY) {
+                currentHue = parseFloat(dragY / slideHeight);
+                isEmpty = false;
+                if (!opts.showAlpha) {
+                    currentAlpha = 1;
+                }
+                move();
+            }, dragStart, dragStop);
+
+            draggable(dragger, function (dragX, dragY, e) {
+
+                // shift+drag should snap the movement to either the x or y axis.
+                if (!e.shiftKey) {
+                    shiftMovementDirection = null;
+                }
+                else if (!shiftMovementDirection) {
+                    var oldDragX = currentSaturation * dragWidth;
+                    var oldDragY = dragHeight - (currentValue * dragHeight);
+                    var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY);
+
+                    shiftMovementDirection = furtherFromX ? "x" : "y";
+                }
+
+                var setSaturation = !shiftMovementDirection || shiftMovementDirection === "x";
+                var setValue = !shiftMovementDirection || shiftMovementDirection === "y";
+
+                if (setSaturation) {
+                    currentSaturation = parseFloat(dragX / dragWidth);
+                }
+                if (setValue) {
+                    currentValue = parseFloat((dragHeight - dragY) / dragHeight);
+                }
+
+                isEmpty = false;
+                if (!opts.showAlpha) {
+                    currentAlpha = 1;
+                }
+
+                move();
+
+            }, dragStart, dragStop);
+
+            if (!!initialColor) {
+                set(initialColor);
+
+                // In case color was black - update the preview UI and set the format
+                // since the set function will not run (default color is black).
+                updateUI();
+                currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).format;
+
+                addColorToSelectionPalette(initialColor);
+            }
+            else {
+                updateUI();
+            }
+
+            if (flat) {
+                show();
+            }
+
+            function paletteElementClick(e) {
+                if (e.data && e.data.ignore) {
+                    set($(e.target).closest(".sp-thumb-el").data("color"));
+                    move();
+                }
+                else {
+                    set($(e.target).closest(".sp-thumb-el").data("color"));
+                    move();
+                    updateOriginalInput(true);
+                    if (opts.hideAfterPaletteSelect) {
+                      hide();
+                    }
+                }
+
+                return false;
+            }
+
+            var paletteEvent = IE ? "mousedown.spectrum" : "click.spectrum touchstart.spectrum";
+            paletteContainer.delegate(".sp-thumb-el", paletteEvent, paletteElementClick);
+            initialColorContainer.delegate(".sp-thumb-el:nth-child(1)", paletteEvent, { ignore: true }, paletteElementClick);
+        }
+
+        function updateSelectionPaletteFromStorage() {
+
+            if (localStorageKey && window.localStorage) {
+
+                // Migrate old palettes over to new format.  May want to remove this eventually.
+                try {
+                    var oldPalette = window.localStorage[localStorageKey].split(",#");
+                    if (oldPalette.length > 1) {
+                        delete window.localStorage[localStorageKey];
+                        $.each(oldPalette, function(i, c) {
+                             addColorToSelectionPalette(c);
+                        });
+                    }
+                }
+                catch(e) { }
+
+                try {
+                    selectionPalette = window.localStorage[localStorageKey].split(";");
+                }
+                catch (e) { }
+            }
+        }
+
+        function addColorToSelectionPalette(color) {
+            if (showSelectionPalette) {
+                var rgb = tinycolor(color).toRgbString();
+                if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) {
+                    selectionPalette.push(rgb);
+                    while(selectionPalette.length > maxSelectionSize) {
+                        selectionPalette.shift();
+                    }
+                }
+
+                if (localStorageKey && window.localStorage) {
+                    try {
+                        window.localStorage[localStorageKey] = selectionPalette.join(";");
+                    }
+                    catch(e) { }
+                }
+            }
+        }
+
+        function getUniqueSelectionPalette() {
+            var unique = [];
+            if (opts.showPalette) {
+                for (var i = 0; i < selectionPalette.length; i++) {
+                    var rgb = tinycolor(selectionPalette[i]).toRgbString();
+
+                    if (!paletteLookup[rgb]) {
+                        unique.push(selectionPalette[i]);
+                    }
+                }
+            }
+
+            return unique.reverse().slice(0, opts.maxSelectionSize);
+        }
+
+        function drawPalette() {
+
+            var currentColor = get();
+
+            var html = $.map(paletteArray, function (palette, i) {
+                return paletteTemplate(palette, currentColor, "sp-palette-row sp-palette-row-" + i, opts);
+            });
+
+            updateSelectionPaletteFromStorage();
+
+            if (selectionPalette) {
+                html.push(paletteTemplate(getUniqueSelectionPalette(), currentColor, "sp-palette-row sp-palette-row-selection", opts));
+            }
+
+            paletteContainer.html(html.join(""));
+        }
+
+        function drawInitial() {
+            if (opts.showInitial) {
+                var initial = colorOnShow;
+                var current = get();
+                initialColorContainer.html(paletteTemplate([initial, current], current, "sp-palette-row-initial", opts));
+            }
+        }
+
+        function dragStart() {
+            if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) {
+                reflow();
+            }
+            isDragging = true;
+            container.addClass(draggingClass);
+            shiftMovementDirection = null;
+            boundElement.trigger('dragstart.spectrum', [ get() ]);
+        }
+
+        function dragStop() {
+            isDragging = false;
+            container.removeClass(draggingClass);
+            boundElement.trigger('dragstop.spectrum', [ get() ]);
+        }
+
+        function setFromTextInput() {
+
+            var value = textInput.val();
+
+            if ((value === null || value === "") && allowEmpty) {
+                set(null);
+                updateOriginalInput(true);
+            }
+            else {
+                var tiny = tinycolor(value);
+                if (tiny.isValid()) {
+                    set(tiny);
+                    updateOriginalInput(true);
+                }
+                else {
+                    textInput.addClass("sp-validation-error");
+                }
+            }
+        }
+
+        function toggle() {
+            if (visible) {
+                hide();
+            }
+            else {
+                show();
+            }
+        }
+
+        function show() {
+            var event = $.Event('beforeShow.spectrum');
+
+            if (visible) {
+                reflow();
+                return;
+            }
+
+            boundElement.trigger(event, [ get() ]);
+
+            if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) {
+                return;
+            }
+
+            hideAll();
+            visible = true;
+
+            $(doc).bind("keydown.spectrum", onkeydown);
+            $(doc).bind("click.spectrum", clickout);
+            $(window).bind("resize.spectrum", resize);
+            replacer.addClass("sp-active");
+            container.removeClass("sp-hidden");
+
+            reflow();
+            updateUI();
+
+            colorOnShow = get();
+
+            drawInitial();
+            callbacks.show(colorOnShow);
+            boundElement.trigger('show.spectrum', [ colorOnShow ]);
+        }
+
+        function onkeydown(e) {
+            // Close on ESC
+            if (e.keyCode === 27) {
+                hide();
+            }
+        }
+
+        function clickout(e) {
+            // Return on right click.
+            if (e.button == 2) { return; }
+
+            // If a drag event was happening during the mouseup, don't hide
+            // on click.
+            if (isDragging) { return; }
+
+            if (clickoutFiresChange) {
+                updateOriginalInput(true);
+            }
+            else {
+                revert();
+            }
+            hide();
+        }
+
+        function hide() {
+            // Return if hiding is unnecessary
+            if (!visible || flat) { return; }
+            visible = false;
+
+            $(doc).unbind("keydown.spectrum", onkeydown);
+            $(doc).unbind("click.spectrum", clickout);
+            $(window).unbind("resize.spectrum", resize);
+
+            replacer.removeClass("sp-active");
+            container.addClass("sp-hidden");
+
+            callbacks.hide(get());
+            boundElement.trigger('hide.spectrum', [ get() ]);
+        }
+
+        function revert() {
+            set(colorOnShow, true);
+        }
+
+        function set(color, ignoreFormatChange) {
+            if (tinycolor.equals(color, get())) {
+                // Update UI just in case a validation error needs
+                // to be cleared.
+                updateUI();
+                return;
+            }
+
+            var newColor, newHsv;
+            if (!color && allowEmpty) {
+                isEmpty = true;
+            } else {
+                isEmpty = false;
+                newColor = tinycolor(color);
+                newHsv = newColor.toHsv();
+
+                currentHue = (newHsv.h % 360) / 360;
+                currentSaturation = newHsv.s;
+                currentValue = newHsv.v;
+                currentAlpha = newHsv.a;
+            }
+            updateUI();
+
+            if (newColor && newColor.isValid() && !ignoreFormatChange) {
+                currentPreferredFormat = opts.preferredFormat || newColor.getFormat();
+            }
+        }
+
+        function get(opts) {
+            opts = opts || { };
+
+            if (allowEmpty && isEmpty) {
+                return null;
+            }
+
+            return tinycolor.fromRatio({
+                h: currentHue,
+                s: currentSaturation,
+                v: currentValue,
+                a: Math.round(currentAlpha * 100) / 100
+            }, { format: opts.format || currentPreferredFormat });
+        }
+
+        function isValid() {
+            return !textInput.hasClass("sp-validation-error");
+        }
+
+        function move() {
+            updateUI();
+
+            callbacks.move(get());
+            boundElement.trigger('move.spectrum', [ get() ]);
+        }
+
+        function updateUI() {
+
+            textInput.removeClass("sp-validation-error");
+
+            updateHelperLocations();
+
+            // Update dragger background color (gradients take care of saturation and value).
+            var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 });
+            dragger.css("background-color", flatColor.toHexString());
+
+            // Get a format that alpha will be included in (hex and names ignore alpha)
+            var format = currentPreferredFormat;
+            if (currentAlpha < 1 && !(currentAlpha === 0 && format === "name")) {
+                if (format === "hex" || format === "hex3" || format === "hex6" || format === "name") {
+                    format = "rgb";
+                }
+            }
+
+            var realColor = get({ format: format }),
+                displayColor = '';
+
+             //reset background info for preview element
+            previewElement.removeClass("sp-clear-display");
+            previewElement.css('background-color', 'transparent');
+
+            if (!realColor && allowEmpty) {
+                // Update the replaced elements background with icon indicating no color selection
+                previewElement.addClass("sp-clear-display");
+            }
+            else {
+                var realHex = realColor.toHexString(),
+                    realRgb = realColor.toRgbString();
+
+                // Update the replaced elements background color (with actual selected color)
+                if (rgbaSupport || realColor.alpha === 1) {
+                    previewElement.css("background-color", realRgb);
+                }
+                else {
+                    previewElement.css("background-color", "transparent");
+                    previewElement.css("filter", realColor.toFilter());
+                }
+
+                if (opts.showAlpha) {
+                    var rgb = realColor.toRgb();
+                    rgb.a = 0;
+                    var realAlpha = tinycolor(rgb).toRgbString();
+                    var gradient = "linear-gradient(left, " + realAlpha + ", " + realHex + ")";
+
+                    if (IE) {
+                        alphaSliderInner.css("filter", tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex));
+                    }
+                    else {
+                        alphaSliderInner.css("background", "-webkit-" + gradient);
+                        alphaSliderInner.css("background", "-moz-" + gradient);
+                        alphaSliderInner.css("background", "-ms-" + gradient);
+                        // Use current syntax gradient on unprefixed property.
+                        alphaSliderInner.css("background",
+                            "linear-gradient(to right, " + realAlpha + ", " + realHex + ")");
+                    }
+                }
+
+                displayColor = realColor.toString(format);
+            }
+
+            // Update the text entry input as it changes happen
+            if (opts.showInput) {
+                textInput.val(displayColor);
+            }
+
+            if (opts.showPalette) {
+                drawPalette();
+            }
+
+            drawInitial();
+        }
+
+        function updateHelperLocations() {
+            var s = currentSaturation;
+            var v = currentValue;
+
+            if(allowEmpty && isEmpty) {
+                //if selected color is empty, hide the helpers
+                alphaSlideHelper.hide();
+                slideHelper.hide();
+                dragHelper.hide();
+            }
+            else {
+                //make sure helpers are visible
+                alphaSlideHelper.show();
+                slideHelper.show();
+                dragHelper.show();
+
+                // Where to show the little circle in that displays your current selected color
+                var dragX = s * dragWidth;
+                var dragY = dragHeight - (v * dragHeight);
+                dragX = Math.max(
+                    -dragHelperHeight,
+                    Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight)
+                );
+                dragY = Math.max(
+                    -dragHelperHeight,
+                    Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight)
+                );
+                dragHelper.css({
+                    "top": dragY + "px",
+                    "left": dragX + "px"
+                });
+
+                var alphaX = currentAlpha * alphaWidth;
+                alphaSlideHelper.css({
+                    "left": (alphaX - (alphaSlideHelperWidth / 2)) + "px"
+                });
+
+                // Where to show the bar that displays your current selected hue
+                var slideY = (currentHue) * slideHeight;
+                slideHelper.css({
+                    "top": (slideY - slideHelperHeight) + "px"
+                });
+            }
+        }
+
+        function updateOriginalInput(fireCallback) {
+            var color = get(),
+                displayColor = '',
+                hasChanged = !tinycolor.equals(color, colorOnShow);
+
+            if (color) {
+                displayColor = color.toString(currentPreferredFormat);
+                // Update the selection palette with the current color
+                addColorToSelectionPalette(color);
+            }
+
+            if (isInput) {
+                boundElement.val(displayColor);
+            }
+
+            if (fireCallback && hasChanged) {
+                callbacks.change(color);
+                boundElement.trigger('change', [ color ]);
+            }
+        }
+
+        function reflow() {
+            if (!visible) {
+                return; // Calculations would be useless and wouldn't be reliable anyways
+            }
+            dragWidth = dragger.width();
+            dragHeight = dragger.height();
+            dragHelperHeight = dragHelper.height();
+            slideWidth = slider.width();
+            slideHeight = slider.height();
+            slideHelperHeight = slideHelper.height();
+            alphaWidth = alphaSlider.width();
+            alphaSlideHelperWidth = alphaSlideHelper.width();
+
+            if (!flat) {
+                container.css("position", "absolute");
+                if (opts.offset) {
+                    container.offset(opts.offset);
+                } else {
+                    container.offset(getOffset(container, offsetElement));
+                }
+            }
+
+            updateHelperLocations();
+
+            if (opts.showPalette) {
+                drawPalette();
+            }
+
+            boundElement.trigger('reflow.spectrum');
+        }
+
+        function destroy() {
+            boundElement.show();
+            offsetElement.unbind("click.spectrum touchstart.spectrum");
+            container.remove();
+            replacer.remove();
+            spectrums[spect.id] = null;
+        }
+
+        function option(optionName, optionValue) {
+            if (optionName === undefined) {
+                return $.extend({}, opts);
+            }
+            if (optionValue === undefined) {
+                return opts[optionName];
+            }
+
+            opts[optionName] = optionValue;
+
+            if (optionName === "preferredFormat") {
+                currentPreferredFormat = opts.preferredFormat;
+            }
+            applyOptions();
+        }
+
+        function enable() {
+            disabled = false;
+            boundElement.attr("disabled", false);
+            offsetElement.removeClass("sp-disabled");
+        }
+
+        function disable() {
+            hide();
+            disabled = true;
+            boundElement.attr("disabled", true);
+            offsetElement.addClass("sp-disabled");
+        }
+
+        function setOffset(coord) {
+            opts.offset = coord;
+            reflow();
+        }
+
+        initialize();
+
+        var spect = {
+            show: show,
+            hide: hide,
+            toggle: toggle,
+            reflow: reflow,
+            option: option,
+            enable: enable,
+            disable: disable,
+            offset: setOffset,
+            set: function (c) {
+                set(c);
+                updateOriginalInput();
+            },
+            get: get,
+            destroy: destroy,
+            container: container
+        };
+
+        spect.id = spectrums.push(spect) - 1;
+
+        return spect;
+    }
+
+    /**
+    * checkOffset - get the offset below/above and left/right element depending on screen position
+    * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js
+    */
+    function getOffset(picker, input) {
+        var extraY = 0;
+        var dpWidth = picker.outerWidth();
+        var dpHeight = picker.outerHeight();
+        var inputHeight = input.outerHeight();
+        var doc = picker[0].ownerDocument;
+        var docElem = doc.documentElement;
+        var viewWidth = docElem.clientWidth + $(doc).scrollLeft();
+        var viewHeight = docElem.clientHeight + $(doc).scrollTop();
+        var offset = input.offset();
+        offset.top += inputHeight;
+
+        offset.left -=
+            Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
+            Math.abs(offset.left + dpWidth - viewWidth) : 0);
+
+        offset.top -=
+            Math.min(offset.top, ((offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
+            Math.abs(dpHeight + inputHeight - extraY) : extraY));
+
+        return offset;
+    }
+
+    /**
+    * noop - do nothing
+    */
+    function noop() {
+
+    }
+
+    /**
+    * stopPropagation - makes the code only doing this a little easier to read in line
+    */
+    function stopPropagation(e) {
+        e.stopPropagation();
+    }
+
+    /**
+    * Create a function bound to a given object
+    * Thanks to underscore.js
+    */
+    function bind(func, obj) {
+        var slice = Array.prototype.slice;
+        var args = slice.call(arguments, 2);
+        return function () {
+            return func.apply(obj, args.concat(slice.call(arguments)));
+        };
+    }
+
+    /**
+    * Lightweight drag helper.  Handles containment within the element, so that
+    * when dragging, the x is within [0,element.width] and y is within [0,element.height]
+    */
+    function draggable(element, onmove, onstart, onstop) {
+        onmove = onmove || function () { };
+        onstart = onstart || function () { };
+        onstop = onstop || function () { };
+        var doc = document;
+        var dragging = false;
+        var offset = {};
+        var maxHeight = 0;
+        var maxWidth = 0;
+        var hasTouch = ('ontouchstart' in window);
+
+        var duringDragEvents = {};
+        duringDragEvents["selectstart"] = prevent;
+        duringDragEvents["dragstart"] = prevent;
+        duringDragEvents["touchmove mousemove"] = move;
+        duringDragEvents["touchend mouseup"] = stop;
+
+        function prevent(e) {
+            if (e.stopPropagation) {
+                e.stopPropagation();
+            }
+            if (e.preventDefault) {
+                e.preventDefault();
+            }
+            e.returnValue = false;
+        }
+
+        function move(e) {
+            if (dragging) {
+                // Mouseup happened outside of window
+                if (IE && doc.documentMode < 9 && !e.button) {
+                    return stop();
+                }
+
+                var t0 = e.originalEvent && e.originalEvent.touches && e.originalEvent.touches[0];
+                var pageX = t0 && t0.pageX || e.pageX;
+                var pageY = t0 && t0.pageY || e.pageY;
+
+                var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth));
+                var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight));
+
+                if (hasTouch) {
+                    // Stop scrolling in iOS
+                    prevent(e);
+                }
+
+                onmove.apply(element, [dragX, dragY, e]);
+            }
+        }
+
+        function start(e) {
+            var rightclick = (e.which) ? (e.which == 3) : (e.button == 2);
+
+            if (!rightclick && !dragging) {
+                if (onstart.apply(element, arguments) !== false) {
+                    dragging = true;
+                    maxHeight = $(element).height();
+                    maxWidth = $(element).width();
+                    offset = $(element).offset();
+
+                    $(doc).bind(duringDragEvents);
+                    $(doc.body).addClass("sp-dragging");
+
+                    move(e);
+
+                    prevent(e);
+                }
+            }
+        }
+
+        function stop() {
+            if (dragging) {
+                $(doc).unbind(duringDragEvents);
+                $(doc.body).removeClass("sp-dragging");
+
+                // Wait a tick before notifying observers to allow the click event
+                // to fire in Chrome.
+                setTimeout(function() {
+                    onstop.apply(element, arguments);
+                }, 0);
+            }
+            dragging = false;
+        }
+
+        $(element).bind("touchstart mousedown", start);
+    }
+
+    function throttle(func, wait, debounce) {
+        var timeout;
+        return function () {
+            var context = this, args = arguments;
+            var throttler = function () {
+                timeout = null;
+                func.apply(context, args);
+            };
+            if (debounce) clearTimeout(timeout);
+            if (debounce || !timeout) timeout = setTimeout(throttler, wait);
+        };
+    }
+
+    function inputTypeColorSupport() {
+        return $.fn.spectrum.inputTypeColorSupport();
+    }
+
+    /**
+    * Define a jQuery plugin
+    */
+    var dataID = "spectrum.id";
+    $.fn.spectrum = function (opts, extra) {
+
+        if (typeof opts == "string") {
+
+            var returnValue = this;
+            var args = Array.prototype.slice.call( arguments, 1 );
+
+            this.each(function () {
+                var spect = spectrums[$(this).data(dataID)];
+                if (spect) {
+                    var method = spect[opts];
+                    if (!method) {
+                        throw new Error( "Spectrum: no such method: '" + opts + "'" );
+                    }
+
+                    if (opts == "get") {
+                        returnValue = spect.get();
+                    }
+                    else if (opts == "container") {
+                        returnValue = spect.container;
+                    }
+                    else if (opts == "option") {
+                        returnValue = spect.option.apply(spect, args);
+                    }
+                    else if (opts == "destroy") {
+                        spect.destroy();
+                        $(this).removeData(dataID);
+                    }
+                    else {
+                        method.apply(spect, args);
+                    }
+                }
+            });
+
+            return returnValue;
+        }
+
+        // Initializing a new instance of spectrum
+        return this.spectrum("destroy").each(function () {
+            var options = $.extend({}, opts, $(this).data());
+            var spect = spectrum(this, options);
+            $(this).data(dataID, spect.id);
+        });
+    };
+
+    $.fn.spectrum.load = true;
+    $.fn.spectrum.loadOpts = {};
+    $.fn.spectrum.draggable = draggable;
+    $.fn.spectrum.defaults = defaultOpts;
+    $.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() {
+        if (typeof inputTypeColorSupport._cachedResult === "undefined") {
+            var colorInput = $("<input type='color'/>")[0]; // if color element is supported, value will default to not null
+            inputTypeColorSupport._cachedResult = colorInput.type === "color" && colorInput.value !== "";
+        }
+        return inputTypeColorSupport._cachedResult;
+    };
+
+    $.spectrum = { };
+    $.spectrum.localization = { };
+    $.spectrum.palettes = { };
+
+    $.fn.spectrum.processNativeColorInputs = function () {
+        var colorInputs = $("input[type=color]");
+        if (colorInputs.length && !inputTypeColorSupport()) {
+            colorInputs.spectrum({
+                preferredFormat: "hex6"
+            });
+        }
+    };
+
+    // TinyColor v1.1.2
+    // https://github.com/bgrins/TinyColor
+    // Brian Grinstead, MIT License
+
+    (function() {
+
+    var trimLeft = /^[\s,#]+/,
+        trimRight = /\s+$/,
+        tinyCounter = 0,
+        math = Math,
+        mathRound = math.round,
+        mathMin = math.min,
+        mathMax = math.max,
+        mathRandom = math.random;
+
+    var tinycolor = function(color, opts) {
+
+        color = (color) ? color : '';
+        opts = opts || { };
+
+        // If input is already a tinycolor, return itself
+        if (color instanceof tinycolor) {
+           return color;
+        }
+        // If we are called as a function, call using new instead
+        if (!(this instanceof tinycolor)) {
+            return new tinycolor(color, opts);
+        }
+
+        var rgb = inputToRGB(color);
+        this._originalInput = color,
+        this._r = rgb.r,
+        this._g = rgb.g,
+        this._b = rgb.b,
+        this._a = rgb.a,
+        this._roundA = mathRound(100*this._a) / 100,
+        this._format = opts.format || rgb.format;
+        this._gradientType = opts.gradientType;
+
+        // Don't let the range of [0,255] come back in [0,1].
+        // Potentially lose a little bit of precision here, but will fix issues where
+        // .5 gets interpreted as half of the total, instead of half of 1
+        // If it was supposed to be 128, this was already taken care of by `inputToRgb`
+        if (this._r < 1) { this._r = mathRound(this._r); }
+        if (this._g < 1) { this._g = mathRound(this._g); }
+        if (this._b < 1) { this._b = mathRound(this._b); }
+
+        this._ok = rgb.ok;
+        this._tc_id = tinyCounter++;
+    };
+
+    tinycolor.prototype = {
+        isDark: function() {
+            return this.getBrightness() < 128;
+        },
+        isLight: function() {
+            return !this.isDark();
+        },
+        isValid: function() {
+            return this._ok;
+        },
+        getOriginalInput: function() {
+          return this._originalInput;
+        },
+        getFormat: function() {
+            return this._format;
+        },
+        getAlpha: function() {
+            return this._a;
+        },
+        getBrightness: function() {
+            var rgb = this.toRgb();
+            return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
+        },
+        setAlpha: function(value) {
+            this._a = boundAlpha(value);
+            this._roundA = mathRound(100*this._a) / 100;
+            return this;
+        },
+        toHsv: function() {
+            var hsv = rgbToHsv(this._r, this._g, this._b);
+            return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };
+        },
+        toHsvString: function() {
+            var hsv = rgbToHsv(this._r, this._g, this._b);
+            var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);
+            return (this._a == 1) ?
+              "hsv("  + h + ", " + s + "%, " + v + "%)" :
+              "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")";
+        },
+        toHsl: function() {
+            var hsl = rgbToHsl(this._r, this._g, this._b);
+            return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };
+        },
+        toHslString: function() {
+            var hsl = rgbToHsl(this._r, this._g, this._b);
+            var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);
+            return (this._a == 1) ?
+              "hsl("  + h + ", " + s + "%, " + l + "%)" :
+              "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")";
+        },
+        toHex: function(allow3Char) {
+            return rgbToHex(this._r, this._g, this._b, allow3Char);
+        },
+        toHexString: function(allow3Char) {
+            return '#' + this.toHex(allow3Char);
+        },
+        toHex8: function() {
+            return rgbaToHex(this._r, this._g, this._b, this._a);
+        },
+        toHex8String: function() {
+            return '#' + this.toHex8();
+        },
+        toRgb: function() {
+            return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };
+        },
+        toRgbString: function() {
+            return (this._a == 1) ?
+              "rgb("  + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" :
+              "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")";
+        },
+        toPercentageRgb: function() {
+            return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a };
+        },
+        toPercentageRgbString: function() {
+            return (this._a == 1) ?
+              "rgb("  + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" :
+              "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")";
+        },
+        toName: function() {
+            if (this._a === 0) {
+                return "transparent";
+            }
+
+            if (this._a < 1) {
+                return false;
+            }
+
+            return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;
+        },
+        toFilter: function(secondColor) {
+            var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a);
+            var secondHex8String = hex8String;
+            var gradientType = this._gradientType ? "GradientType = 1, " : "";
+
+            if (secondColor) {
+                var s = tinycolor(secondColor);
+                secondHex8String = s.toHex8String();
+            }
+
+            return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")";
+        },
+        toString: function(format) {
+            var formatSet = !!format;
+            format = format || this._format;
+
+            var formattedString = false;
+            var hasAlpha = this._a < 1 && this._a >= 0;
+            var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "name");
+
+            if (needsAlphaFormat) {
+                // Special case for "transparent", all other non-alpha formats
+                // will return rgba when there is transparency.
+                if (format === "name" && this._a === 0) {
+                    return this.toName();
+                }
+                return this.toRgbString();
+            }
+            if (format === "rgb") {
+                formattedString = this.toRgbString();
+            }
+            if (format === "prgb") {
+                formattedString = this.toPercentageRgbString();
+            }
+            if (format === "hex" || format === "hex6") {
+                formattedString = this.toHexString();
+            }
+            if (format === "hex3") {
+                formattedString = this.toHexString(true);
+            }
+            if (format === "hex8") {
+                formattedString = this.toHex8String();
+            }
+            if (format === "name") {
+                formattedString = this.toName();
+            }
+            if (format === "hsl") {
+                formattedString = this.toHslString();
+            }
+            if (format === "hsv") {
+                formattedString = this.toHsvString();
+            }
+
+            return formattedString || this.toHexString();
+        },
+
+        _applyModification: function(fn, args) {
+            var color = fn.apply(null, [this].concat([].slice.call(args)));
+            this._r = color._r;
+            this._g = color._g;
+            this._b = color._b;
+            this.setAlpha(color._a);
+            return this;
+        },
+        lighten: function() {
+            return this._applyModification(lighten, arguments);
+        },
+        brighten: function() {
+            return this._applyModification(brighten, arguments);
+        },
+        darken: function() {
+            return this._applyModification(darken, arguments);
+        },
+        desaturate: function() {
+            return this._applyModification(desaturate, arguments);
+        },
+        saturate: function() {
+            return this._applyModification(saturate, arguments);
+        },
+        greyscale: function() {
+            return this._applyModification(greyscale, arguments);
+        },
+        spin: function() {
+            return this._applyModification(spin, arguments);
+        },
+
+        _applyCombination: function(fn, args) {
+            return fn.apply(null, [this].concat([].slice.call(args)));
+        },
+        analogous: function() {
+            return this._applyCombination(analogous, arguments);
+        },
+        complement: function() {
+            return this._applyCombination(complement, arguments);
+        },
+        monochromatic: function() {
+            return this._applyCombination(monochromatic, arguments);
+        },
+        splitcomplement: function() {
+            return this._applyCombination(splitcomplement, arguments);
+        },
+        triad: function() {
+            return this._applyCombination(triad, arguments);
+        },
+        tetrad: function() {
+            return this._applyCombination(tetrad, arguments);
+        }
+    };
+
+    // If input is an object, force 1 into "1.0" to handle ratios properly
+    // String input requires "1.0" as input, so 1 will be treated as 1
+    tinycolor.fromRatio = function(color, opts) {
+        if (typeof color == "object") {
+            var newColor = {};
+            for (var i in color) {
+                if (color.hasOwnProperty(i)) {
+                    if (i === "a") {
+                        newColor[i] = color[i];
+                    }
+                    else {
+                        newColor[i] = convertToPercentage(color[i]);
+                    }
+                }
+            }
+            color = newColor;
+        }
+
+        return tinycolor(color, opts);
+    };
+
+    // Given a string or object, convert that input to RGB
+    // Possible string inputs:
+    //
+    //     "red"
+    //     "#f00" or "f00"
+    //     "#ff0000" or "ff0000"
+    //     "#ff000000" or "ff000000"
+    //     "rgb 255 0 0" or "rgb (255, 0, 0)"
+    //     "rgb 1.0 0 0" or "rgb (1, 0, 0)"
+    //     "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
+    //     "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
+    //     "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
+    //     "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
+    //     "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
+    //
+    function inputToRGB(color) {
+
+        var rgb = { r: 0, g: 0, b: 0 };
+        var a = 1;
+        var ok = false;
+        var format = false;
+
+        if (typeof color == "string") {
+            color = stringInputToObject(color);
+        }
+
+        if (typeof color == "object") {
+            if (color.hasOwnProperty("r") && color.hasOwnProperty("g") && color.hasOwnProperty("b")) {
+                rgb = rgbToRgb(color.r, color.g, color.b);
+                ok = true;
+                format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
+            }
+            else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("v")) {
+                color.s = convertToPercentage(color.s);
+                color.v = convertToPercentage(color.v);
+                rgb = hsvToRgb(color.h, color.s, color.v);
+                ok = true;
+                format = "hsv";
+            }
+            else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("l")) {
+                color.s = convertToPercentage(color.s);
+                color.l = convertToPercentage(color.l);
+                rgb = hslToRgb(color.h, color.s, color.l);
+                ok = true;
+                format = "hsl";
+            }
+
+            if (color.hasOwnProperty("a")) {
+                a = color.a;
+            }
+        }
+
+        a = boundAlpha(a);
+
+        return {
+            ok: ok,
+            format: color.format || format,
+            r: mathMin(255, mathMax(rgb.r, 0)),
+            g: mathMin(255, mathMax(rgb.g, 0)),
+            b: mathMin(255, mathMax(rgb.b, 0)),
+            a: a
+        };
+    }
+
+
+    // Conversion Functions
+    // --------------------
+
+    // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
+    // <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>
+
+    // `rgbToRgb`
+    // Handle bounds / percentage checking to conform to CSS color spec
+    // <http://www.w3.org/TR/css3-color/>
+    // *Assumes:* r, g, b in [0, 255] or [0, 1]
+    // *Returns:* { r, g, b } in [0, 255]
+    function rgbToRgb(r, g, b){
+        return {
+            r: bound01(r, 255) * 255,
+            g: bound01(g, 255) * 255,
+            b: bound01(b, 255) * 255
+        };
+    }
+
+    // `rgbToHsl`
+    // Converts an RGB color value to HSL.
+    // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
+    // *Returns:* { h, s, l } in [0,1]
+    function rgbToHsl(r, g, b) {
+
+        r = bound01(r, 255);
+        g = bound01(g, 255);
+        b = bound01(b, 255);
+
+        var max = mathMax(r, g, b), min = mathMin(r, g, b);
+        var h, s, l = (max + min) / 2;
+
+        if(max == min) {
+            h = s = 0; // achromatic
+        }
+        else {
+            var d = max - min;
+            s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
+            switch(max) {
+                case r: h = (g - b) / d + (g < b ? 6 : 0); break;
+                case g: h = (b - r) / d + 2; break;
+                case b: h = (r - g) / d + 4; break;
+            }
+
+            h /= 6;
+        }
+
+        return { h: h, s: s, l: l };
+    }
+
+    // `hslToRgb`
+    // Converts an HSL color value to RGB.
+    // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
+    // *Returns:* { r, g, b } in the set [0, 255]
+    function hslToRgb(h, s, l) {
+        var r, g, b;
+
+        h = bound01(h, 360);
+        s = bound01(s, 100);
+        l = bound01(l, 100);
+
+        function hue2rgb(p, q, t) {
+            if(t < 0) t += 1;
+            if(t > 1) t -= 1;
+            if(t < 1/6) return p + (q - p) * 6 * t;
+            if(t < 1/2) return q;
+            if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
+            return p;
+        }
+
+        if(s === 0) {
+            r = g = b = l; // achromatic
+        }
+        else {
+            var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
+            var p = 2 * l - q;
+            r = hue2rgb(p, q, h + 1/3);
+            g = hue2rgb(p, q, h);
+            b = hue2rgb(p, q, h - 1/3);
+        }
+
+        return { r: r * 255, g: g * 255, b: b * 255 };
+    }
+
+    // `rgbToHsv`
+    // Converts an RGB color value to HSV
+    // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
+    // *Returns:* { h, s, v } in [0,1]
+    function rgbToHsv(r, g, b) {
+
+        r = bound01(r, 255);
+        g = bound01(g, 255);
+        b = bound01(b, 255);
+
+        var max = mathMax(r, g, b), min = mathMin(r, g, b);
+        var h, s, v = max;
+
+        var d = max - min;
+        s = max === 0 ? 0 : d / max;
+
+        if(max == min) {
+            h = 0; // achromatic
+        }
+        else {
+            switch(max) {
+                case r: h = (g - b) / d + (g < b ? 6 : 0); break;
+                case g: h = (b - r) / d + 2; break;
+                case b: h = (r - g) / d + 4; break;
+            }
+            h /= 6;
+        }
+        return { h: h, s: s, v: v };
+    }
+
+    // `hsvToRgb`
+    // Converts an HSV color value to RGB.
+    // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
+    // *Returns:* { r, g, b } in the set [0, 255]
+     function hsvToRgb(h, s, v) {
+
+        h = bound01(h, 360) * 6;
+        s = bound01(s, 100);
+        v = bound01(v, 100);
+
+        var i = math.floor(h),
+            f = h - i,
+            p = v * (1 - s),
+            q = v * (1 - f * s),
+            t = v * (1 - (1 - f) * s),
+            mod = i % 6,
+            r = [v, q, p, p, t, v][mod],
+            g = [t, v, v, q, p, p][mod],
+            b = [p, p, t, v, v, q][mod];
+
+        return { r: r * 255, g: g * 255, b: b * 255 };
+    }
+
+    // `rgbToHex`
+    // Converts an RGB color to hex
+    // Assumes r, g, and b are contained in the set [0, 255]
+    // Returns a 3 or 6 character hex
+    function rgbToHex(r, g, b, allow3Char) {
+
+        var hex = [
+            pad2(mathRound(r).toString(16)),
+            pad2(mathRound(g).toString(16)),
+            pad2(mathRound(b).toString(16))
+        ];
+
+        // Return a 3 character hex if possible
+        if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {
+            return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
+        }
+
+        return hex.join("");
+    }
+        // `rgbaToHex`
+        // Converts an RGBA color plus alpha transparency to hex
+        // Assumes r, g, b and a are contained in the set [0, 255]
+        // Returns an 8 character hex
+        function rgbaToHex(r, g, b, a) {
+
+            var hex = [
+                pad2(convertDecimalToHex(a)),
+                pad2(mathRound(r).toString(16)),
+                pad2(mathRound(g).toString(16)),
+                pad2(mathRound(b).toString(16))
+            ];
+
+            return hex.join("");
+        }
+
+    // `equals`
+    // Can be called with any tinycolor input
+    tinycolor.equals = function (color1, color2) {
+        if (!color1 || !color2) { return false; }
+        return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();
+    };
+    tinycolor.random = function() {
+        return tinycolor.fromRatio({
+            r: mathRandom(),
+            g: mathRandom(),
+            b: mathRandom()
+        });
+    };
+
+
+    // Modification Functions
+    // ----------------------
+    // Thanks to less.js for some of the basics here
+    // <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>
+
+    function desaturate(color, amount) {
+        amount = (amount === 0) ? 0 : (amount || 10);
+        var hsl = tinycolor(color).toHsl();
+        hsl.s -= amount / 100;
+        hsl.s = clamp01(hsl.s);
+        return tinycolor(hsl);
+    }
+
+    function saturate(color, amount) {
+        amount = (amount === 0) ? 0 : (amount || 10);
+        var hsl = tinycolor(color).toHsl();
+        hsl.s += amount / 100;
+        hsl.s = clamp01(hsl.s);
+        return tinycolor(hsl);
+    }
+
+    function greyscale(color) {
+        return tinycolor(color).desaturate(100);
+    }
+
+    function lighten (color, amount) {
+        amount = (amount === 0) ? 0 : (amount || 10);
+        var hsl = tinycolor(color).toHsl();
+        hsl.l += amount / 100;
+        hsl.l = clamp01(hsl.l);
+        return tinycolor(hsl);
+    }
+
+    function brighten(color, amount) {
+        amount = (amount === 0) ? 0 : (amount || 10);
+        var rgb = tinycolor(color).toRgb();
+        rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));
+        rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));
+        rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));
+        return tinycolor(rgb);
+    }
+
+    function darken (color, amount) {
+        amount = (amount === 0) ? 0 : (amount || 10);
+        var hsl = tinycolor(color).toHsl();
+        hsl.l -= amount / 100;
+        hsl.l = clamp01(hsl.l);
+        return tinycolor(hsl);
+    }
+
+    // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.
+    // Values outside of this range will be wrapped into this range.
+    function spin(color, amount) {
+        var hsl = tinycolor(color).toHsl();
+        var hue = (mathRound(hsl.h) + amount) % 360;
+        hsl.h = hue < 0 ? 360 + hue : hue;
+        return tinycolor(hsl);
+    }
+
+    // Combination Functions
+    // ---------------------
+    // Thanks to jQuery xColor for some of the ideas behind these
+    // <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>
+
+    function complement(color) {
+        var hsl = tinycolor(color).toHsl();
+        hsl.h = (hsl.h + 180) % 360;
+        return tinycolor(hsl);
+    }
+
+    function triad(color) {
+        var hsl = tinycolor(color).toHsl();
+        var h = hsl.h;
+        return [
+            tinycolor(color),
+            tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),
+            tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })
+        ];
+    }
+
+    function tetrad(color) {
+        var hsl = tinycolor(color).toHsl();
+        var h = hsl.h;
+        return [
+            tinycolor(color),
+            tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),
+            tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),
+            tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })
+        ];
+    }
+
+    function splitcomplement(color) {
+        var hsl = tinycolor(color).toHsl();
+        var h = hsl.h;
+        return [
+            tinycolor(color),
+            tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),
+            tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})
+        ];
+    }
+
+    function analogous(color, results, slices) {
+        results = results || 6;
+        slices = slices || 30;
+
+        var hsl = tinycolor(color).toHsl();
+        var part = 360 / slices;
+        var ret = [tinycolor(color)];
+
+        for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {
+            hsl.h = (hsl.h + part) % 360;
+            ret.push(tinycolor(hsl));
+        }
+        return ret;
+    }
+
+    function monochromatic(color, results) {
+        results = results || 6;
+        var hsv = tinycolor(color).toHsv();
+        var h = hsv.h, s = hsv.s, v = hsv.v;
+        var ret = [];
+        var modification = 1 / results;
+
+        while (results--) {
+            ret.push(tinycolor({ h: h, s: s, v: v}));
+            v = (v + modification) % 1;
+        }
+
+        return ret;
+    }
+
+    // Utility Functions
+    // ---------------------
+
+    tinycolor.mix = function(color1, color2, amount) {
+        amount = (amount === 0) ? 0 : (amount || 50);
+
+        var rgb1 = tinycolor(color1).toRgb();
+        var rgb2 = tinycolor(color2).toRgb();
+
+        var p = amount / 100;
+        var w = p * 2 - 1;
+        var a = rgb2.a - rgb1.a;
+
+        var w1;
+
+        if (w * a == -1) {
+            w1 = w;
+        } else {
+            w1 = (w + a) / (1 + w * a);
+        }
+
+        w1 = (w1 + 1) / 2;
+
+        var w2 = 1 - w1;
+
+        var rgba = {
+            r: rgb2.r * w1 + rgb1.r * w2,
+            g: rgb2.g * w1 + rgb1.g * w2,
+            b: rgb2.b * w1 + rgb1.b * w2,
+            a: rgb2.a * p  + rgb1.a * (1 - p)
+        };
+
+        return tinycolor(rgba);
+    };
+
+
+    // Readability Functions
+    // ---------------------
+    // <http://www.w3.org/TR/AERT#color-contrast>
+
+    // `readability`
+    // Analyze the 2 colors and returns an object with the following properties:
+    //    `brightness`: difference in brightness between the two colors
+    //    `color`: difference in color/hue between the two colors
+    tinycolor.readability = function(color1, color2) {
+        var c1 = tinycolor(color1);
+        var c2 = tinycolor(color2);
+        var rgb1 = c1.toRgb();
+        var rgb2 = c2.toRgb();
+        var brightnessA = c1.getBrightness();
+        var brightnessB = c2.getBrightness();
+        var colorDiff = (
+            Math.max(rgb1.r, rgb2.r) - Math.min(rgb1.r, rgb2.r) +
+            Math.max(rgb1.g, rgb2.g) - Math.min(rgb1.g, rgb2.g) +
+            Math.max(rgb1.b, rgb2.b) - Math.min(rgb1.b, rgb2.b)
+        );
+
+        return {
+            brightness: Math.abs(brightnessA - brightnessB),
+            color: colorDiff
+        };
+    };
+
+    // `readable`
+    // http://www.w3.org/TR/AERT#color-contrast
+    // Ensure that foreground and background color combinations provide sufficient contrast.
+    // *Example*
+    //    tinycolor.isReadable("#000", "#111") => false
+    tinycolor.isReadable = function(color1, color2) {
+        var readability = tinycolor.readability(color1, color2);
+        return readability.brightness > 125 && readability.color > 500;
+    };
+
+    // `mostReadable`
+    // Given a base color and a list of possible foreground or background
+    // colors for that base, returns the most readable color.
+    // *Example*
+    //    tinycolor.mostReadable("#123", ["#fff", "#000"]) => "#000"
+    tinycolor.mostReadable = function(baseColor, colorList) {
+        var bestColor = null;
+        var bestScore = 0;
+        var bestIsReadable = false;
+        for (var i=0; i < colorList.length; i++) {
+
+            // We normalize both around the "acceptable" breaking point,
+            // but rank brightness constrast higher than hue.
+
+            var readability = tinycolor.readability(baseColor, colorList[i]);
+            var readable = readability.brightness > 125 && readability.color > 500;
+            var score = 3 * (readability.brightness / 125) + (readability.color / 500);
+
+            if ((readable && ! bestIsReadable) ||
+                (readable && bestIsReadable && score > bestScore) ||
+                ((! readable) && (! bestIsReadable) && score > bestScore)) {
+                bestIsReadable = readable;
+                bestScore = score;
+                bestColor = tinycolor(colorList[i]);
+            }
+        }
+        return bestColor;
+    };
+
+
+    // Big List of Colors
+    // ------------------
+    // <http://www.w3.org/TR/css3-color/#svg-color>
+    var names = tinycolor.names = {
+        aliceblue: "f0f8ff",
+        antiquewhite: "faebd7",
+        aqua: "0ff",
+        aquamarine: "7fffd4",
+        azure: "f0ffff",
+        beige: "f5f5dc",
+        bisque: "ffe4c4",
+        black: "000",
+        blanchedalmond: "ffebcd",
+        blue: "00f",
+        blueviolet: "8a2be2",
+        brown: "a52a2a",
+        burlywood: "deb887",
+        burntsienna: "ea7e5d",
+        cadetblue: "5f9ea0",
+        chartreuse: "7fff00",
+        chocolate: "d2691e",
+        coral: "ff7f50",
+        cornflowerblue: "6495ed",
+        cornsilk: "fff8dc",
+        crimson: "dc143c",
+        cyan: "0ff",
+        darkblue: "00008b",
+        darkcyan: "008b8b",
+        darkgoldenrod: "b8860b",
+        darkgray: "a9a9a9",
+        darkgreen: "006400",
+        darkgrey: "a9a9a9",
+        darkkhaki: "bdb76b",
+        darkmagenta: "8b008b",
+        darkolivegreen: "556b2f",
+        darkorange: "ff8c00",
+        darkorchid: "9932cc",
+        darkred: "8b0000",
+        darksalmon: "e9967a",
+        darkseagreen: "8fbc8f",
+        darkslateblue: "483d8b",
+        darkslategray: "2f4f4f",
+        darkslategrey: "2f4f4f",
+        darkturquoise: "00ced1",
+        darkviolet: "9400d3",
+        deeppink: "ff1493",
+        deepskyblue: "00bfff",
+        dimgray: "696969",
+        dimgrey: "696969",
+        dodgerblue: "1e90ff",
+        firebrick: "b22222",
+        floralwhite: "fffaf0",
+        forestgreen: "228b22",
+        fuchsia: "f0f",
+        gainsboro: "dcdcdc",
+        ghostwhite: "f8f8ff",
+        gold: "ffd700",
+        goldenrod: "daa520",
+        gray: "808080",
+        green: "008000",
+        greenyellow: "adff2f",
+        grey: "808080",
+        honeydew: "f0fff0",
+        hotpink: "ff69b4",
+        indianred: "cd5c5c",
+        indigo: "4b0082",
+        ivory: "fffff0",
+        khaki: "f0e68c",
+        lavender: "e6e6fa",
+        lavenderblush: "fff0f5",
+        lawngreen: "7cfc00",
+        lemonchiffon: "fffacd",
+        lightblue: "add8e6",
+        lightcoral: "f08080",
+        lightcyan: "e0ffff",
+        lightgoldenrodyellow: "fafad2",
+        lightgray: "d3d3d3",
+        lightgreen: "90ee90",
+        lightgrey: "d3d3d3",
+        lightpink: "ffb6c1",
+        lightsalmon: "ffa07a",
+        lightseagreen: "20b2aa",
+        lightskyblue: "87cefa",
+        lightslategray: "789",
+        lightslategrey: "789",
+        lightsteelblue: "b0c4de",
+        lightyellow: "ffffe0",
+        lime: "0f0",
+        limegreen: "32cd32",
+        linen: "faf0e6",
+        magenta: "f0f",
+        maroon: "800000",
+        mediumaquamarine: "66cdaa",
+        mediumblue: "0000cd",
+        mediumorchid: "ba55d3",
+        mediumpurple: "9370db",
+        mediumseagreen: "3cb371",
+        mediumslateblue: "7b68ee",
+        mediumspringgreen: "00fa9a",
+        mediumturquoise: "48d1cc",
+        mediumvioletred: "c71585",
+        midnightblue: "191970",
+        mintcream: "f5fffa",
+        mistyrose: "ffe4e1",
+        moccasin: "ffe4b5",
+        navajowhite: "ffdead",
+        navy: "000080",
+        oldlace: "fdf5e6",
+        olive: "808000",
+        olivedrab: "6b8e23",
+        orange: "ffa500",
+        orangered: "ff4500",
+        orchid: "da70d6",
+        palegoldenrod: "eee8aa",
+        palegreen: "98fb98",
+        paleturquoise: "afeeee",
+        palevioletred: "db7093",
+        papayawhip: "ffefd5",
+        peachpuff: "ffdab9",
+        peru: "cd853f",
+        pink: "ffc0cb",
+        plum: "dda0dd",
+        powderblue: "b0e0e6",
+        purple: "800080",
+        rebeccapurple: "663399",
+        red: "f00",
+        rosybrown: "bc8f8f",
+        royalblue: "4169e1",
+        saddlebrown: "8b4513",
+        salmon: "fa8072",
+        sandybrown: "f4a460",
+        seagreen: "2e8b57",
+        seashell: "fff5ee",
+        sienna: "a0522d",
+        silver: "c0c0c0",
+        skyblue: "87ceeb",
+        slateblue: "6a5acd",
+        slategray: "708090",
+        slategrey: "708090",
+        snow: "fffafa",
+        springgreen: "00ff7f",
+        steelblue: "4682b4",
+        tan: "d2b48c",
+        teal: "008080",
+        thistle: "d8bfd8",
+        tomato: "ff6347",
+        turquoise: "40e0d0",
+        violet: "ee82ee",
+        wheat: "f5deb3",
+        white: "fff",
+        whitesmoke: "f5f5f5",
+        yellow: "ff0",
+        yellowgreen: "9acd32"
+    };
+
+    // Make it easy to access colors via `hexNames[hex]`
+    var hexNames = tinycolor.hexNames = flip(names);
+
+
+    // Utilities
+    // ---------
+
+    // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`
+    function flip(o) {
+        var flipped = { };
+        for (var i in o) {
+            if (o.hasOwnProperty(i)) {
+                flipped[o[i]] = i;
+            }
+        }
+        return flipped;
+    }
+
+    // Return a valid alpha value [0,1] with all invalid values being set to 1
+    function boundAlpha(a) {
+        a = parseFloat(a);
+
+        if (isNaN(a) || a < 0 || a > 1) {
+            a = 1;
+        }
+
+        return a;
+    }
+
+    // Take input from [0, n] and return it as [0, 1]
+    function bound01(n, max) {
+        if (isOnePointZero(n)) { n = "100%"; }
+
+        var processPercent = isPercentage(n);
+        n = mathMin(max, mathMax(0, parseFloat(n)));
+
+        // Automatically convert percentage into number
+        if (processPercent) {
+            n = parseInt(n * max, 10) / 100;
+        }
+
+        // Handle floating point rounding errors
+        if ((math.abs(n - max) < 0.000001)) {
+            return 1;
+        }
+
+        // Convert into [0, 1] range if it isn't already
+        return (n % max) / parseFloat(max);
+    }
+
+    // Force a number between 0 and 1
+    function clamp01(val) {
+        return mathMin(1, mathMax(0, val));
+    }
+
+    // Parse a base-16 hex value into a base-10 integer
+    function parseIntFromHex(val) {
+        return parseInt(val, 16);
+    }
+
+    // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
+    // <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
+    function isOnePointZero(n) {
+        return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1;
+    }
+
+    // Check to see if string passed in is a percentage
+    function isPercentage(n) {
+        return typeof n === "string" && n.indexOf('%') != -1;
+    }
+
+    // Force a hex value to have 2 characters
+    function pad2(c) {
+        return c.length == 1 ? '0' + c : '' + c;
+    }
+
+    // Replace a decimal with it's percentage value
+    function convertToPercentage(n) {
+        if (n <= 1) {
+            n = (n * 100) + "%";
+        }
+
+        return n;
+    }
+
+    // Converts a decimal to a hex value
+    function convertDecimalToHex(d) {
+        return Math.round(parseFloat(d) * 255).toString(16);
+    }
+    // Converts a hex value to a decimal
+    function convertHexToDecimal(h) {
+        return (parseIntFromHex(h) / 255);
+    }
+
+    var matchers = (function() {
+
+        // <http://www.w3.org/TR/css3-values/#integers>
+        var CSS_INTEGER = "[-\\+]?\\d+%?";
+
+        // <http://www.w3.org/TR/css3-values/#number-value>
+        var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
+
+        // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.
+        var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";
+
+        // Actual matching.
+        // Parentheses and commas are optional, but not required.
+        // Whitespace can take the place of commas or opening paren
+        var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
+        var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
+
+        return {
+            rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
+            rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
+            hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
+            hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
+            hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
+            hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
+            hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
+            hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
+            hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
+        };
+    })();
+
+    // `stringInputToObject`
+    // Permissive string parsing.  Take in a number of formats, and output an object
+    // based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
+    function stringInputToObject(color) {
+
+        color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
+        var named = false;
+        if (names[color]) {
+            color = names[color];
+            named = true;
+        }
+        else if (color == 'transparent') {
+            return { r: 0, g: 0, b: 0, a: 0, format: "name" };
+        }
+
+        // Try to match string input using regular expressions.
+        // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
+        // Just return an object and let the conversion functions handle that.
+        // This way the result will be the same whether the tinycolor is initialized with string or object.
+        var match;
+        if ((match = matchers.rgb.exec(color))) {
+            return { r: match[1], g: match[2], b: match[3] };
+        }
+        if ((match = matchers.rgba.exec(color))) {
+            return { r: match[1], g: match[2], b: match[3], a: match[4] };
+        }
+        if ((match = matchers.hsl.exec(color))) {
+            return { h: match[1], s: match[2], l: match[3] };
+        }
+        if ((match = matchers.hsla.exec(color))) {
+            return { h: match[1], s: match[2], l: match[3], a: match[4] };
+        }
+        if ((match = matchers.hsv.exec(color))) {
+            return { h: match[1], s: match[2], v: match[3] };
+        }
+        if ((match = matchers.hsva.exec(color))) {
+            return { h: match[1], s: match[2], v: match[3], a: match[4] };
+        }
+        if ((match = matchers.hex8.exec(color))) {
+            return {
+                a: convertHexToDecimal(match[1]),
+                r: parseIntFromHex(match[2]),
+                g: parseIntFromHex(match[3]),
+                b: parseIntFromHex(match[4]),
+                format: named ? "name" : "hex8"
+            };
+        }
+        if ((match = matchers.hex6.exec(color))) {
+            return {
+                r: parseIntFromHex(match[1]),
+                g: parseIntFromHex(match[2]),
+                b: parseIntFromHex(match[3]),
+                format: named ? "name" : "hex"
+            };
+        }
+        if ((match = matchers.hex3.exec(color))) {
+            return {
+                r: parseIntFromHex(match[1] + '' + match[1]),
+                g: parseIntFromHex(match[2] + '' + match[2]),
+                b: parseIntFromHex(match[3] + '' + match[3]),
+                format: named ? "name" : "hex"
+            };
+        }
+
+        return false;
+    }
+
+    window.tinycolor = tinycolor;
+    })();
+
+    $(function () {
+        if ($.fn.spectrum.load) {
+            $.fn.spectrum.processNativeColorInputs();
+        }
+    });
+
+});

Fixed code: config.php
*.swp
*.mo

/vendor/
.vagrant
.idea
[main]
host = https://www.transifex.com

[php-calendar.messages]
file_filter = locale/<lang>/LC_MESSAGES/messages.po
source_file = messages.po
source_lang = en_US
Sean Proctor <sproctor@gmail.com>
Stefano Sabatini <sabas88@gmail.com>
ip: 192.168.57.57
memory: 2048
cpus: 2
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
    - ~/.ssh/id_rsa
folders:
    - map: ./
      to: /home/vagrant/code
sites:
    - map: php-calendar-1.local
      to: /home/vagrant/code
databases:
    - homestead
features:
    - mariadb: false
    - ohmyzsh: false
    - webdriver: false
name: php-calendar-1
NEWS
-----

2.0.13 (28 January 2022):
	- Fixed compatability with PHP 8
	- Only show readable calendars in the calendar list
	- Fix week number issues

2.0.12 (2 January 2018):
	- Fixed additional issues with the updater
	- Minor changes to forms

2.0.11 (1 January 2018):
	- Switched colorpicker to spectrum.js
	- Updated jQuery to 3.2.1 and jQuery UI to 1.12.1
	- Fixed issues with the updater

2.0.10 (6 April 2017):
	- Update jquery/jquery ui versions
	- Use markdown to format event descriptions

2.0.9 (5 January 2015):
	- A few minor attempts at improving security.
	- Fixed search and day displays for timezones other than the server.
	- Added labels to installer to make fields easier to select.
	- Fixed installer for PHP 5.5.

2.0.8 (1 July 2014):
	- Fixed problems published by siph0n. shoutz: smitz
	- The 2.0.7 release was botched and drawn from the wrong tree.

2.0.7 (10 June 2014):
	- Minor bug fixes and translation updates

2.0.6 (5 May 2014):
	- Fixed modify occurrence form
	- Fixed rare event submit bug

2.0.5 (24 February 2014):
	- Updated translations

2.0.4 (24 February 2014):
	- Fix embed bug caused by 2.0.2

2.0.3 (18 February 2014):
	- Updated translations

2.0.2 (11 February 2014):
	- Updated fixes

2.0.1 (4 February 2014):
	- Bug fixes

2.0 (24 October 2013):
	- Form to allow calendar admins to modify users' groups
	- Calendar/month/year selectors are now dropdowns on the appropriate
	  field
	- Bug Fixes

2.0-rc7 (10 October 2013):
	- Groups settings and admin sections into tabs
	- Group list selector for creating a user
	- Added week view
	- Bug fixes

2.0-rc6 (2 May 2013):
	- Fixed bugs in importing from version 1.1
	- Fixed editing occurrence with non-default date format
	- Fixed events with categories with no group only visible to admins

2.0-rc5 (29 April 2013):
	- Fixed major bug that prevent events from showing up

2.0-rc4 (26 April 2013):
	- Removed unused jpicker directory
	- repackaged (rc3 was accidentally uncompressed)

2.0-rc3 (26 April 2013):
	- Move to Github + Transifex
	- Database changes
	- UI Tweaks
	- Updated libraries
	- JqueryUI themes
	- User permissions for categories
	- Improved installation
	- Simpler internationalization

2.0-rc2 (21 Jan 21013):
	- Fixed broken admin page
	- Removed outdated docs and put links to online docs in README

2.0-rc1 (20 Jan 2013):
	- Split timezone entry into two dropdowns
	- Add date format settings
	- Critical bug fixes

2.0-beta12 (4 Jan 2013):
	- Added files missing from previous release
	- Updated to JQuery 1.8.3 and JQuery UI 1.9.2

2.0-beta11 (2 Jan 2013):
	- Changed date/time entry to date/time picker
	- Added category to event/occurrence/summary views
	- Added author to summary in month view
	- Allow anonymous users to save tz/lang settings.
	- Updated to jquery 1.7.2
	- Make connections persistent until logged out
	- Added links for add/modify occurrences
	- Take user to a useful page after form submissions

2.0-beta10 (8 Apr 2011):
	- Added a color picker for categories, by Michal Osowiecki
	- Added support for timezones (breaks compatibility with beta9)
	- Updated French translation by Pascal Rigaux
	- Updated Italian translation by Marcelo Fortino
	- Added Catalan translation by Marcelo Fortino
	- Properly display modify event for repeating events. Initial patch
	    from Pascal Rigaux
	- Added user and calendar settings for timezone and language
	- Added updater from earlier 2.0 betas
	- Bugfixes (Thanks to Pascal Rigaux, Hans Eksteen)

2.0-beta9 (19 Oct 2010):
	- Fixes misconfigured default paths for embedded calendars
	- Limits the month view to displaying 8 events per day.
	- Fix translation of month and day names, thanks to Michał Osowiecki.
	- Event form follows 12/24 hr preference, thanks to Michał Osowiecki.
	- Changed weeks starting on Monday to use week numbers according to
	  ISO 8601. Weeks starting on Sunday use weeks containing Jan 1 as the
	  first week. Calendar admins may need to adjust this option as the
	  values have changed their meanings.
	- Updated the style to be a little lighter, thanks to Michał Osowiecki.
	- Fix modifying events with linebreaks and HTML in the description,
	  thanks to Kerri McHale
	- Bulgarian translation, thanks to Hristo Delchev
	- Bug Fixes

2.0-beta8 (14 Jun 2010):
	- Fixes SQL-injection and XSS errors discovered by Teemu Vesala
	  at Qentinel
	- Added Danish translation, thanks to Jesper Jensen
	- Logout users after 30 minutes of inactivity
	- Protect event and admin forms from CSRF attacks
	- Added Chinese translation, thanks to huang guan rong
	- Bug Fixes

2.0-beta7 (19 May 2010):
	- Added French translation
	- Re-arranged includes so month and day names get translated
	- Fixed XSS with lastaction
	- Don't allow HTML characters in text/bg colors
	- Removed accidental return that exposed descriptions without removing
	  tags. Don't strip tags, leave them in and replace special chars
	- Fixed security vulnerabilities discovered by VUPEN Security
	  http://www.vupen.com
	- Other bug fixes

2.0-beta6 (12 March 2010):
	- Removed Polish translations because it contains errors
	- Added translation script
	- Converted calendar fully to UTF-8
	- Bug fixes

2.0-beta5 (11 February 2010):
	- Added categories with custom colors for events
	- moved configurable variables into index.php and embed_setup.php
	    (for standalone and embedded calendar, respectively)
	- Fixed a few bugs with anonymous users
	- Addition of categories makes the DB format incompatible with previous
	    releeases

2.0-beta4 (13 January 2010):
	- fix another typo in install
	- select DB outside of the constructor, fixes a problem for at least
	  one user.
	
2.0-beta3 (06 January 2010):
	- enable delete user in admin
	- added files missing in beta2
	- Allow users to create readonly events

2.0-beta2 (31 December 2009):
	- Switched from PDO to MySQLi to be supported on more setups
	- Changed event DB format to allow more customizable repeating events
	- Vastly improved the event submit form
	- Removed durations and replaced them with time spans

2.0-beta1 (26 June 2009):
	- require install and update scripts to be removed to prevent security
	  issues.
	- Unify login between calendars again.
	- Switched from ADOdb to PDO. Removes necessity of ADOdb but raises
	  PHP version requirement to 5.0 and MySQL to 4.1
	- Added improved permissions and facilities to add and remove users
	  and calendars and modify permissions.
	- Created embed.php for people to embed the calendar into an existing
	  page.
	- Changed license from GPL v2 to Apache 2.0

1.1 (06 January 2009):
	- Switch from XHTML 1.0 to HTML 4.01 Strict
	- remove create_xhtml() which had become a misnomer and move the
	  functionality to index.php where it is more accessible.
	- Created non-admin users who can only modify/delete their own events
	  (and all of the infrastructure to go with this)
	- Prevent a user/admin from logging into one calendar and having the
	  same priviledges on another calendar on the same host.

1.0 (24 December 2008):
	- Event form changed to allow dates in the range 1 - 31 regardless of
	  the current month
	- Added a checkbox to event form for multiday events, so single day
	  events don't need to change their end date
	- Added yearly recurring events
	- Hopefully fixed get_events_by_date in PostgreSQL again

0.10.9 (1 August 2007):
	- Fixed redirects so if you don't have a config and we redirect to
	  the installer, it goes to the proper place
	- Fixed a couple of issues with the option to have weeks start on
	  Monday

0.10.8 (22 June 2007):
	- 0.10.6 changed the DB schema by accident. the result of this new
	  schema is handled properly in 0.10.7. both schemas are compatible.
	  updated entry in 0.10.7 to properly describe the cause.
	- fixed doctype typo and updated some meta-data
	- make redirects HTTP compliant to fix an issue with Safari
	- allow start_monday to work again

0.10.7 (29 September 2006):
	- fix issue with starting weeks on mondays
	- fix issue with times caused by change in schema in 0.10.6

0.10.6 (25 September 2006):
	- fix issue with creating tables with DB's other than mysql
	- fix issue when running php as a cgi
	- don't strip tags when inserting into DB
	- give instructions on how to stop stripping tags on display
	- change doctype to xhtml 1.0
	- added a FAQ
	- added a Spanish translation
	- updated the German translation
	- add an Italian translation

0.10.5 (15 September 2005):
	- Fix wrong HTML generation bug (causing style issues with Firefox)
          (Thanks Peter K.H. Gragert and Patrick Gormley )
        - added Dutch translation (Thanks Peter K.H. Gragert)
        - added Japanese translation (Thanks Tadashi Jokagi)
        - update language support to only display in the list languages with
          .mo files
        - strip HTML tags from descriptions when displaying and escape
          entities

0.10.4 (4 May 2005):
        - fixed an incompatibility with PHP 5 (Thanks to Patrick Gormley)
        - fix a nasty login error (Thanks to Benjamin Watson)
        - a couple other fixes with warnings and start of week

0.10.3 (26 April 2005):
        - fixed an issue creating new users (thanks to Volker Hoffman)
        - changed Unknown time to To Be Announced (suggested by Mark Mason)
        - added a new event option No Time (suggested by Alex Falcone)
        - fixed an issue with older versions of MySQL where the hour
          and minute wouldn't be read correctly causing them to be lost
          on modification (thanks to Mark Mason)
        - moved old array-based HTML data structure to a class-based one
          (this was a huge change, any weird behavior you see was probably
          caused by this)
        - fixed the issue with options being selected incorrectly in the
          admin page
        - added an update script (only supports 0.8 and newer so far)
        - fixed a bug in search that was causing an error when descending order
          was chosen
        - fixed possible SQL injection in search.php
        - report years that are out of range
        - creating new users will change the password of old ones if they exist
        - fix login to redirect to the page we were actually just on
        - update login code to hit the DB less often

0.10.2 (04 April 2005):
        - fix a problem where modifying an event didn't pick up the date
          properly.
        - try to require creating config.php less often on install
        - add SQL_PREFIX to user sequence table. may break existing calendars
          where more users than the defaults were added when more users are
          created (thanks to Nathan Barham)
        - stop anonymous users from trying to edit events when they aren't
          allowed. and same for preferences.
        - fix old broken hour behavior.
        - fix duration display where we were display fractional hours by
          mistake in addition to minutes.
        - Require a username and password when creating a new user
        - No longer shipping modified ADOdb. Require ADOdb 4.62 or greater.
          (Thanks to John Lim)
        - URL to be modified via $phpc_script in setup.php

0.10.1 (10 Jan 2005):
        - fix security vulnerability with regard to loading any any PHP file
          (Thanks to James Bercegay of the GulfTech Security Research Team)
        - add a modified version of adodb to the distribution (it's version
          4.54 w/ day of week functions added for postgresql and mysql)
        - fix a few scattered bugs
        - make PostgreSQL work for new installations again
        - fix bug with multiple word searches
        - fix get_events_by_date
        - fix logout (and improve login as well)

version 0.10 (5 Nov 2004):
        * fix bug in event_submit
        * a number of installation fixes
        * more strings are translatable
        * much better code documentation
        * display correct max subject length
        * option to change subject length
        * changed how adodb is included. people on windows please test that this          works.
        * Add form to create new users to admin page

Version 0.9.1 (4/14/04):
        * add quick event add link
        * fix bug adding an events
        * fix some bugs regarding 12 hour time
        * fix some issues with the installation

Version 0.9 (3/30/04):
        * move to adodb
        * require php 4.1 or greater
        * many bug fixes

Version 0.8 (3/11/03):
        * Change config file to use defines rather than variables.
        * You _need_ gettext-0.11.6-pre1 or later to parse with xgettext.  I
          have a copy of this if anyone needs it.  My language support is
          going to lag unless someone helps.  I only speak English, so it's
          not useful to me.
        * Very much updated documentation (thanks Tai)
        * greatly improved install script (thanks to motivation from Tai,
          and ideas from postnuke)
        * admin support, plus a variable to adjust the anonymous permissions
          (Thanks Nate for the first part)
        * cluster calendars. one base with a separate index file for each
          calendar. (thanks Nate)
        * moved to requiring php 4.0 again (thanks Nate ;-)
        * colors are again configurable through a calendar specific config
          file (miniconfig.php)
        * We got a search function! (thanks Nate although I totally rewrote it)
        * added weekly/monthly/daily events (thanks me)
        * changed the config files a lot, so old calendars will break
        * support for SQL servers besides MySQL (thanks phpBB)
        * Page to change options added

Version 0.7 (10/5/02):
        * added .php to end of .inc files
        * cleaned up the look a little,
        * modifying posts is fixed which may or may not have been broken in
          0.6
        * changed from specifying table name to table prefix.  to update
          you'll need to create the new table (ie phpc_events) then do an
          insert select to copy over the old data
        * not sure what is wrong with gettext.  It no longer works at all, but
          the _() function gets defined better.  basically, things are no
          longer giving errors, but they don't work anymore.

Version 0.6 (6/18/02):
        * LOTS of code clean-ups.
        * moved to xhtml
        * dropped netscape 4 support
        * added configuration to start week on monday
        * separated out style sheets, css clean ups
        * UI clean-ups
        * multiple language support
        * option to change the calendar to 24h time

Version 0.5 (3/15/02):
        * remove some warnings
        * fixed up indentation
        * a number of minor style changes
        * disallow remote access to config, header and footer files in apache
        * added an install script
        * removed $REMOTE_USER support, because I'll be adding my own
          eventually, and I never used or tested the current one.
        * added checking to mysql, reloading modify and add pages doesn't give
          the same entry many times.  deleting a non-existant item displays a
          failure
        * added an update script for version 0.3 and below

Version 0.4 (2/20/2002):
        * fix am/pm issues with new time input
        * add duration to events
        * add event type for full day and questionable times
        * not compatible with old databases

Version 0.3 (02/15/2002):
        * fix to make links work properly in IE
        * minor color tweak
        * bugfixes (thanks to richard datafordummies.com)
        * more fixes for Netscape 4
        * made time input more user-friendly and fixed bugs with the old
        method.
        * got rid of ugly old method of dealing with end dates and also found
        and squashed a bug relating to that

Version 0.2 (02/14/2002):
        * allows color changing through variables in config.php
        * bug that caused header/title on pages besides index fixed
        * bug that caused modified elements to be added twice fixed
        * now regresses well in Netscape 4 (switches to HTML 4 transitional
        for old browsers)

Version 0.1 (02/11/2002):
        * moved to php4, if anyone finds a version of php4 that doesn't work,
          or finds this to work in a older version, please let me know
        * lots of style and HTML changes to try to make the calendar look more
        professional.  I've tried to make the style sheet somewhat friendly.
        If someone makes changes and wants a different style sheet included as
        well, send it to me.  this is all initial work and the changes are too
        many to include.  I decided to move to HTML 4.01/CSS2.  Only browsers
        which fully support these will display the calendar perfectly.  I
        tested using Mozilla, and that currently displays the calendar how I
        intended.  IE 5.5 and 6.0 don't support the CSS element
        border-spacing, so they look a little funny.  Netscape 4.x looks
        awful, but is still usable.
        * there was a bug where if you didn't include a subject, the post
          wouldn't show.
        * included timestamp on the table
        * added variables to change the displayed title and the header.
        * some code cleanups.
`
PHP-Calendar
----------------

This program requires a PHP enabled webserver and a database (MySQL) installed.

Installation and upgrade instructions:
https://github.com/sproctor/php-calendar/wiki/Installation-Guide

This program is licensed under the Apache License, Version 2.0 located at
http://www.apache.org/licenses/LICENSE-2.0.html

Any questions, contact me at the email address found in the AUTHORS files or
on the various pages on the website.

FAQ: https://github.com/sproctor/php-calendar/wiki/Frequently-Asked-Questions
# -*- mode: ruby -*-
# vi: set ft=ruby :

require 'json'
require 'yaml'

VAGRANTFILE_API_VERSION ||= "2"
confDir = $confDir ||= File.expand_path("vendor/laravel/homestead", File.dirname(__FILE__))

homesteadYamlPath = File.expand_path("Homestead.yaml", File.dirname(__FILE__))
homesteadJsonPath = File.expand_path("Homestead.json", File.dirname(__FILE__))
afterScriptPath = "after.sh"
customizationScriptPath = "user-customizations.sh"
aliasesPath = "aliases"

require File.expand_path(confDir + '/scripts/homestead.rb')

Vagrant.require_version '>= 2.2.4'

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    if File.exist? aliasesPath then
        config.vm.provision "file", source: aliasesPath, destination: "/tmp/bash_aliases"
        config.vm.provision "shell" do |s|
            s.inline = "awk '{ sub(\"\r$\", \"\"); print }' /tmp/bash_aliases > /home/vagrant/.bash_aliases"
        end
    end

    if File.exist? homesteadYamlPath then
        settings = YAML::load(File.read(homesteadYamlPath))
    elsif File.exist? homesteadJsonPath then
        settings = JSON::parse(File.read(homesteadJsonPath))
    else
        abort "Homestead settings file not found in " + File.dirname(__FILE__)
    end

    Homestead.configure(config, settings)

    if File.exist? afterScriptPath then
        config.vm.provision "shell", path: afterScriptPath, privileged: false, keep_color: true
    end

    if File.exist? customizationScriptPath then
        config.vm.provision "shell", path: customizationScriptPath, privileged: false, keep_color: true
    end

    if Vagrant.has_plugin?('vagrant-hostsupdater')
        config.hostsupdater.aliases = settings['sites'].map { |site| site['map'] }
    elsif Vagrant.has_plugin?('vagrant-hostmanager')
        config.hostmanager.enabled = true
        config.hostmanager.manage_host = true
        config.hostmanager.aliases = settings['sites'].map { |site| site['map'] }
    end
end
#!/bin/sh

# If you would like to do some extra provisioning you may
# add any commands you wish to this file and they will
# be run after the Homestead machine is provisioned.
#
# If you have user-specific configurations you would like
# to apply, you may also create user-customizations.sh,
# which will be run after this script.


# If you're not quite ready for the latest Node.js version,
# uncomment these lines to roll back to a previous version

# Remove current Node.js version:
#sudo apt-get -y purge nodejs
#sudo rm -rf /usr/lib/node_modules/npm/lib
#sudo rm -rf //etc/apt/sources.list.d/nodesource.list

# Install Node.js Version desired (i.e. v13)
# More info: https://github.com/nodesource/distributions/blob/master/README.md#debinstall
#curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
#sudo apt-get install -y nodejs
alias ..="cd .."
alias ...="cd ../.."

alias h='cd ~'
alias c='clear'
alias art=artisan

alias codecept='vendor/bin/codecept'
alias phpspec='vendor/bin/phpspec'
alias serve=serve-laravel

alias xoff='sudo phpdismod -s cli xdebug'
alias xon='sudo phpenmod -s cli xdebug'

function artisan() {
    php artisan "$@"
}

function dusk() {
    pids=$(pidof /usr/bin/Xvfb)

    if [ ! -n "$pids" ]; then
        Xvfb :0 -screen 0 1280x960x24 &
    fi

    if [[ $? -eq 0 ]]
    then
        php artisan dusk
    else
        php artisan dusk --filter "$@"
    fi
}

function p() {
    if [ -f vendor/bin/pest ]; then
       vendor/bin/pest "$@"
    else
       vendor/bin/phpunit "$@"
    fi
 }
 
 function pf() {
    if [ -f vendor/bin/pest ]; then
       vendor/bin/pest --filter "$@"
    else
       vendor/bin/phpunit --filter "$@"
    fi
 }

function php56() {
    sudo update-alternatives --set php /usr/bin/php5.6
    sudo update-alternatives --set php-config /usr/bin/php-config5.6
    sudo update-alternatives --set phpize /usr/bin/phpize5.6
}

function php70() {
    sudo update-alternatives --set php /usr/bin/php7.0
    sudo update-alternatives --set php-config /usr/bin/php-config7.0
    sudo update-alternatives --set phpize /usr/bin/phpize7.0
}

function php71() {
    sudo update-alternatives --set php /usr/bin/php7.1
    sudo update-alternatives --set php-config /usr/bin/php-config7.1
    sudo update-alternatives --set phpize /usr/bin/phpize7.1
}

function php72() {
    sudo update-alternatives --set php /usr/bin/php7.2
    sudo update-alternatives --set php-config /usr/bin/php-config7.2
    sudo update-alternatives --set phpize /usr/bin/phpize7.2
}

function php73() {
    sudo update-alternatives --set php /usr/bin/php7.3
    sudo update-alternatives --set php-config /usr/bin/php-config7.3
    sudo update-alternatives --set phpize /usr/bin/phpize7.3
}

function php74() {
    sudo update-alternatives --set php /usr/bin/php7.4
    sudo update-alternatives --set php-config /usr/bin/php-config7.4
    sudo update-alternatives --set phpize /usr/bin/phpize7.4
}

function php80() {
    sudo update-alternatives --set php /usr/bin/php8.0
    sudo update-alternatives --set php-config /usr/bin/php-config8.0
    sudo update-alternatives --set phpize /usr/bin/phpize8.0
}

function php81() {
    sudo update-alternatives --set php /usr/bin/php8.1
    sudo update-alternatives --set php-config /usr/bin/php-config8.1
    sudo update-alternatives --set phpize /usr/bin/phpize8.1
}

function serve-apache() {
    if [[ "$1" && "$2" ]]
    then
        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/apache.sh
        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/apache.sh "$1" "$2" 80 443 "${3:-8.1}"
    else
        echo "Error: missing required parameters."
        echo "Usage: "
        echo "  serve-apache domain path"
    fi
}

function serve-laravel() {
    if [[ "$1" && "$2" ]]
    then
        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/laravel.sh
        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/laravel.sh "$1" "$2" 80 443 "${3:-8.1}"
    else
        echo "Error: missing required parameters."
        echo "Usage: "
        echo "  serve domain path"
    fi
}

function serve-proxy() {
    if [[ "$1" && "$2" ]]
    then
        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/proxy.sh
        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/proxy.sh "$1" "$2" 80 443 "${3:-8.1}"
    else
        echo "Error: missing required parameters."
        echo "Usage: "
        echo "  serve-proxy domain port"
    fi
}

function serve-silverstripe() {
    if [[ "$1" && "$2" ]]
    then
        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/silverstripe.sh
        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/silverstripe.sh "$1" "$2" 80 443 "${3:-8.1}"
    else
        echo "Error: missing required parameters."
        echo "Usage: "
        echo "  serve-silverstripe domain path"
    fi
}

function serve-spa() {
    if [[ "$1" && "$2" ]]
    then
        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/spa.sh
        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/spa.sh "$1" "$2" 80 443 "${3:-8.1}"
    else
        echo "Error: missing required parameters."
        echo "Usage: "
        echo "  serve-spa domain path"
    fi
}

function serve-statamic() {
    if [[ "$1" && "$2" ]]
    then
        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/statamic.sh
        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/statamic.sh "$1" "$2" 80 443 "${3:-8.1}"
    else
        echo "Error: missing required parameters."
        echo "Usage: "
        echo "  serve-statamic domain path"
    fi
}

function serve-symfony2() {
    if [[ "$1" && "$2" ]]
    then
        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/symfony2.sh
        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/symfony2.sh "$1" "$2" 80 443 "${3:-8.1}"
    else
        echo "Error: missing required parameters."
        echo "Usage: "
        echo "  serve-symfony2 domain path"
    fi
}

function serve-symfony4() {
    if [[ "$1" && "$2" ]]
    then
        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/symfony4.sh
        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/symfony4.sh "$1" "$2" 80 443 "${3:-8.1}"
    else
        echo "Error: missing required parameters."
        echo "Usage: "
        echo "  serve-symfony4 domain path"
    fi
}

function serve-pimcore() {
    if [[ "$1" && "$2" ]]
    then
        sudo bash /vagrant/vendor/laravel/homestead/scripts/create-certificate.sh "$1"
        sudo dos2unix /vagrant/vendor/laravel/homestead/scripts/site-types/pimcore.sh
        sudo bash /vagrant/vendor/laravel/homestead/scripts/site-types/pimcore.sh "$1" "$2" 80 443 "${3:-8.1}"
    else
        echo "Error: missing required parameters."
        echo "Usage: "
        echo "  serve-pimcore domain path"
    fi
}

function share() {
    if [[ "$1" ]]
    then
        ngrok http ${@:2} -host-header="$1" 80
    else
        echo "Error: missing required parameters."
        echo "Usage: "
        echo "  share domain"
        echo "Invocation with extra params passed directly to ngrok"
        echo "  share domain -region=eu -subdomain=test1234"
    fi
}

function flip() {
    sudo bash /vagrant/vendor/laravel/homestead/scripts/flip-webserver.sh
}

function __has_pv() {
    $(hash pv 2>/dev/null);

    return $?
}

function __pv_install_message() {
    if ! __has_pv; then
        echo $1
        echo "Install pv with \`sudo apt-get install -y pv\` then run this command again."
        echo ""
    fi
}

function dbexport() {
    FILE=${1:-/vagrant/mysqldump.sql.gz}

    # This gives an estimate of the size of the SQL file
    # It appears that 80% is a good approximation of
    # the ratio of estimated size to actual size
    SIZE_QUERY="select ceil(sum(data_length) * 0.8) as size from information_schema.TABLES"

    __pv_install_message "Want to see export progress?"

    echo "Exporting databases to '$FILE'"

    if __has_pv; then
        ADJUSTED_SIZE=$(mysql --vertical -uhomestead -psecret -e "$SIZE_QUERY" 2>/dev/null | grep 'size' | awk '{print $2}')
        HUMAN_READABLE_SIZE=$(numfmt --to=iec-i --suffix=B --format="%.3f" $ADJUSTED_SIZE)

        echo "Estimated uncompressed size: $HUMAN_READABLE_SIZE"
        mysqldump -uhomestead -psecret --all-databases --skip-lock-tables --routines 2>/dev/null | pv  --size=$ADJUSTED_SIZE | gzip > "$FILE"
    else
        mysqldump -uhomestead -psecret --all-databases --skip-lock-tables --routines 2>/dev/null | gzip > "$FILE"
    fi

    echo "Done."
}

function dbimport() {
    FILE=${1:-/vagrant/mysqldump.sql.gz}

    __pv_install_message "Want to see import progress?"

    echo "Importing databases from '$FILE'"

    if __has_pv; then
        pv "$FILE" --progress --eta | zcat | mysql -uhomestead -psecret 2>/dev/null
    else
        cat "$FILE" | zcat | mysql -uhomestead -psecret 2>/dev/null
    fi

    echo "Done."
}

function xphp() {
    (php -m | grep -q xdebug)
    if [[ $? -eq 0 ]]
    then
        XDEBUG_ENABLED=true
    else
        XDEBUG_ENABLED=false
    fi

    if ! $XDEBUG_ENABLED; then xon; fi

    php \
        -dxdebug.client_host=192.168.10.1 \
        -dxdebug.start_with_request=yes \
        "$@"

    if ! $XDEBUG_ENABLED; then xoff; fi
}

function update-socket-wrench() {
    cd /var/www/socket-wrench
    git pull origin release
    composer install
    php artisan migrate --force
}

function seed-socket-wrench() {
    cd /var/www/socket-wrench
    php artisan db:seed
}
{
    "name": "sproctor/php-calendar",
    "type": "project",
    "autoload": {
        "psr-4": {
            "Sproctor\\PhpCalendar\\": "src/"
        }
    },
    "authors": [
        {
            "name": "Sean Proctor",
            "email": "sproctor@gmail.com"
        }
    ],
    "require-dev": {
        "laravel/homestead": "^13.1"
    }
}
{
    "_readme": [
        "This file locks the dependencies of your project to a known state",
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
        "This file is @generated automatically"
    ],
    "content-hash": "3273f0ead54a7171cd54c2c05e9060b7",
    "packages": [],
    "packages-dev": [
        {
            "name": "laravel/homestead",
            "version": "v13.1.1",
            "source": {
                "type": "git",
                "url": "https://github.com/laravel/homestead.git",
                "reference": "d67ec5a2613bc51b744b1b0592e6c05f8436d893"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/laravel/homestead/zipball/d67ec5a2613bc51b744b1b0592e6c05f8436d893",
                "reference": "d67ec5a2613bc51b744b1b0592e6c05f8436d893",
                "shasum": ""
            },
            "require": {
                "php": "^7.4 || ^8.0",
                "symfony/console": "~5.1",
                "symfony/process": "~5.1",
                "symfony/yaml": "~5.1"
            },
            "require-dev": {
                "dms/phpunit-arraysubset-asserts": "^0.2.1",
                "phpunit/phpunit": "^9.5"
            },
            "bin": [
                "bin/homestead"
            ],
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Laravel\\Homestead\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Taylor Otwell",
                    "email": "taylor@laravel.com"
                },
                {
                    "name": "Joe Ferguson",
                    "email": "joe@joeferguson.me"
                }
            ],
            "description": "A virtual machine for web artisans.",
            "support": {
                "issues": "https://github.com/laravel/homestead/issues",
                "source": "https://github.com/laravel/homestead/tree/v13.1.1"
            },
            "time": "2022-01-26T20:09:28+00:00"
        },
        {
            "name": "psr/container",
            "version": "1.1.2",
            "source": {
                "type": "git",
                "url": "https://github.com/php-fig/container.git",
                "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
                "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
                "shasum": ""
            },
            "require": {
                "php": ">=7.4.0"
            },
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Psr\\Container\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "PHP-FIG",
                    "homepage": "https://www.php-fig.org/"
                }
            ],
            "description": "Common Container Interface (PHP FIG PSR-11)",
            "homepage": "https://github.com/php-fig/container",
            "keywords": [
                "PSR-11",
                "container",
                "container-interface",
                "container-interop",
                "psr"
            ],
            "support": {
                "issues": "https://github.com/php-fig/container/issues",
                "source": "https://github.com/php-fig/container/tree/1.1.2"
            },
            "time": "2021-11-05T16:50:12+00:00"
        },
        {
            "name": "symfony/console",
            "version": "v5.4.2",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/console.git",
                "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/console/zipball/a2c6b7ced2eb7799a35375fb9022519282b5405e",
                "reference": "a2c6b7ced2eb7799a35375fb9022519282b5405e",
                "shasum": ""
            },
            "require": {
                "php": ">=7.2.5",
                "symfony/deprecation-contracts": "^2.1|^3",
                "symfony/polyfill-mbstring": "~1.0",
                "symfony/polyfill-php73": "^1.9",
                "symfony/polyfill-php80": "^1.16",
                "symfony/service-contracts": "^1.1|^2|^3",
                "symfony/string": "^5.1|^6.0"
            },
            "conflict": {
                "psr/log": ">=3",
                "symfony/dependency-injection": "<4.4",
                "symfony/dotenv": "<5.1",
                "symfony/event-dispatcher": "<4.4",
                "symfony/lock": "<4.4",
                "symfony/process": "<4.4"
            },
            "provide": {
                "psr/log-implementation": "1.0|2.0"
            },
            "require-dev": {
                "psr/log": "^1|^2",
                "symfony/config": "^4.4|^5.0|^6.0",
                "symfony/dependency-injection": "^4.4|^5.0|^6.0",
                "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
                "symfony/lock": "^4.4|^5.0|^6.0",
                "symfony/process": "^4.4|^5.0|^6.0",
                "symfony/var-dumper": "^4.4|^5.0|^6.0"
            },
            "suggest": {
                "psr/log": "For using the console logger",
                "symfony/event-dispatcher": "",
                "symfony/lock": "",
                "symfony/process": ""
            },
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Console\\": ""
                },
                "exclude-from-classmap": [
                    "/Tests/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Eases the creation of beautiful and testable command line interfaces",
            "homepage": "https://symfony.com",
            "keywords": [
                "cli",
                "command line",
                "console",
                "terminal"
            ],
            "support": {
                "source": "https://github.com/symfony/console/tree/v5.4.2"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-12-20T16:11:12+00:00"
        },
        {
            "name": "symfony/deprecation-contracts",
            "version": "v2.5.0",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/deprecation-contracts.git",
                "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
                "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
                "shasum": ""
            },
            "require": {
                "php": ">=7.1"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-main": "2.5-dev"
                },
                "thanks": {
                    "name": "symfony/contracts",
                    "url": "https://github.com/symfony/contracts"
                }
            },
            "autoload": {
                "files": [
                    "function.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Nicolas Grekas",
                    "email": "p@tchwork.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "A generic function and convention to trigger deprecation notices",
            "homepage": "https://symfony.com",
            "support": {
                "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-07-12T14:48:14+00:00"
        },
        {
            "name": "symfony/polyfill-ctype",
            "version": "v1.24.0",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/polyfill-ctype.git",
                "reference": "30885182c981ab175d4d034db0f6f469898070ab"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
                "reference": "30885182c981ab175d4d034db0f6f469898070ab",
                "shasum": ""
            },
            "require": {
                "php": ">=7.1"
            },
            "provide": {
                "ext-ctype": "*"
            },
            "suggest": {
                "ext-ctype": "For best performance"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-main": "1.23-dev"
                },
                "thanks": {
                    "name": "symfony/polyfill",
                    "url": "https://github.com/symfony/polyfill"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Polyfill\\Ctype\\": ""
                },
                "files": [
                    "bootstrap.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Gert de Pagter",
                    "email": "BackEndTea@gmail.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony polyfill for ctype functions",
            "homepage": "https://symfony.com",
            "keywords": [
                "compatibility",
                "ctype",
                "polyfill",
                "portable"
            ],
            "support": {
                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-10-20T20:35:02+00:00"
        },
        {
            "name": "symfony/polyfill-intl-grapheme",
            "version": "v1.24.0",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
                "reference": "81b86b50cf841a64252b439e738e97f4a34e2783"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783",
                "reference": "81b86b50cf841a64252b439e738e97f4a34e2783",
                "shasum": ""
            },
            "require": {
                "php": ">=7.1"
            },
            "suggest": {
                "ext-intl": "For best performance"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-main": "1.23-dev"
                },
                "thanks": {
                    "name": "symfony/polyfill",
                    "url": "https://github.com/symfony/polyfill"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
                },
                "files": [
                    "bootstrap.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Nicolas Grekas",
                    "email": "p@tchwork.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony polyfill for intl's grapheme_* functions",
            "homepage": "https://symfony.com",
            "keywords": [
                "compatibility",
                "grapheme",
                "intl",
                "polyfill",
                "portable",
                "shim"
            ],
            "support": {
                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-11-23T21:10:46+00:00"
        },
        {
            "name": "symfony/polyfill-intl-normalizer",
            "version": "v1.24.0",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
                "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
                "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
                "shasum": ""
            },
            "require": {
                "php": ">=7.1"
            },
            "suggest": {
                "ext-intl": "For best performance"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-main": "1.23-dev"
                },
                "thanks": {
                    "name": "symfony/polyfill",
                    "url": "https://github.com/symfony/polyfill"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
                },
                "files": [
                    "bootstrap.php"
                ],
                "classmap": [
                    "Resources/stubs"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Nicolas Grekas",
                    "email": "p@tchwork.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony polyfill for intl's Normalizer class and related functions",
            "homepage": "https://symfony.com",
            "keywords": [
                "compatibility",
                "intl",
                "normalizer",
                "polyfill",
                "portable",
                "shim"
            ],
            "support": {
                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-02-19T12:13:01+00:00"
        },
        {
            "name": "symfony/polyfill-mbstring",
            "version": "v1.24.0",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/polyfill-mbstring.git",
                "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
                "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
                "shasum": ""
            },
            "require": {
                "php": ">=7.1"
            },
            "provide": {
                "ext-mbstring": "*"
            },
            "suggest": {
                "ext-mbstring": "For best performance"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-main": "1.23-dev"
                },
                "thanks": {
                    "name": "symfony/polyfill",
                    "url": "https://github.com/symfony/polyfill"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Polyfill\\Mbstring\\": ""
                },
                "files": [
                    "bootstrap.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Nicolas Grekas",
                    "email": "p@tchwork.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony polyfill for the Mbstring extension",
            "homepage": "https://symfony.com",
            "keywords": [
                "compatibility",
                "mbstring",
                "polyfill",
                "portable",
                "shim"
            ],
            "support": {
                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-11-30T18:21:41+00:00"
        },
        {
            "name": "symfony/polyfill-php73",
            "version": "v1.24.0",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/polyfill-php73.git",
                "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5",
                "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5",
                "shasum": ""
            },
            "require": {
                "php": ">=7.1"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-main": "1.23-dev"
                },
                "thanks": {
                    "name": "symfony/polyfill",
                    "url": "https://github.com/symfony/polyfill"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Polyfill\\Php73\\": ""
                },
                "files": [
                    "bootstrap.php"
                ],
                "classmap": [
                    "Resources/stubs"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Nicolas Grekas",
                    "email": "p@tchwork.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
            "homepage": "https://symfony.com",
            "keywords": [
                "compatibility",
                "polyfill",
                "portable",
                "shim"
            ],
            "support": {
                "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-06-05T21:20:04+00:00"
        },
        {
            "name": "symfony/polyfill-php80",
            "version": "v1.24.0",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/polyfill-php80.git",
                "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9",
                "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9",
                "shasum": ""
            },
            "require": {
                "php": ">=7.1"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-main": "1.23-dev"
                },
                "thanks": {
                    "name": "symfony/polyfill",
                    "url": "https://github.com/symfony/polyfill"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Polyfill\\Php80\\": ""
                },
                "files": [
                    "bootstrap.php"
                ],
                "classmap": [
                    "Resources/stubs"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Ion Bazan",
                    "email": "ion.bazan@gmail.com"
                },
                {
                    "name": "Nicolas Grekas",
                    "email": "p@tchwork.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
            "homepage": "https://symfony.com",
            "keywords": [
                "compatibility",
                "polyfill",
                "portable",
                "shim"
            ],
            "support": {
                "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-09-13T13:58:33+00:00"
        },
        {
            "name": "symfony/process",
            "version": "v5.4.2",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/process.git",
                "reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/process/zipball/2b3ba8722c4aaf3e88011be5e7f48710088fb5e4",
                "reference": "2b3ba8722c4aaf3e88011be5e7f48710088fb5e4",
                "shasum": ""
            },
            "require": {
                "php": ">=7.2.5",
                "symfony/polyfill-php80": "^1.16"
            },
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Process\\": ""
                },
                "exclude-from-classmap": [
                    "/Tests/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Executes commands in sub-processes",
            "homepage": "https://symfony.com",
            "support": {
                "source": "https://github.com/symfony/process/tree/v5.4.2"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-12-27T21:01:00+00:00"
        },
        {
            "name": "symfony/service-contracts",
            "version": "v2.5.0",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/service-contracts.git",
                "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
                "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
                "shasum": ""
            },
            "require": {
                "php": ">=7.2.5",
                "psr/container": "^1.1",
                "symfony/deprecation-contracts": "^2.1"
            },
            "conflict": {
                "ext-psr": "<1.1|>=2"
            },
            "suggest": {
                "symfony/service-implementation": ""
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-main": "2.5-dev"
                },
                "thanks": {
                    "name": "symfony/contracts",
                    "url": "https://github.com/symfony/contracts"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Contracts\\Service\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Nicolas Grekas",
                    "email": "p@tchwork.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Generic abstractions related to writing services",
            "homepage": "https://symfony.com",
            "keywords": [
                "abstractions",
                "contracts",
                "decoupling",
                "interfaces",
                "interoperability",
                "standards"
            ],
            "support": {
                "source": "https://github.com/symfony/service-contracts/tree/v2.5.0"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-11-04T16:48:04+00:00"
        },
        {
            "name": "symfony/string",
            "version": "v5.4.2",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/string.git",
                "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/string/zipball/e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d",
                "reference": "e6a5d5ecf6589c5247d18e0e74e30b11dfd51a3d",
                "shasum": ""
            },
            "require": {
                "php": ">=7.2.5",
                "symfony/polyfill-ctype": "~1.8",
                "symfony/polyfill-intl-grapheme": "~1.0",
                "symfony/polyfill-intl-normalizer": "~1.0",
                "symfony/polyfill-mbstring": "~1.0",
                "symfony/polyfill-php80": "~1.15"
            },
            "conflict": {
                "symfony/translation-contracts": ">=3.0"
            },
            "require-dev": {
                "symfony/error-handler": "^4.4|^5.0|^6.0",
                "symfony/http-client": "^4.4|^5.0|^6.0",
                "symfony/translation-contracts": "^1.1|^2",
                "symfony/var-exporter": "^4.4|^5.0|^6.0"
            },
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\String\\": ""
                },
                "files": [
                    "Resources/functions.php"
                ],
                "exclude-from-classmap": [
                    "/Tests/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Nicolas Grekas",
                    "email": "p@tchwork.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
            "homepage": "https://symfony.com",
            "keywords": [
                "grapheme",
                "i18n",
                "string",
                "unicode",
                "utf-8",
                "utf8"
            ],
            "support": {
                "source": "https://github.com/symfony/string/tree/v5.4.2"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-12-16T21:52:00+00:00"
        },
        {
            "name": "symfony/yaml",
            "version": "v5.4.2",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/yaml.git",
                "reference": "b9eb163846a61bb32dfc147f7859e274fab38b58"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/yaml/zipball/b9eb163846a61bb32dfc147f7859e274fab38b58",
                "reference": "b9eb163846a61bb32dfc147f7859e274fab38b58",
                "shasum": ""
            },
            "require": {
                "php": ">=7.2.5",
                "symfony/deprecation-contracts": "^2.1|^3",
                "symfony/polyfill-ctype": "^1.8"
            },
            "conflict": {
                "symfony/console": "<5.3"
            },
            "require-dev": {
                "symfony/console": "^5.3|^6.0"
            },
            "suggest": {
                "symfony/console": "For validating YAML files using the lint command"
            },
            "bin": [
                "Resources/bin/yaml-lint"
            ],
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Symfony\\Component\\Yaml\\": ""
                },
                "exclude-from-classmap": [
                    "/Tests/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Fabien Potencier",
                    "email": "fabien@symfony.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Loads and dumps YAML files",
            "homepage": "https://symfony.com",
            "support": {
                "source": "https://github.com/symfony/yaml/tree/v5.4.2"
            },
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2021-12-16T21:58:21+00:00"
        }
    ],
    "aliases": [],
    "minimum-stability": "stable",
    "stability-flags": [],
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": [],
    "platform-dev": [],
    "plugin-api-version": "2.1.0"
}
#! /bin/sh
xgettext --language=PHP --keyword="__" --keyword="__p:1c,2" --copyright-holder="Sean Proctor" \
	--package-name="PHP-Calendar" \
	--package-version="2.0.13" --msgid-bugs-address="sproctor@gmail.com" *.php src/*.php
sed '0,/SOME DESCRIPTIVE TITLE/s//PHP-Calendar/' messages.po > messages.tmp
mv messages.tmp messages.po
sed '0,/YEAR/s//2022/' messages.po > messages.tmp
mv messages.tmp messages.po
sed '0,/PACKAGE/s//PHP-Calendar/' messages.po > messages.tmp
mv messages.tmp messages.po
sed '0,/CHARSET/s//UTF-8/' messages.po > messages.tmp
mv messages.tmp messages.po
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * The following variables are intended to be modified to fit your
 * setup.
 */

/*
 * If you want different scripts with different default calendars, you can
 * copy this script and modify $default_calendar_id to contain the CID of
 * the calendar you want to be the default
 */
$default_calendar_id = 1;

/*
 * $phpc_root_path gives the location of the base calendar install.
 * if you move this file to a new location, modify $phpc_root_path to point
 * to the location where the support files for the calendar are located.
 */
$phpc_root_path = dirname(__FILE__);
$phpc_includes_path = "$phpc_root_path/src";
$phpc_config_file = "$phpc_root_path/config.php";
$phpc_locale_path = "$phpc_root_path/locale";
$phpc_script = htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8');

$phpc_server = $_SERVER['SERVER_NAME'];
if(!empty($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"] != 80)
	$phpc_server .= ":{$_SERVER["SERVER_PORT"]}";

// Protcol ex. http or https
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off'
		|| $_SERVER['SERVER_PORT'] == 443
		|| isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
		|| isset($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
    $phpc_proto = "https";
} else {
    $phpc_proto = "http";
}

$phpc_home_url="$phpc_proto://$phpc_server$phpc_script";
$phpc_url = $phpc_home_url . (empty($_SERVER['QUERY_STRING']) ? ''
		: '?' . $_SERVER['QUERY_STRING']);

// Remove this line if you must
ini_set('arg_separator.output', '&amp;');

/*
 * Do not modify anything under this point
 */
if (!defined('IN_PHPC'))
define('IN_PHPC', true);

try {
	require_once("$phpc_includes_path/calendar.php");
	require_once("$phpc_includes_path/setup.php");

	$calendar_title = $phpc_cal->get_title();
	$content = display_phpc();
} catch(Exception $e) {
	$calendar_title = $e->getMessage();
	$content = tag('div', attributes('class="php-calendar"'),
			$e->getMessage());
}

$html = tag('html', attrs("lang=\"$phpc_lang\""),
		tag('head',
			tag('title', $calendar_title),
			tag('link', attrs('rel="icon"',
					"href=\"static/office-calendar.png\"")),
			get_header_tags("static"),
			tag('meta', attrs('http-equiv="Content-Type"',
					   'content="text/html; charset=UTF-8"'))),
		tag('body', $content));

echo '<!DOCTYPE html>', "\n", $html->toString();
<?php
/*
 * Copyright 2014 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
   Run this file to install the calendar
   it needs very much work
*/

$phpc_db_version = 1;

$phpc_root_path = dirname(__FILE__);
$phpc_includes_path = "$phpc_root_path/includes";
$phpc_config_file = "$phpc_root_path/config.php";

define('IN_PHPC', true);

if(!function_exists("mysqli_connect"))
	soft_error("You must have the mysqli extension for PHP installed to use this calendar.");

echo '<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="static/phpc.css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<title>PHP Calendar Installation</title>
</head>
<body>
<h1>PHP Calendar</h1>';

$must_upgrade = false;

if(file_exists($phpc_config_file)) {
	require_once $phpc_config_file;
	if(defined("SQL_HOST")) {
		$dbh = connect_db(SQL_HOST, SQL_USER, SQL_PASSWD, SQL_DATABASE);

		$query = "SELECT *\n"
			."FROM `" . SQL_PREFIX .  "calendars`\n";

		$sth = $dbh->query($query);
		$have_calendar = $sth && $sth->fetch_assoc();

		$existing_version = 0;

		$query = "SELECT version\n"
			."FROM `" . SQL_PREFIX .  "version`\n";


		$sth = $dbh->query($query);
		if($sth) {
			$result = $sth->fetch_assoc();
			if(!empty($result['version']))
				$existing_version = $result['version'];
		}

		if($have_calendar) {

			$must_upgrade = true;

			if($existing_version > $phpc_db_version) {
				echo "<p>DB version is newer than the upgrader.</p>";
				exit;
			} elseif($existing_version == $phpc_db_version) {
				echo '<p>The calendar has already been installed. <a href="index.php">Installed calendar</a></p>';
				echo '<p>If you want to install again, manually delete config.php</p>';
				exit;
			}
		}
	}
}

echo '<p>Welcome to the PHP Calendar installation process.</p>
<form method="post" action="install.php">
';

foreach($_POST as $key => $value) {
	echo "<input name=\"$key\" value=\"$value\" type=\"hidden\">\n";
}

$drop_tables = isset($_POST["drop_tables"]) && $_POST["drop_tables"] == "yes";

if(empty($_POST['action'])) {
	get_action();
} elseif($_POST['action'] == 'upgrade') {
	if(empty($_POST['version'])) {
		get_upgrade_version();
	} else {
		if ($_POST['version'] == "2.0rc2") {
			upgrade_20rc2();
			echo "<p>Update complete.</p>";
		} elseif ($_POST['version'] == "2.0beta11") {
			upgrade_20beta11();
			echo "<p>Update complete.</p>";
		} elseif($_POST['version'] == "2.0beta10") {
			upgrade_20beta10();
			echo "<p>Update complete.</p>";
		} elseif($_POST['version'] == "2.0beta9") {
			if(empty($_POST['timezone']))
				upgrade_20_form();
			else
				upgrade_20_action();
		} elseif($_POST['version'] == "1.1") {
			echo "<p>You must first install the calendar into a new location, then import the old events through the Admin section.</p>";
		} else {
			echo "<p>Invalid version identifier.</p>";
		}
	}
} elseif(!isset($_POST['my_hostname'])
		&& !isset($_POST['my_username'])
		&& !isset($_POST['my_passwd'])
		&& !isset($_POST['my_prefix'])
		&& !isset($_POST['my_database'])) {
	get_server_setup();
} elseif((isset($_POST['create_user']) || isset($_POST['create_db']))
		&& !isset($_POST['done_user_db'])) {
	add_sql_user_db();
} elseif(!isset($_POST['base'])) {
	install_base();
} elseif(!isset($_POST['admin_user'])
		&& !isset($_POST['admin_pass'])) {
	get_admin();
} else {
	add_calendar();
}

function get_action() {
	echo '<input type="submit" name="action" value="install"/><span style="display: inline-block; width:50px;"></span>';
	echo '<input type="submit" name="action" value="upgrade"/>';
}

function get_upgrade_version() {
	global $phpc_config_file;

	if(!file_exists($phpc_config_file)) {
		echo '<p><span style="font-weight:bold;">ERROR</span>: You must copy over your config.php from the version you are updating. Only versions 2.0 beta4 and later are supported.';
		echo '<br/><input type="button" onclick="window.location.reload()" value="Reload"/>';
		return;
	}

	echo '<h3>Pick the version you are updating from</h3>';
	echo '<input type="hidden" name="action" value="upgrade"/>';
	echo '<select name="version">';
	echo '<option value="1.1">version 1.1</option>';
	echo '<option value="2.0beta9">version 2.0-beta4 to beta9</option>';
	echo '<option value="2.0beta10">version 2.0-beta10</option>';
	echo '<option value="2.0beta11">version 2.0-beta11 to rc1</option>';
	echo '<option value="2.0rc2">version 2.0-rc2</option>';
	echo '</select><span style="display: inline-block; width:50px;"></span>';
	echo '<input type="submit" value="Submit">';
}

function upgrade_20_form() {
	echo '<div>Timezone: <select name="timezone">';
	foreach(timezone_identifiers_list() as $timezone) {
		echo "<option value=\"$timezone\">$timezone</option>\n";
	}
	echo "</select></div>";
	echo "<input type=\"submit\" value=\"Submit\"/>";
}

function upgrade_20_action() {
	global $phpc_config_file, $dbh;

	$query = "ALTER TABLE `" . SQL_PREFIX . "users`\n"
		."ADD `password_editable` tinyint(1) NOT NULL DEFAULT '1',\n"
		."ADD `timezone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
		."ADD `language` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL\n";
	$dbh->query($query)
		or db_error($dbh, 'Error adding elements to users table.', $query);

	$query = "ALTER TABLE `" . SQL_PREFIX . "occurrences`\n"
		."ADD `start_ts` timestamp NULL default NULL,\n"
		."ADD `end_ts` timestamp NULL default NULL,\n"
		."CHANGE `startdate` `start_date` date default NULL,\n"
		."CHANGE `enddate` `end_date` date default NULL,\n"
		."CHANGE `timetype` `time_type` tinyint(4) NOT NULL default '0'\n";

	$dbh->query($query)
		or db_error($dbh, 'Error adding elements to occurrences table.',
				$query);

	echo "<p>Occurrences table update";

	$query = "SELECT `oid`, YEAR(`start_date`) AS `start_year`, "
		."MONTH(`start_date`) AS `start_month`, "
		."DAY(`start_date`) AS `start_day`, "
		."HOUR(`starttime`) AS `start_hour`, "
		."MINUTE(`starttime`) AS `start_minute`, "
		."SECOND(`starttime`) AS `start_second`, "
		."YEAR(`end_date`) AS `end_year`, "
		."MONTH(`end_date`) AS `end_month`, "
		."DAY(`end_date`) AS `end_day`, "
		."HOUR(`endtime`) AS `end_hour`, "
		."MINUTE(`endtime`) AS `end_minute`, "
		."SECOND(`endtime`) AS `end_second` "
		."FROM `" . SQL_PREFIX . "occurrences`\n";

	$occ_result = $dbh->query($query)
		or db_error($dbh, 'Error selecting old occurrences.', $query);

	while($row = $occ_result->fetch_assoc()) {
		if($row['start_hour'] !== NULL) {
			$start_ts = mktime($row['start_hour'],
					$row['start_minute'],
					$row['start_second'],
					$row['start_month'],
					$row['start_day'],
					$row['start_year']);

			$end_ts = mktime($row['end_hour'],
					$row['end_minute'],
					$row['end_second'],
					$row['end_month'],
					$row['end_day'],
					$row['end_year']);

			$query = "UPDATE `" . SQL_PREFIX . "occurrences`\n"
				. "SET `start_date` = NULL, "
				. "`start_ts` = FROM_UNIXTIME($start_ts), "
				. "`end_ts` = FROM_UNIXTIME($end_ts)\n"
				. "WHERE `oid` = {$row['oid']}";
			$dbh->query($query)
				or db_error($dbh, 'Error updating occurrences.',
						$query);
		}
	}

	echo "<p>Occurrences updated.</p>";

	upgrade_20beta10();

	echo "<p>Update complete.</p>";
}

function upgrade_20beta10() {
	create_logins_table();
	upgrade_20beta11();
}

function upgrade_20beta11() {
	add_event_time();
	add_calendar_config();
	add_categories_gid();
	echo "<p>Adding groups table.</p>";
	create_table("groups",
			"`gid` int(11) NOT NULL AUTO_INCREMENT,\n"
			."`cid` int(11),\n"
			."`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
			."PRIMARY KEY (`gid`)\n");
	echo "<p>Adding user_groups table.</p>";
	create_table("user_groups",
			"`gid` int(11),\n"
			."`uid` int(11)\n");
	create_version_table();
	upgrade_20rc2();
}

function upgrade_20rc2()
{
	global $dbh;

	$query = "ALTER TABLE `" . SQL_PREFIX . "users`\n"
		."ADD `gid` int(11)\n";
	$dbh->query($query)
		or db_error($dbh, 'Error adding elements to users table.', $query);
}

function add_categories_gid() {
	global $dbh;

	echo "<p>Adding gid to categories</p>";

	$query = "ALTER TABLE `" . SQL_PREFIX . "categories`\n"
		."ADD `gid` int(11) unsigned DEFAULT NULL";

	$dbh->query($query)
		or db_warning($dbh, 'Error adding gid to categories table.',
				$query);
}

function add_event_time() {
	global $dbh;

	phpc_debug("Adding \"ctime\" and \"mtime\" columns.");

	$query = "ALTER TABLE `" . SQL_PREFIX . "events`\n"
		."ADD `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP,\n"
		."ADD `mtime` timestamp NULL default NULL";

	$dbh->query($query)
		or db_warning($dbh, 'Error adding time elements to events table.',
				$query);
}

function add_calendar_config() {
	global $dbh;

	$query = "ALTER TABLE `" . SQL_PREFIX . "calendars`\n"
		."ADD `hours_24` tinyint(1) NOT NULL DEFAULT 0,\n"
		."ADD `date_format` tinyint(1) NOT NULL DEFAULT 0,\n"
		."ADD `week_start` tinyint(1) NOT NULL DEFAULT 0,\n"
		."ADD `subject_max` smallint(5) unsigned NOT NULL DEFAULT 50,\n"
		."ADD `events_max` tinyint(3) unsigned NOT NULL DEFAULT 8,\n"
		."ADD `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'PHP-Calendar',\n"
		."ADD `anon_permission` tinyint(1) NOT NULL DEFAULT 1,\n"
		."ADD `timezone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
		."ADD `language` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
		."ADD `theme` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL";

	$dbh->query($query)
		or db_warning($dbh, 'Error adding time elements to events table.',
				$query);
}

function create_version_table() {
	global $phpc_db_version, $dbh;

	create_table("version",
			"`version` SMALLINT unsigned NOT NULL DEFAULT '$phpc_db_version'");

	$query = "REPLACE INTO `" . SQL_PREFIX . "version`\n"
		."SET `version`='$phpc_db_version'";

	$dbh->query($query)
		or db_error($dbh, 'Error creating version row.', $query);
}

function check_config()
{
	global $phpc_config_file;

	if(is_writable($phpc_config_file))
		return true;

	// Check if we can create the file
	if($file = @fopen($phpc_config_file, 'a')) {
		fclose($file);
		return true;
	}
	return false;
}

function report_config()
{
	echo '<p>Your configuration file could not be written to. This file '
		.'probably does not yet exist. If that is the case, you need to '
		.'create it. You need to make sure this script can write to '
		.'it. We suggest logging in with a shell and typing:</p>
		<pre>
		touch config.php
		chmod 666 config.php
		</pre>
		<p>or if you only have ftp access, upload a blank file named '
		.'config.php to your php-calendar directory then use the chmod '
		.'command to change the permissions of config.php to 666.</p>
		<p><input type="submit" value="Retry"/></p>';
}

function get_server_setup()
{
	if(!check_config())
		return report_config();

	echo '
		<h3>Step 1: Database</h3>
		<table class="display">
		<tr>
		<td><label for="my_hostname">SQL Server Hostname:</label></td>
		<td><input type="text" name="my_hostname" id="my_hostname" value="localhost"></td>
		</tr>
		<tr>
		<td><label for="my_database">SQL Database name:</label></td>
		<td><input type="text" name="my_database" id="my_database" value="calendar"></td>
		</tr>
		<tr>
		<td><label for="my_prefix">SQL Table prefix:</label></td>
		<td><input type="text" name="my_prefix" id="my_prefix" value="phpc_"></td>
		</tr>
		<tr>
		<td><label for="my_username">SQL Username:</label></td>
		<td><input type="text" name="my_username" id="my_username" value="calendar"></td>
		</tr>
		<tr>
		<td><label for="my_passwd">SQL Password:</label></td>
		<td><input type="password" name="my_passwd" id="my_passwd"></td>
		</tr>
		<tr>
		<td colspan="2">
		  <input type="checkbox" name="create_db" id="create_db" value="yes"/>
		  <label for="create_db">Create the database (don\'t check this if it already exists)</label>
		</td>
		</tr>
		<tr>
		<td colspan="2">
		  <input type="checkbox" name="drop_tables" id="drop_tables" value="yes">
		  <label for="drop_tables">Drop tables before creating them</label>
		</td>
		</tr>
		<tr><td colspan="2">
		<span style="font-weight:bold;">Optional: user creation on database</span>
		</td></tr>
		<tr><td colspan="2">
		If the credentials supplied above are new, you have to be the database administrator.
		</td></tr>
		<tr><td colspan="2">
		 <input type="checkbox" name="create_user" id="create_user" value="yes">
		 <label for="create_user">Check this if you want to do it and provide admin user and password.</label>
		</td></tr>
		<tr>
		<td><label for="my_adminname">SQL Admin name:</label></td>
		<td><input type="text" name="my_adminname" id="my_adminname"></td>
		</tr>
		<tr>
		<td><label for="my_adminpasswd">SQL Admin Password:</label></td>
		<td><input type="password" name="my_adminpasswd" id="my_adminpasswd"></td>
		</tr>
		<tr>
		<td colspan="2">
		  <input name="action" type="submit" value="Install">
		</td>
		</tr>
		</table>';
}

function add_sql_user_db()
{
	global $dbh;

	$my_hostname = $_POST['my_hostname'];
	$my_username = $_POST['my_username'];
	$my_passwd = $_POST['my_passwd'];
	$my_prefix = $_POST['my_prefix'];
	$my_database = $_POST['my_database'];
	$my_adminname = $_POST['my_adminname'];
	$my_adminpasswd = $_POST['my_adminpasswd'];

	$create_user = isset($_POST['create_user'])
		&& $_POST['create_user'] == 'yes';
	$create_db = isset($_POST['create_db']) && $_POST['create_db'] == 'yes';

	// Make the database connection.
	if($create_user) {
		$dbh = connect_db($my_hostname, $my_adminname, $my_adminpasswd);
	} else {
		$dbh = connect_db($my_hostname, $my_username, $my_passwd);
	}

	$string = "<h3>Step 2: Database Setup</h3>";

	if($create_db) {
		phpc_debug("Creating database \"$my_database\".");

		$query = "CREATE DATABASE $my_database";

		$dbh->query($query)
			or db_error($dbh, 'error creating db', $query);

		$string .= "<p>Successfully created database</p>";
	}

	if($create_user) {
		phpc_debug("Creating user \"$my_username\".");

		$query = "GRANT ALL ON accounts.* TO $my_username@$my_hostname identified by '$my_passwd'";
		$dbh->query($query)
			or db_error($dbh, 'Could not grant:', $query);
		$query = "GRANT ALL ON $my_database.*\n"
			."TO $my_username IDENTIFIED BY '$my_passwd'";
		$dbh->query($query)
			or db_error($dbh, 'Could not grant:', $query);

		$query = "FLUSH PRIVILEGES";
		$dbh->query($query)
			or db_error($dbh, "Could not flush privileges", $query);

		$string .= "<p>Successfully added user</p>";
	}

	echo "$string\n"
		."<div><input type=\"submit\" name=\"done_user_db\" value=\"continue\"/>"
		."</div>\n";

}


function install_base()
{
	global $phpc_config_file, $dbh;

	$sql_type = "mysqli";
	$sql_hostname = $_POST['my_hostname'];
	$sql_username = $_POST['my_username'];
	$sql_passwd = $_POST['my_passwd'];
	$sql_prefix = $_POST['my_prefix'];
	$sql_database = $_POST['my_database'];

	$fp = fopen($phpc_config_file, 'w')
		or soft_error('Couldn\'t open config file.');

	// Make the database connection.
	$dbh = connect_db($sql_hostname, $sql_username, $sql_passwd, $sql_database);

	phpc_debug("Writing config file \"$phpc_config_file\".");

	$defines = "define('SQL_HOST',     '$sql_hostname');\n"
        ."define('SQL_USER',     '$sql_username');\n"
		."define('SQL_PASSWD',   '$sql_passwd');\n"
		."define('SQL_DATABASE', '$sql_database');\n"
		."define('SQL_PREFIX',   '$sql_prefix');\n"
        ."define('SQL_TYPE',     '$sql_type');\n";

    fwrite($fp, "<"."?php\n$defines?".">\n") // Break this up to fix syntax HL in vim
		or soft_error("Could not write to file");
	fclose($fp);

	eval($defines);

	create_tables();

	echo "<p>Config file created at \"". realpath($phpc_config_file) ."\"</p>"
		."<p>Calendars database created</p>\n"
		."<div><input type=\"submit\" name=\"base\" value=\"continue\">"
		."</div>\n";
}

function create_tables()
{
	global $dbh;

	create_table("events",
		"`eid` int(11) unsigned NOT NULL auto_increment,\n"
		."`cid` int(11) unsigned NOT NULL,\n"
		."`owner` int(11) unsigned NOT NULL default 0,\n"
		."`subject` varchar(255) collate utf8_unicode_ci NOT NULL,\n"
		."`description` text collate utf8_unicode_ci NOT NULL,\n"
		."`readonly` tinyint(1) NOT NULL default 0,\n"
		."`catid` int(11) unsigned default NULL,\n"
		."`ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\n"
		."`mtime` timestamp NULL DEFAULT NULL,\n"
		."PRIMARY KEY (`eid`)\n",
		"AUTO_INCREMENT=1");

	create_table("occurrences",
		"`oid` int(11) unsigned NOT NULL auto_increment,\n"
		."`eid` int(11) unsigned NOT NULL,\n"
		."`start_date` date default NULL,\n"
		."`end_date` date default NULL,\n"
		."`start_ts` timestamp NULL default NULL,\n"
		."`end_ts` timestamp NULL default NULL,\n"
		."`time_type` tinyint(4) NOT NULL default '0',\n"
		."PRIMARY KEY  (`oid`),\n"
		."KEY `eid` (`eid`)\n",
		"AUTO_INCREMENT=1");

	create_table("users",
		"`uid` int(11) unsigned NOT NULL auto_increment,\n"
		."`username` varchar(32) collate utf8_unicode_ci NOT NULL,\n"
		."`password` varchar(32) collate utf8_unicode_ci NOT NULL default '',\n"
		."`admin` tinyint(4) NOT NULL DEFAULT '0',\n"
		."`password_editable` tinyint(1) NOT NULL DEFAULT '1',\n"
		."`timezone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
		."`language` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
		."`gid` int(11),\n"
		."PRIMARY KEY (`uid`),\n"
		."UNIQUE KEY `username` (`username`)\n",
		"AUTO_INCREMENT=1");

	// added in 2.0-rc3
	create_table("groups",
		"`gid` int(11) NOT NULL AUTO_INCREMENT,\n"
		."`cid` int(11),\n"
		."`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
		."PRIMARY KEY (`gid`)\n");

	// added in 2.0-rc3
	create_table("user_groups",
		"`gid` int(11),\n"
		."`uid` int(11)\n");

	create_logins_table();

	create_table("permissions",
		"`cid` int(11) unsigned NOT NULL,\n"
		."`uid` int(11) unsigned NOT NULL,\n"
		."`read` tinyint(1) NOT NULL,\n"
		."`write` tinyint(1) NOT NULL,\n"
		."`readonly` tinyint(1) NOT NULL,\n"
		."`modify` tinyint(1) NOT NULL,\n"
		."`admin` tinyint(1) NOT NULL,\n"
		."UNIQUE KEY `cid` (`cid`,`uid`)\n");

	create_table("calendars",
		"`cid` int(11) unsigned NOT NULL auto_increment,\n"
		."`hours_24` tinyint(1) NOT NULL DEFAULT 0,\n"
		."`date_format` tinyint(1) NOT NULL DEFAULT 0,\n"
		."`week_start` tinyint(1) NOT NULL DEFAULT 0,\n"
		."`subject_max` smallint(5) unsigned NOT NULL DEFAULT 50,\n"
		."`events_max` tinyint(4) unsigned NOT NULL DEFAULT 8,\n"
		."`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'PHP-Calendar',\n"
		."`anon_permission` tinyint(1) NOT NULL DEFAULT 1,\n"
		."`timezone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
		."`language` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
		."`theme` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n"
		."PRIMARY KEY  (`cid`)\n",
		"AUTO_INCREMENT=1");

	create_table("categories",
		"`catid` int(11) unsigned NOT NULL auto_increment,\n"
		."`cid` int(11) unsigned NOT NULL,\n"
		."`gid` int(11) unsigned DEFAULT NULL,\n"
		."`name` varchar(255) collate utf8_unicode_ci NOT NULL,\n"
		."`text_color` varchar(255) collate utf8_unicode_ci default NULL,\n"
		."`bg_color` varchar(255) collate utf8_unicode_ci default NULL,\n"
		."PRIMARY KEY  (`catid`),\n"
		."KEY `cid` (`cid`)\n",
		"AUTO_INCREMENT=1");

	create_version_table();
}

function get_admin()
{
	echo '<h3>Step 4: Administration account</h3>';
	echo "<table>\n"
		."<tr><td colspan=\"2\">Now you must create the calendar administrative "
		."account.</td></tr>\n"
		."<tr><td>\n"
		."Admin name:\n"
		."</td><td>\n"
		."<input type=\"text\" name=\"admin_user\" />\n"
		."</td></tr><tr><td>\n"
		."Admin password:"
		."</td><td>\n"
		."<input type=\"password\" name=\"admin_pass\" />\n"
		."</td></tr><tr><td colspan=\"2\">"
		."<input type=\"submit\" value=\"Create Admin Account\" />\n"
		."</td></tr></table>\n";

}

function add_calendar()
{
	global $dbh, $phpc_config_file;

	$calendar_title = 'PHP-Calendar';

	// Make the database connection.
	$dbh = connect_db(SQL_HOST, SQL_USER, SQL_PASSWD, SQL_DATABASE);

	$query = "INSERT INTO ".SQL_PREFIX."calendars\n"
		."(`cid`) VALUE (1)";

	$dbh->query($query)
		or db_error($dbh, 'Error reading options', $query);

	$cid = $dbh->insert_id;

	echo "<h3>Final Step</h3>\n";

	echo "<p>Saved default configuration</p>\n";

	$passwd = md5($_POST['admin_pass']);

	$query = "INSERT INTO `" . SQL_PREFIX . "users`\n"
		."(`username`, `password`, `admin`) VALUES\n"
		."('$_POST[admin_user]', '$passwd', 1)";

	$dbh->query($query)
		or db_error($dbh, 'Error adding admin.', $query);

	echo "<p>Admin account created.</p>";
	echo "<p>Now you should delete install.php file from root directory (for security reasons).</p>";
	echo "<p>You should also change the permissions on config.php so only your webserver can read it.</p>";
	echo "<p><a href=\"index.php\">View calendar</a></p>";
}

echo '</form></body></html>';

// called when there is an error involving the DB
function db_error($dbh, $str, $query = "")
{
	$string = "$str<br />" . $dbh->error;

	if($query != "")
		$string .= "<br />SQL query: $query";

	soft_error($string);
}

// called when there is an error involving the DB that we should keep trying
//   to procede after
function db_warning($dbh, $str, $query = "")
{
	$string = "$str<br />" . $dbh->error;

	if($query != "")
		$string .= "<br />SQL query: $query";

	echo $string;
}

function connect_db($hostname, $username, $passwd, $database = false)
{

	phpc_debug("Connecting to SQL server $hostname with user $username.");

	$dbh = new mysqli($hostname, $username, $passwd);

	if(mysqli_connect_errno()) {
		soft_error("Database connect failed (" . mysqli_connect_errno()
				. "): " . mysqli_connect_error());
	}

	if($database) {
		phpc_debug("Selecting database $database");
		$dbh->select_db($database)
			or soft_error("Could not select database \"$database\".");
	}
	$dbh->query("SET NAMES 'utf8'");

	return $dbh;
}

// called when some error happens
function soft_error($str)
{
	echo "<h1>Software Error</h1>\n",
	     "<h2>Message:</h2>\n",
	     "<pre>$str</pre>\n",
	     "<h2>Backtrace</h2>\n",
	     "<ol>\n";
	foreach(debug_backtrace() as $bt) {
		echo "<li>$bt[file]:$bt[line] - $bt[function]</li>\n";
	}
	echo "</ol>\n";
	exit;
}

function create_logins_table() {
	global $dbh;

	echo '<h3>Step 3: Database Created</h3>';
	create_table("logins",
		"`uid` int(11) unsigned NOT NULL,\n"
		."`series` char(43) collate utf8_unicode_ci NOT NULL,\n"
		."`token` char(43) collate utf8_unicode_ci NOT NULL,\n"
		."`atime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\n"
		."PRIMARY KEY  (`uid`, `series`)\n");

	echo "<p>Logins table updated.</p>";
}

function create_table($suffix, $columns, $table_args = "") {
	global $drop_tables, $dbh;

	$table_name = SQL_PREFIX . $suffix;

	phpc_debug("Creating table \"$table_name\".");

	if($drop_tables) {
		$query = "DROP TABLE IF EXISTS `$table_name`";

		$dbh->query($query)
			or db_error($dbh, "Error dropping table `$table_name`.",
					$query);
	}

	$query = "CREATE TABLE `$table_name` (\n"
		.$columns
		.") ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci $table_args;\n";

	$dbh->query($query)
		or db_error($dbh, "Error creating table `$table_name`.",
				$query);
}

function phpc_debug($msg) {
	echo "<p>$msg</p>";
}
?>
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "{}"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright 2017 Sean Proctor

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Arabic (http://www.transifex.com/sproctor/php-calendar/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr ""

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr ""

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr ""

#: includes/admin.php:74
msgid "Calendar List"
msgstr ""

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr ""

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr ""

#: includes/admin.php:110
msgid "User List"
msgstr ""

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr ""

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr ""

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr ""

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr ""

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr ""

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr ""

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr ""

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr ""

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr ""

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr ""

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr ""

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr ""

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr ""

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr ""

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr ""

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr ""

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr ""

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr ""

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr ""

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr ""

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr ""

#: includes/calendar.php:475
msgid "Add Event"
msgstr ""

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr ""

#: includes/calendar.php:483
msgid "View Month"
msgstr ""

#: includes/calendar.php:488
msgid "View date"
msgstr ""

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr ""

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr ""

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr ""

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr ""

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr ""

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr ""

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr ""

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr ""

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr ""

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr ""

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr ""

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr ""

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr ""

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr ""

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr ""

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr ""

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr ""

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr ""

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr ""

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr ""

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr ""

#: includes/category_delete.php:29
msgid "No category selected."
msgstr ""

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr ""

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr ""

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr ""

#: includes/category_form.php:27
msgid "Category Form"
msgstr ""

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr ""

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr ""

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr ""

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr ""

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr ""

#: includes/display_day.php:111
msgid "No events on this day."
msgstr ""

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr ""

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr ""

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr ""

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr ""

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr ""

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr ""

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr ""

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr ""

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr ""

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr ""

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr ""

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr ""

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr ""

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr ""

#: includes/event_form.php:72
msgid "Weekly"
msgstr ""

#: includes/event_form.php:74
msgid "Monthly"
msgstr ""

#: includes/event_form.php:76
msgid "Yearly"
msgstr ""

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr ""

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr ""

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr ""

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr ""

#: includes/event_form.php:129
msgid "Submit Event"
msgstr ""

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr ""

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr ""

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr ""

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr ""

#: includes/globals.php:24
msgid "February"
msgstr ""

#: includes/globals.php:25
msgid "March"
msgstr ""

#: includes/globals.php:26
msgid "April"
msgstr ""

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr ""

#: includes/globals.php:28
msgid "June"
msgstr ""

#: includes/globals.php:29
msgid "July"
msgstr ""

#: includes/globals.php:30
msgid "August"
msgstr ""

#: includes/globals.php:31
msgid "September"
msgstr ""

#: includes/globals.php:32
msgid "October"
msgstr ""

#: includes/globals.php:33
msgid "November"
msgstr ""

#: includes/globals.php:34
msgid "December"
msgstr ""

#: includes/globals.php:40
msgid "Tuesday"
msgstr ""

#: includes/globals.php:41
msgid "Wednesday"
msgstr ""

#: includes/globals.php:42
msgid "Thursday"
msgstr ""

#: includes/globals.php:43
msgid "Friday"
msgstr ""

#: includes/globals.php:48
msgid "Jan"
msgstr ""

#: includes/globals.php:49
msgid "Feb"
msgstr ""

#: includes/globals.php:50
msgid "Mar"
msgstr ""

#: includes/globals.php:51
msgid "Apr"
msgstr ""

#: includes/globals.php:53
msgid "Jun"
msgstr ""

#: includes/globals.php:54
msgid "Jul"
msgstr ""

#: includes/globals.php:55
msgid "Aug"
msgstr ""

#: includes/globals.php:56
msgid "Sep"
msgstr ""

#: includes/globals.php:57
msgid "Oct"
msgstr ""

#: includes/globals.php:58
msgid "Nov"
msgstr ""

#: includes/globals.php:59
msgid "Dec"
msgstr ""

#: includes/globals.php:69
msgid "Start Date"
msgstr ""

#: includes/globals.php:74
msgid "Ascending"
msgstr ""

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr ""

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr ""

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr ""

#: includes/logout.php:29
msgid "Loggin out..."
msgstr ""

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr ""

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr ""

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr ""

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr ""

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr ""

#: includes/search.php:87
msgid "Search Results"
msgstr ""

#: includes/search.php:91
msgid "Date Time"
msgstr ""

#: includes/search.php:107
msgid "Phrase"
msgstr ""

#: includes/search.php:115
msgid "Sort By"
msgstr ""

#: includes/search.php:118
msgid "Order"
msgstr ""

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr ""

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr ""

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr ""

#: includes/user_create.php:103
msgid "User already exists."
msgstr ""

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr ""

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr ""

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr ""

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Hristo Delchev <hristomail@gmail.com>, 2010
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Bulgarian (http://www.transifex.com/sproctor/php-calendar/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Трябва да си влезнал като администратор."

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Изтрий"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Създай Календар"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Календари"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Потребител"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Създай Потребител"

#: includes/admin.php:110
msgid "User List"
msgstr "Потребители"

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "Опции"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Изпрати"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Четене"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Запис"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Само за четене"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Редактирай"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Администратор"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Потребителски Права"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Потребителско Име"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Може да създава само за четене"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Без Име"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Няма"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Създай Категория"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Категории"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Име"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Цвят на текста"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Цвят на фона"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Правата отказани"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr " не е настроено"

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Опциите обновени"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr "Изход"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Вход"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Добави Събитие"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Търси"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Месечен Изглед"

#: includes/calendar.php:488
msgid "View date"
msgstr "Виж датата"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Администриране"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Първи ден от седмицата"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Неделя"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Понеделник"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Събота"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24-часово време"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Заглавие на календара"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Максимална брой символи в темата"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Неоторизиран Достъп"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Не може нито да чете, нито да създава събития"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Може да чете, но не може да записва събития"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Може да създава, но не може да променя събития"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Може да създава и променя събития"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Нямате необходимите права за да направите това"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Грешка"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Backtrace"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Невалидно действие"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Типа конфигурация не се поддържа"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Няма избран календар"

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Потвръдете изтриването"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Потвърди"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Отказ"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Календара е създаден"

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Няма избрана категория"

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Нямате права за да изтриете категорията"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Категорията Изтрита"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Не може да изтрия категорията"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Форма за Категории"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Нямате права за да добавите категории към всички календари"

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Нямате права за да добавите категории към този календар"

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Категорията променена: "

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Категорията създадена: "

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Грешка при създаването на категория."

#: includes/display_day.php:45
msgid "Title"
msgstr "Заглавие"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Време"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Описание"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Изтрий Избраното"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Няма събития за този ден."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Невалидни аргументи"

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Нямате права да прочетете това събитие"

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Категория"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Кога"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Виж Всички Събития"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "в"

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Няма избрани събития."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Форма за Събития"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Тема"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "От"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "До"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Времеви тип"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Нормален"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Цял Ден"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Да бъде обявено"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Повторения"

#: includes/event_form.php:68
msgid "Never"
msgstr "Никога"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Дневно"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Седмично"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Месечно"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Годишно"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Всеки"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Колко дни да се повтори?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Докато"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Колко седмици да се повтори?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Колко месеци да се повтори?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Колко години да се повтори?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr ""

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Неразпознат Времеви Тип"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Нямате права да записвате в този календар"

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Задължителното поле \"всеки ден\" не е попълнено."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "полето \"всеки ден\" трябва да е по-голямо от 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Задължителното поле \"всяка седмица\" не е попълнено."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "полето \"всяка седмица\" трябва да е по-голямо от 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Задължителното поле \"всеки месец\" не е попълнено."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "полето \"всеки месец\" трябва да е по-голямо от 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Задължителното поле \"всяка година\" не е попълнено."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Невалиден тип на събитието"

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Грешка при създаването на събитието"

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Не може да се добави елемент към формата, който не е към нея"

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr "Януари"

#: includes/globals.php:24
msgid "February"
msgstr "Февруари"

#: includes/globals.php:25
msgid "March"
msgstr "Март"

#: includes/globals.php:26
msgid "April"
msgstr "Април"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Май"

#: includes/globals.php:28
msgid "June"
msgstr "Юни"

#: includes/globals.php:29
msgid "July"
msgstr "Юли"

#: includes/globals.php:30
msgid "August"
msgstr "Август"

#: includes/globals.php:31
msgid "September"
msgstr "Септември"

#: includes/globals.php:32
msgid "October"
msgstr "Октомври"

#: includes/globals.php:33
msgid "November"
msgstr "Ноември"

#: includes/globals.php:34
msgid "December"
msgstr "Декември"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Вторник"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Сряда"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Четвъртък"

#: includes/globals.php:43
msgid "Friday"
msgstr "Петък"

#: includes/globals.php:48
msgid "Jan"
msgstr "Яну"

#: includes/globals.php:49
msgid "Feb"
msgstr "Фев"

#: includes/globals.php:50
msgid "Mar"
msgstr "Мар"

#: includes/globals.php:51
msgid "Apr"
msgstr "Апр"

#: includes/globals.php:53
msgid "Jun"
msgstr "Юни"

#: includes/globals.php:54
msgid "Jul"
msgstr "Юли"

#: includes/globals.php:55
msgid "Aug"
msgstr "Авг"

#: includes/globals.php:56
msgid "Sep"
msgstr "Сеп"

#: includes/globals.php:57
msgid "Oct"
msgstr "Окт"

#: includes/globals.php:58
msgid "Nov"
msgstr "Ное"

#: includes/globals.php:59
msgid "Dec"
msgstr "Дек"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Започва на дата"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Възходящо"

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr "Логнат."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Невалидно потребителско име или парола"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Бисквитките в браузъра ви трябва да са разрешени за да можете да влезнете."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Парола"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Излизане..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Трябва да въведете парола"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "посочените от вас пароли не съвпадат"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Без заглавие)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Грешка при get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Греша при get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Събитието не съществува"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Грешка при get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Грешка при get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Грешка при get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Грешка при get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Грешка при изстриването на събитие."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Грешка при изстриването на календар"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Грешка при изстриването на категория"

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Грешка при изстриването на "

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Не може да вземе потребителските права"

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Не може да вземе календарите"

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Не може да вземе потребителя"

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Грешка при вземането на потребителя"

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Грешка при създаването на потребител."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Грешка при вземането на опциите"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Грешка при създаването на опциите"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Грешка при създаването на събитие"

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Грешка при промяната на събитие"

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Грешка при създаването на категория"

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Грешка при промяната на категория"

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Грешка при търсене"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Грешка при обновяването на потребителските права"

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL заявка"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "анонимен"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "непознат"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Без заглавие)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "ДСО"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "на"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "невалидна опция за сортиране"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "невалидна опция за подредба"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "няма събития които да отговарят на търсения критерий"

#: includes/search.php:87
msgid "Search Results"
msgstr "Резултати от търсенето"

#: includes/search.php:91
msgid "Date Time"
msgstr "Дата Час"

#: includes/search.php:107
msgid "Phrase"
msgstr "Фраза"

#: includes/search.php:115
msgid "Sort By"
msgstr "Сортирай по"

#: includes/search.php:118
msgid "Order"
msgstr "Подредба"

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Невалидна година"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Потвърди Парола"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Направи Администратор"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Трябва да въведете потребителско име"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Потребителя вече съществува"

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "няма избран потребител"

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "няма потребители"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "няма промени"

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Arantxa, Marcelo H.Fortino <servicios@estrategiasgnulinux.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Catalan (http://www.transifex.com/sproctor/php-calendar/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr ""

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Borrar"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr ""

#: includes/admin.php:74
msgid "Calendar List"
msgstr ""

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Nom usuari"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr ""

#: includes/admin.php:110
msgid "User List"
msgstr ""

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "Opcions"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Enviar"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr ""

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr ""

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr ""

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Modificar"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr ""

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr ""

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr ""

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr ""

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr ""

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr ""

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr ""

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr ""

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr ""

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr ""

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Accés denegat"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr ""

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Opcions actualitzades"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr "Desconnectar"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Connectar"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Afegir esdeveniment"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Buscar"

#: includes/calendar.php:483
msgid "View Month"
msgstr ""

#: includes/calendar.php:488
msgid "View date"
msgstr "Veure data"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr ""

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr ""

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Diumenge"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Dilluns"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Dissabte"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr ""

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Títol del calendari"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr ""

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr ""

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr ""

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr ""

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr ""

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr ""

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr ""

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr ""

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Acció incorrecta"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr ""

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr ""

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr ""

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr ""

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr ""

#: includes/category_delete.php:29
msgid "No category selected."
msgstr ""

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr ""

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr ""

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr ""

#: includes/category_form.php:27
msgid "Category Form"
msgstr ""

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr ""

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr "Títol"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Hora"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Descripció"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Borrar seleccionat"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "No hi ha esdeveniments en aquest dia"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr ""

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr ""

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr ""

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr ""

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr ""

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr ""

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Assumpte"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "De"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Per a"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr ""

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normal"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Tot el dia"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr ""

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr ""

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Setmanalment"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Mensualment"

#: includes/event_form.php:76
msgid "Yearly"
msgstr ""

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr ""

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr ""

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr ""

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr ""

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Afegir esdeveniment"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr ""

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr ""

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr ""

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr "Gener"

#: includes/globals.php:24
msgid "February"
msgstr "Febrer"

#: includes/globals.php:25
msgid "March"
msgstr "Març"

#: includes/globals.php:26
msgid "April"
msgstr "Abril"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Maig"

#: includes/globals.php:28
msgid "June"
msgstr "Juny"

#: includes/globals.php:29
msgid "July"
msgstr "Juliol"

#: includes/globals.php:30
msgid "August"
msgstr "Agost"

#: includes/globals.php:31
msgid "September"
msgstr "Setembre"

#: includes/globals.php:32
msgid "October"
msgstr "Octubre"

#: includes/globals.php:33
msgid "November"
msgstr "Novembre"

#: includes/globals.php:34
msgid "December"
msgstr "Desembre"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Dimarts"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Dimecres"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Dijous"

#: includes/globals.php:43
msgid "Friday"
msgstr "Divendres"

#: includes/globals.php:48
msgid "Jan"
msgstr "Gen"

#: includes/globals.php:49
msgid "Feb"
msgstr "Feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mar"

#: includes/globals.php:51
msgid "Apr"
msgstr "Abr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Jun"

#: includes/globals.php:54
msgid "Jul"
msgstr "Jul"

#: includes/globals.php:55
msgid "Aug"
msgstr "Ago"

#: includes/globals.php:56
msgid "Sep"
msgstr "Set"

#: includes/globals.php:57
msgid "Oct"
msgstr "Oct"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "Des"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Data d'inici"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Ascendent"

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr ""

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Ho sentim, connexió incorrecte"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Contrasenya"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr ""

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr ""

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr ""

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr ""

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr ""

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr ""

#: includes/search.php:87
msgid "Search Results"
msgstr "Resultats de la cerca"

#: includes/search.php:91
msgid "Date Time"
msgstr "Data i hora"

#: includes/search.php:107
msgid "Phrase"
msgstr "Frase"

#: includes/search.php:115
msgid "Sort By"
msgstr "Ordenar per"

#: includes/search.php:118
msgid "Order"
msgstr "Ordre"

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr ""

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr ""

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr ""

#: includes/user_create.php:103
msgid "User already exists."
msgstr ""

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr ""

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr ""

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr ""

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Tomáš Maněna <tomas@manena.cz>, 2013,2015
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2017-09-23 18:58+0000\n"
"Last-Translator: Tomáš Maněna <tomas@manena.cz>\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/sproctor/php-calendar/language/cs_CZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs_CZ\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Musíte být přihlášen jako admin."

#: includes/admin.php:33
msgid "Calendars"
msgstr "Kalendáře"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Uživatelé"

#: includes/admin.php:37
msgid "Import"
msgstr "Import"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Přeložit"

#: includes/admin.php:42
msgid "Version"
msgstr "Verze"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Kalendář"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Akce"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Upravit"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Smazat"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Vytvořit kalendář"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Seznam kalendářů"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Uživatelské jméno"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Skupiny"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Upravit skupiny"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Vytvořit uživatele"

#: includes/admin.php:110
msgid "User List"
msgstr "Seznam uživatelů"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Importovat z"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL jméno hosta"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL název databáze"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL číslo portu"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Nechte prázdné pro přednastavené"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL uživatelské jméno"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL heslo"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar prefix tabulek"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Importovat kalendář"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "Tento skript potřebuje práva ke čtení k adresáři s vaším kalendářem, aby mohl zapisovat soubory s překlady. Případně můžete spustit translate.php z příkazového řádku pomocí msgfmt nebo jiného gettext nástroje, který umí generovat .mo soubory z .po souborů."

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "Generovat překlady"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "Konfigurace kalendáře"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "Kategorie"

#: includes/cadmin.php:68
msgid "Options"
msgstr "Volby"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Odeslat"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Čtení"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Zápis"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Jen pro čtení"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Upravit"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Admin"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Uživatelská práva"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Uživatelské jméno"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Může vytvořit jen pro čtení"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Bez jména"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Žádný"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Vytvořit kategorii"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Kategorie kalendáře"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Jméno"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Barva písma"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Barva pozadí"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Viditelné pro skupinu uživatele"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Akce"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Vytvořit skupinu"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Skupiny kalendáře"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Přístup odepřen"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "nebyl nastaven."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Aktualizované nastavení"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Jazyk"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Časové pásmo"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Vítejte"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Nastavení"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Odhlásit se"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Přihlásit se"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Přidat událost"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Hledat"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Ukázat měsíc"

#: includes/calendar.php:488
msgid "View date"
msgstr "Ukázat datum"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Admin kalendáře"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Přednastavené"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Začátek týdne"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Neděle"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Pondělí"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Sobota"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24 hodinový čas"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Nadpis kalendáře"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Maximální délka předmětu"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Zobrazit maximálně událostí denně"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Veřejná práva"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Nelze zobrazit ani zapsat události"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Může zobrazit, nemůže vytvořit události"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Může vytvořit, nemůže upravit události"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Může vytvářet a upravovat události"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Přednastavené časové pásmo"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Přednastavení jazyk"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Formát data"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Téma"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Měsíc Den Rok"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Rok Měsíc Den"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Den Měsíc Rok"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Nemáte oprávnění k této akci:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Chyba"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Sledovat zpět"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Neplatná akce"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Bezpečnostní tokeny se neshodují. Možný pokus o falzyfikát."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Nepodporovaný formát konfigurace"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "Povinné pole \"%s\" nebylo vyplněno."

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "Špatný formát \"%s\" času: \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Nerozpoznaná perioda:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "Špatný formát \"%s\" času: \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "Špatný date_format (formát času)."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Nebyl vybrán kalendář."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Potvrďte smazání:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Potvrdit"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Zamítnout"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Nemáte oprávnění k odstranění kalendáře"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Odstranit kalendář"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Nepodařilo se odstranit kalendář"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Kalendář vytvořen."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Nebyla vybrána kategorie"

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Nemáte práva k smazání kategorie:"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Odstranit kategorii:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Nepodařilo se odstranit kategorii:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Formulář kategorie"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Viditelné skupinám"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "Odeslat kategorii"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Nebyla určena barva."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Neplatná barva."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Nemáte právo přidat kategorii do všech kalendářů."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Nemáte práva k přidání kategorií do tohoto kalendáře."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Nemáte oprávnění ke změně této kategorie."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Upravené kategorie:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Vytvořené kategorie:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Chyba při vytváření kategorie."

#: includes/display_day.php:45
msgid "Title"
msgstr "Nadpis"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Čas"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Popis"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Vymazat vybrané"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Žádné události pro tento den."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Neplatné parametry."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Nemáte práva pro čtení této události."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "od"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Kategorie"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Kdy"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Vytvořeno:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Naposledy upraveno:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Výskyt úpravy"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Výskyt odstranění"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Předchozí výskyt na"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Další výskyt"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Ukázat všechny výskyty"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Přidat výskyt"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "v"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Odstranit"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Výskyty"

#: includes/display_event.php:228
msgid "from"
msgstr "od"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "T"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Zobrazit doplňující události"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "pokračující"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "Špatné datum."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Nevybrána žádná událost."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Odstranit událost"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Odstraněné události"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Nelze odstranit událost"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Nelze odstranit události"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Nemáte oprávnění k odstranění události"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Nemáte oprávnění k odstranění událostí"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Událost od"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Předmět"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Změnit datum a čas události"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Od"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Do"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Typ času"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normální"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Celý den"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "K oznámení"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Opakování"

#: includes/event_form.php:68
msgid "Never"
msgstr "Nikdy"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Denně"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Týdně"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Měsíčně"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Ročně"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Každý"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Opakovat kolik dní?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Až do"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Opakovat kolik týdnů?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Opakovat kolik měsíců?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Opakovat kolik let?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Založit událost"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Nerozpoznaná formát času."

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "Událost nemůže mít konec před svým začátkem."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Nemáte oprávnění k zápisu do tohoto kalendáře."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Požadované pole \"každý den\" není nastaveno."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "každý den musí být větší než 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Požadované pole \"každý týden\" není vyplněno."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "každý týden musí být větší než 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Požadované pole \"každý měsíc\" není vyplněno."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "každý měsíc musí být větší než 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Požadované pole \"každý rok\" není vyplněno."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Neplatný typ události."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Upravená událost:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Vytvořená událost:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Chyba při ukládání události."

#: includes/form.php:32
msgid "required"
msgstr "požadované"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Nelze přidat neformulářový element do formuláře."

#: includes/form.php:428
msgid "Date"
msgstr "Datum"

#: includes/globals.php:23
msgid "January"
msgstr "Leden"

#: includes/globals.php:24
msgid "February"
msgstr "Únor"

#: includes/globals.php:25
msgid "March"
msgstr "Březen"

#: includes/globals.php:26
msgid "April"
msgstr "Duben"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Květen"

#: includes/globals.php:28
msgid "June"
msgstr "Červen"

#: includes/globals.php:29
msgid "July"
msgstr "Červenec"

#: includes/globals.php:30
msgid "August"
msgstr "Srpen"

#: includes/globals.php:31
msgid "September"
msgstr "Září"

#: includes/globals.php:32
msgid "October"
msgstr "Říjen"

#: includes/globals.php:33
msgid "November"
msgstr "Listopad"

#: includes/globals.php:34
msgid "December"
msgstr "Prosinec"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Úterý"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Středa"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Čtvrtek"

#: includes/globals.php:43
msgid "Friday"
msgstr "Pátek"

#: includes/globals.php:48
msgid "Jan"
msgstr "Leden"

#: includes/globals.php:49
msgid "Feb"
msgstr "Únor"

#: includes/globals.php:50
msgid "Mar"
msgstr "Březen"

#: includes/globals.php:51
msgid "Apr"
msgstr "Duben"

#: includes/globals.php:53
msgid "Jun"
msgstr "Červen"

#: includes/globals.php:54
msgid "Jul"
msgstr "Červenec"

#: includes/globals.php:55
msgid "Aug"
msgstr "Srpen"

#: includes/globals.php:56
msgid "Sep"
msgstr "Září"

#: includes/globals.php:57
msgid "Oct"
msgstr "Říjen"

#: includes/globals.php:58
msgid "Nov"
msgstr "Listopad"

#: includes/globals.php:59
msgid "Dec"
msgstr "Prosinec"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Počáteční datum"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Vzestupně"

#: includes/globals.php:75
msgid "Descending"
msgstr "Sestupně"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Nevybrána žádná skupina."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Nemáte práva k smazání skupiny:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Odstraněná skupiny:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Nepodařilo se odstranit skupinu:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Formulář skupiny"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "Odeslat skupinu"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Nemáte oprávnění k odstranění globální skupiny."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Nemáte oprávnění pro přidání skupiny do tohoto kalendáře."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Nemáte oprávnění ke změně této skupiny."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Upravená skupina:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Vytvořená skupina:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Chyba při vytváření skupiny."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Musí být admin"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Chyba při výběru událostí pro import"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Vytvořeno %s událostí s %s výskyty"

#: includes/login.php:39
msgid "Logged in."
msgstr "Přihlášený."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Neplatné přihlášení"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Musíte mít povolené cookies pro přihlášení."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Heslo"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Odhlašuji..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Výskyt od"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Odeslat výskyt"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Nelze vytvořit výskyt."

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID není nastaveno."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Upravené výskyty:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Vytvořené výskyty:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Chyba při ukládání výskytu."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Nevybrány žádné výskyty."

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Odstraněný výskyt"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Odstraněné výskyty"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Nepodařilo se odstranit výskyt"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Nepodařilo se odstranit výskyty"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Nemáte oprávnění ke smazání výskytu."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Nemáte oprávnění ke smazání výskytů."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Musíte být přihlášený."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Nemáte oprávnění ke změně hesla vaší skupiny."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Musíte zadat staré heslo."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Zadané heslo neodpovídá starému heslu."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Musíte zadat heslo"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Zadaná hesla se neshodují"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Heslo aktualizováno."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Bez nadpisu)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Událost neexistuje"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Událost neexistuje s oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Kategorie neexistuje s catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Skupina neexistuje s gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Chyba v "

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Chyba při odstraňování události."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Chyba při odstraňování výskytu."

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Chyba při odstraňování kalendáře"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Chyba při odstraňování kategorie."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Chyba při odstraňování skupiny."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Chyba při odstraňování"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Nelze přečíst práva."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Nelze získat kalendáře."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Nelze získat uživatele."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Chyba při získávání uživatele."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Chyba při vytváření uživatele."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Chyba při čtení voleb"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Chyba při vytváření voleb"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Chyba při aktualizaci hesla."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Chyba při aktualizaci časové zóny."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Chyba při aktualizaci jazyku."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "Chyba při přiřazování skupiny k uživateli."

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "Chyba při odebírání skupiny od uživatele."

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Chyba při vytváření události."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Chyba při vytváření výskytu."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Chyba při úpravě výskytu."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Chyba při úpravě události."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Chyba při vytváření kategorie."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Chyba při vytváření skupiny."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Chyba při úpravě kategorie."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Chyba při úpravě skupiny."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Chyba během vyhledávání"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Chyba při aktualizaci práv uživatele."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Chyba při získávání tokenu přihlášení."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Chyba pri přidávání tokenu pro přihlášení."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Chyba při aktualizaci přihlašovacího tokenu."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Chyba při odstraňování přihlašovacího tokenu."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Chyba při čistění přihlašovacích tokenů."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL dotaz"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonym"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "neznámý"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Bez předmětu)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB vrátila neplatné datum."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "K oznámení"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "do"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Neplatné parametr pro řazení"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Neplatný parametr pro pořadí"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Žádné události neodpovídají kritériím vyhledávání."

#: includes/search.php:87
msgid "Search Results"
msgstr "Výsledky vyhledávání"

#: includes/search.php:91
msgid "Date Time"
msgstr "Datum Čas"

#: includes/search.php:107
msgid "Phrase"
msgstr "Fráze"

#: includes/search.php:115
msgid "Sort By"
msgstr "Řadit podle"

#: includes/search.php:118
msgid "Order"
msgstr "Pořadí"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Změnit heslo"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Staré heslo"

#: includes/settings.php:64
msgid "New Password"
msgstr "Nové heslo"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Potvrdit nové heslo"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Nastavení byla aktualizována."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Možný pokus o nabourání se do vašeho účtu."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Měsíc je mimo limit."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Neplatný rok"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Přeloženo \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Potvrdit heslo"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Udělat adminem"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Musíte zadat přihlašovací jméno"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Uživatel již existuje."

#: includes/user_create.php:113
msgid "Added user."
msgstr "Přidán uživatel."

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Musíte být admin pro mazání uživatelů."

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Nevybrán žádný uživatel."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "Upravit uživatelské skupiny"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "Skupiny aktualizovány."

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Žádní uživatelé"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Nedojde k žádným změnám."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Aktualizovaný/í uživatel(é):"

#: includes/util.php:75
msgid "continue"
msgstr "pokračovat"

#: includes/util.php:157
msgid "Software Error"
msgstr "Softwarová chyba"

#: includes/util.php:158
msgid "Message:"
msgstr "Zpráva:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# lindquist <tomas.l.olsen@gmail.com>, 2014
# lindquist <tomas.l.olsen@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Danish (http://www.transifex.com/sproctor/php-calendar/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Du skal være logget ind som admin."

#: includes/admin.php:33
msgid "Calendars"
msgstr "Kalendere"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Brugere"

#: includes/admin.php:37
msgid "Import"
msgstr "Importer"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Oversæt"

#: includes/admin.php:42
msgid "Version"
msgstr "Version"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Kalender"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Handling"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Rediger"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Slet"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Opret Kalender"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Kalenderliste"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Brugernavn"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Grupper"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Rediger Grupper"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Opret Bruger"

#: includes/admin.php:110
msgid "User List"
msgstr "Brugerliste"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Importer Formular"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL Værtsnavn"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL Databasenavn"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL Portnummer"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Efterlad tom for standard"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL Brugernavn"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL Kodeord"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar Tabel Præfix"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Importer Kalender"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "Dette script har brug for skriveadgang til din kalendermappe for at kunne skrive oversættelsesfilerne. Alternativt kan du køre translate.php fra kommandlinjen eller bruger msgfmt eller et andet gettext værktøj der kan generere .mo filer fra .po filer."

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "Generer Oversættelser"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "Kalender Konfiguration"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "Kategorier"

#: includes/cadmin.php:68
msgid "Options"
msgstr "Indstillinger"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Gem"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "L&aelig;s"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Skriv"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Skrivebeskyttet"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Rediger"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Administrator"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Brugerrettigheder"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Brugernavn"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Kan oprette skrivebeskyttede"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Ikke Navngivet"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Ingen"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Opret kategori"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Kalender Kategorier"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Navn"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Tekstfarve"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Baggrundsfarve"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Synlig for Brugergruppe"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Handlinger"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Opret gruppe"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Kalendergrupper"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Adgang n&aelig;gtet"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr " var ikke sat."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Opdaterede indstillinger"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Sprog"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Tidszone"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Velkommen"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Indstillinger"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Log ud"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Log ind"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Tilf&oslash;j booking"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "S&oslash;g"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Vis M&aring;ned"

#: includes/calendar.php:488
msgid "View date"
msgstr "Vis dato"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Kalender Administrator"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Standard"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Uge Start"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "S&oslash;ndag"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Mandag"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "L&oslash;rdag"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24 timers ur"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Kalender Overskrift"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Max Emnel&aelig;ngde"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Dagligt Maksimum for Begivenhedsvisning"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Offentlig Adgang"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "M&aring; ikke l&aelig;se eller skrive"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "M&aring; l&aelig;se men ikke skrive"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "M&aring; oprette men ikke redigere"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "M&aring; oprette og redigere"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Standard Tidszone"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Standard Sprog"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Dato Format"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Tema"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Måned Dag År"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "År Måned Dag"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Dag Måned År"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Du har ikke rettigheder til denne handling: "

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Fejl"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Backtrace"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Ugylding handling"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Hemmelig token uoverensstemmelse. Muligt forsøg på forespørgselsforfalskning."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Ikke supporteret config type"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "Påkrævet felt \"%s\" blev ikke sat."

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "Misdannet \"%s\" tid: \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Periode ikke genkendt:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "Misdannet \"%s\" dato: \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "Ugyldig date_format."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Ingen kalender valgt."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Bekr&aelig;ft sletning:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Bekr&aelig;ft"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "N&aelig;gt"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Du har ikke rettigheder til at fjerne kalender"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Fjernede kalender"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Kunne ikke fjerne kalender"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Kalender oprettet."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Ingen kategori valgt."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Du har ikke rettigheder til at slette kategorien: "

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Slettet kategori: "

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Kunne ikke slette kategori: "

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Kategori Formular"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Synlig for grupper"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "Gem Kategori"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Farve ikke specificeret."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Ugyldig farve."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Du har ikke rettigheder til at tilf&oslash;je kategorier til alle kalendre."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Du har ikke rettigheder til at tilf&oslash;je kategoier til denne kalender."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Du har ikke rettigheder til at ændre denne kategori."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "&Aelig;ndret kategori: "

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Oprettet kategori: "

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Fejl ved gem kategori."

#: includes/display_day.php:45
msgid "Title"
msgstr "Titel"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Tid"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Beskrivelse"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Slet Valgte"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Ingen bookinger p&aring; denne dag."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Ugyldigt argument."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Du har ikke rettigheder til at l&aelig;se denne booking."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "af"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Kategori"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Hvorn&aring;r"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Oprettet:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Sidst ændret:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Rediger Forekomst"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Slet Forekomst"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Forrige forekomst på"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Næste forekomst på"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Vis Alle Forekomster"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Tilføj Forekomst"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "-"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Fjern"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Forekomster"

#: includes/display_event.php:228
msgid "from"
msgstr "fra"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "U"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Vis Yderligere Begivenheder"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "fortsat"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "Ugyldig dato."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Ingen handling valgt."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Fjernede begivenhed"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Fjernede begivenheder"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Kunne ikke fjerne begivenhed"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Kunne ikke fjerne begivenheder"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Du har ikke rettigheder til at fjerne begivenhed"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Du har ikke rettigheder til at fjerne begivenheder"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Booking Formular"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Emne"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Rediger begivenhedens dato og tidspunkt"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Fra"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Til"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Tidstype"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normal"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Hele Dagen"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Ikke oplyst endnu"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Gentagelser"

#: includes/event_form.php:68
msgid "Never"
msgstr "Aldrig"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Daglig"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Ugentlig"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "M&aring;nedlig"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "&Aring;rlig"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Hver"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Gentag med dages mellemrum?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Indtil"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Gentag med hvor mange ugers mellemrum?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Gentag med hvor mange m&aring;neders mellemrum?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Gentag med hvor mange &aring;rs mellemrum?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Gem Begivenhed"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Ukendt tidstype."

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "En begivenhed kan ikke slutte før den begynder."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Du har ikke skriveadgang til denne kalender."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "P&aring;kr&aring;vet felt \"hver-dag\" er ikke udfyldt."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "hver-dag skal v&aelig;re st&oslash;rre end 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "P&aring;kr&aring;vet felt \"hver-uge\" er ikke udfyldt."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "hver-uge skal v&aelig;re st&oslash;rre end 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "P&aring;kr&aelig;vet felt \"hver-m&aring;ned\" er ikke udfyldt."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "hver-m&aring;ned skal v&aelig;re st&oslash;rre end 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "P&aring;kr&aelig;vet felt \"hver-&aring;r\" er ikke udfyldt."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Ugyldig booking type."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Ændrede begivenhed:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Oprettede begivenhed:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Fejl ved gem handling."

#: includes/form.php:32
msgid "required"
msgstr "påkrævet"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Kan ikke tilf&oslash;je et ikke-formular element til en formular."

#: includes/form.php:428
msgid "Date"
msgstr "Dato"

#: includes/globals.php:23
msgid "January"
msgstr "Januar"

#: includes/globals.php:24
msgid "February"
msgstr "Februar"

#: includes/globals.php:25
msgid "March"
msgstr "Marts"

#: includes/globals.php:26
msgid "April"
msgstr "April"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Maj"

#: includes/globals.php:28
msgid "June"
msgstr "Juni"

#: includes/globals.php:29
msgid "July"
msgstr "Juli"

#: includes/globals.php:30
msgid "August"
msgstr "August"

#: includes/globals.php:31
msgid "September"
msgstr "Septemer"

#: includes/globals.php:32
msgid "October"
msgstr "Oktober"

#: includes/globals.php:33
msgid "November"
msgstr "November"

#: includes/globals.php:34
msgid "December"
msgstr "December"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Tirsdag"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Onsdag"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Thorsdag"

#: includes/globals.php:43
msgid "Friday"
msgstr "Fredag"

#: includes/globals.php:48
msgid "Jan"
msgstr "Jan"

#: includes/globals.php:49
msgid "Feb"
msgstr "Feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mar"

#: includes/globals.php:51
msgid "Apr"
msgstr "Apr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Jun"

#: includes/globals.php:54
msgid "Jul"
msgstr "Jul"

#: includes/globals.php:55
msgid "Aug"
msgstr "Aug"

#: includes/globals.php:56
msgid "Sep"
msgstr "Sep"

#: includes/globals.php:57
msgid "Oct"
msgstr "Okt"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "Dec"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Start Dato"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Stigende"

#: includes/globals.php:75
msgid "Descending"
msgstr "Faldende"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Ingen gruppe valgt."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Du har ikke rettigheder til at slette gruppe:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Fjernede gruppe:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Kunne ikke fjerne gruppe:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Gruppe Formular"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "Gem Gruppe"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Du har ikke rettigheder til at tilføje en global gruppe."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Du har ikke rettigheder til at tilføje en gruppe til denne kalender."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Du har ikke rettigheder til at ændre denne gruppe."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Ændrede gruppe:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Oprettede gruppe:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Fejl, kunne ikke gemme gruppe."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Nødt til at være administrator"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Fejl ved valg af begivenheder under import"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Oprettede %s begivenheder med %s forekomster"

#: includes/login.php:39
msgid "Logged in."
msgstr "Logget ind."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Ugyldigt login"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Du skal have sl&aring;et cookies til for at logge ind."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Kodeord"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Logger ud..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Forekomst Formular"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Gem Forekomst"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Kan ikke oprette forekomst."

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID ikke sat."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Ændrede forekomst:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Oprettede forekomst:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Fejl, kunne ikke gemme forekomst."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Ingen forekomst valgt."

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Fjernede forekomst"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Fjernede forekomster"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Kunne ikke fjerne forekomst"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Kunne ikke fjerne forekomster"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Du har ikke rettigheder til at fjerne forekomsten."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Du har ikke rettigheder til at fjerne forekomster."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Du skal være logget ind."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Du har ikke rettigheder til at ændre dit kodeord."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Du skal angive dit gamle kodeord."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Kodeordet du indtastede svarede ikke til dit gamle kodeord."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Du skal angive et kodeord"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Dine kodeord var ikke ens"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Kodeord opdateret."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Ingen titel)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Fejl ved get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Fejl ved get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Booking eksisterer ikke"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Fejl ved get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Begivenhed eksisterer ikke med oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Fejl ved get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Kategori eksisterer ikke med catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Fejl ved get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Gruppe eksisterer ikke med gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Fejl ved get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Fejl ved get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Fejl ved get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Fejl ved get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Fejl ved get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Fejl ved get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Fejl under sletning af booking."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Fejl under sletning af forekomst."

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Fejl under sletning af kalender"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Fejl under sletning af kategori."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Fejl under sletning af gruppe."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Fejl under sletning "

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Kunne ikke l&aelig;se rettigheder."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Kunne ikke hente kalendre."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Kunne ikke hente bruger."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Fejl under indl&aelig;sning af bruger."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Fejl ved oprettelse af bruger."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Fejl ved l&aelig;sning af indstillinger"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Fejl ved oprettlese af indstillinger"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Fejl ved opdatering af kodeord."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Fejl ved opdatering af tidszone."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Fejl ved opdatering af sprog."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "Fejl, kunne ikke tilføje gruppe til bruger."

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "Fejl, kunne ikke fjerne gruppe fra bruger."

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Fejl ved oprettelse af booking."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Fejl ved oprettelse af forekomst."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Fejl ved ændring af forekomst."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Fejl ved &aelig;ndring af booking."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Fejl ved oprettelse af kategori."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Fejl ved oprettelse af gruppe."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Fejl ved &aelig;ndring af kategori."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Fejl ved ændring af gruppe."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Fejl under s&oslash;gning"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Fejl ved opdatering af brugerrettigheder."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Kunne ikke hente login token."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Kunne ikke tilføje login token."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Fejl ved opdatering af login token."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Kunne ikke fjerne login tokens."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Kunne ikke rense login tokens."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL foresp&oslash;rgsel"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonym"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "ukendt"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Intet emne)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB returnerede en ugyldig dato."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "til"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Ugyldig sorteringsindstilling"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Ugyldig grupperingsindstilling"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Ingen bookinger svarede til dine s&oslash;gekriterier."

#: includes/search.php:87
msgid "Search Results"
msgstr "S&oslash;geresultater"

#: includes/search.php:91
msgid "Date Time"
msgstr "Dato Tid"

#: includes/search.php:107
msgid "Phrase"
msgstr "S&aelig;tning"

#: includes/search.php:115
msgid "Sort By"
msgstr "Sorter efter"

#: includes/search.php:118
msgid "Order"
msgstr "Grupper"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Skift Kodeord"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Gammelt Kodeord"

#: includes/settings.php:64
msgid "New Password"
msgstr "Nyt Kodeord"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Bekræft Nyt Kodeord"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Indstillinger opdateret."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Muligt hacking forsøg på din konto."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Måned uden for gyldigt interval."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Ugyldigt &aring;r"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Oversatte \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Godkend kodeord"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Opret administrator"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Du skal angive et brugernavn"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Bruger eksisterer allerede"

#: includes/user_create.php:113
msgid "Added user."
msgstr "Tilføjede bruger."

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Du skal være administrator for at slette brugere."

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Ingen bruger valgt."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "Rediger Brugergrupper"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "Grupper opdateret."

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Ingen brugere"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Ingen &aelig;ndringer."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Opdaterede bruger(e):"

#: includes/util.php:75
msgid "continue"
msgstr "fortsæt"

#: includes/util.php:157
msgid "Software Error"
msgstr "Software Fejl"

#: includes/util.php:158
msgid "Message:"
msgstr "Besked:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Jack_Miller <fabian.capta@gmail.com>, 2014
# Jack_Miller <fabian.capta@gmail.com>, 2014
# JAIME GÓMEZ OBREGÓN <jaime@iteisa.com>, 2006
# Stefan Schumacher <stefan@duckflight.de>, 2013
# Till <therootuser2@freenet.de>, 2014
# 0cff5cc4def3d75681bb40e8e06675f5_417bc8e <8b1bef1ed20efdf0fabadfaace2f36eb_87774>, 2013
# 0cff5cc4def3d75681bb40e8e06675f5_417bc8e <8b1bef1ed20efdf0fabadfaace2f36eb_87774>, 2013
# 0cff5cc4def3d75681bb40e8e06675f5_417bc8e <8b1bef1ed20efdf0fabadfaace2f36eb_87774>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: German (http://www.transifex.com/sproctor/php-calendar/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Sie müssen als Administrator angemeldet sein. "

#: includes/admin.php:33
msgid "Calendars"
msgstr "Kalender"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Benutzer"

#: includes/admin.php:37
msgid "Import"
msgstr "Import"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Übersetze"

#: includes/admin.php:42
msgid "Version"
msgstr "Version"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Kalender"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Aktion"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Bearbeiten"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Löschen"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Kalender erstellen"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Kalenderliste"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Benutzername"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Gruppen"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Gruppen bearbeiten"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Benutzer erstellen"

#: includes/admin.php:110
msgid "User List"
msgstr "Benutzerliste"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Import-Formular"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL-Hostname"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL-Datenbankname"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL-Portnummer"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Leer lassen für Voreinstellung"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL-Benutzername"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL-Benutzerpasswort"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "Tabellenpräfix für PHP-Calendar"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Kalender importieren"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "Dieses Script benötigt Lese-Rechte auf das Kalenderverzeichnis um die Übersetzungsdateien schreiben zu können. Alternativ könnten Sie translate.php aus der Kommandozeile heraus ausführen, msgfmt nutzen oder irgendein anderes gettext-Tool, welches .mo Datein aus .po Datein erstellen kann."

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "Übersetzungen generieren"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "Kalenderkonfiguration"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "Kategorien"

#: includes/cadmin.php:68
msgid "Options"
msgstr "Einstellungen"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Speichern"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Lesen"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Schreiben"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Schreibgeschützt"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Ändern"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Admin"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Benutzerberechtigungen "

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Benutzername"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Kann schreibgeschützte Termine erstellen "

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Kein Name"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Keine"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Kategorie erstellen"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Kalenderkategorien"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Name"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Textfarbe"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Hintergrundfarbe"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Sichtbar für Benutzergruppe"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Aktionen"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Gruppe erstellen"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Kalendergruppen"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Keine Berechtigung"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr " wurde nicht gesetzt. "

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Einstellungen aktualisiert"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Sprache"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Zeitzone"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Willkommen"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Einstellungen"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Logout"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Login"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Termin hinzufügen"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Suchen"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Monat anzeigen"

#: includes/calendar.php:488
msgid "View date"
msgstr "Datum anzeigen"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Kalender-Admin"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Voreinstellung"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Erster Tag der Woche"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Sonntag"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Montag"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Samstag"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24-Stunden-Anzeige"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Kalendertitel"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Maximale Betrefflänge"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Maximale Anzahl anzuzeigender Termine pro Tag"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Öffentliche Berechtigungen "

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Kann weder Termine lesen noch schreiben "

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Kann Termine lesen, aber nicht schreiben"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Kann Termine erstellen, aber nicht ändern"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Kann Termine erstellen und ändern"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Voreingestellte Zeitzone"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Voreingestellte Sprache"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Datumsformat"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Theme"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Monat Tag Jahr"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Jahr Monat Tag"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Tag Monat Jahr"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Sie haben keine Berechtigung dazu: "

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Fehler"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Rückverfolgung"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Ungültige Aktion"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Unstimmigkeit der geheimen Token. Möglicher Betrugsversuch."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Nicht unterstützter Konfigurationstyp"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "Das benötigte Feld \"%s\" wurde nicht gesetzt."

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "Ungültige \"%s\" Zeit: \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Unbekannter Zeitraum: "

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "Ungültiges \"%s\" Datum: \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "Ungültiges date_format."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Kein Kalender ausgewählt."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Bestätige die Löschung von:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Bestätigen"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Abbrechen"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Ihre Berechtigungen reichen nicht aus um den Kalender zu löschen "

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Kalender gelöscht"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Der Kalender konnte nicht entfernt werden"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Der Kalender wurde erstellt."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Keine Kategorie ausgewählt."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Ihre Berechtigungen reichen nicht aus um die Kategorie zu löschen: "

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Kategorie wurde gelöscht: "

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Die Kategorie konnte nicht gelöscht werden:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Kategorieformular "

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Sichtbar für Gruppen "

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "Kategorie speichern"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Farbe nicht angegeben. "

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Ungültige Farbe."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Ihre Berechtigungen reichen nicht aus um Kategorien zu allen Kalendern hinzufügen. "

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Ihre Berechtigungen reichen nicht aus um Kategorien zu diesem Kalender hinzuzufügen. "

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Ihre Berechtigungen reichen nicht aus um diese Kategorie zu ändern. "

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Kategorie geändert: "

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Kategorie erstellt: "

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Fehler beim Übertragen der Kategorie."

#: includes/display_day.php:45
msgid "Title"
msgstr "Titel"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Zeit"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Beschreibung"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Ausgewählte löschen"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Keine Termine an diesem Tag."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Ungültige Argumente. "

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Ihre Berechtigungen reichen nicht aus um diesen Termin zu lesen."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "von"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Kategorie"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Wann"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Erzeugt am: "

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Zuletzt geändert am: "

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Wiederholung ändern "

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Entferne Wiederholung"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Letzte Wiederholung am"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Nächste Wiederholung am"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Alle Wiederholungen ansehen "

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Wiederholung hinzufügen"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "um"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Löschen"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Wiederholungen"

#: includes/display_event.php:228
msgid "from"
msgstr "von"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "W"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Weitere Termine anzeigen"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "fortgesetzt"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "Ungültiges Datum."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Kein Termin ausgewählt."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Termin gelöscht"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Termine gelöscht"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Der Termin konnte nicht gelöscht werden"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Die Termine konnten nicht gelöscht werden"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Ihre Berechtigungen reichen nicht aus um den Termin zu entfernen"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Ihre Berechtigungen reichen nicht aus um die Termine zu entfernen "

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Terminformular"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Betreff"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Datum und Zeit des Termins ändern"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Von"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Bis"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Art des Termins"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normaler Termin"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Ganztägiger Termin"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Zeitpunkt wird noch bekannt gegeben"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Wiederholungen"

#: includes/event_form.php:68
msgid "Never"
msgstr "Niemals"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Täglich"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Wöchentlich"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Monatlich"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Jährlich"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Rhythmus"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Alle _ Tage wiederholen "

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Bis"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Alle _ Wochen wiederholen"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Alle _ Monate wiederholen"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Alle _ Jahre wiederholen"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Termin speichern"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Unbekannter Zeittyp. "

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "Ein Termin kann nicht vor dem Anfang enden. "

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Ihre Berechtigungen reichen nicht aus um in diesen Kalender zu schreiben."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Pflichtfeld \"Rhythmus\" ist nicht gesetzt."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "Rhythmus muss größer als 1 sein"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Pflichtfeld \"Rhythmus\" ist nicht gesetzt."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "Rhythmus muss größer als 1 sein."

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Pflichtfeld \"Rhythmus\" ist nicht gesetzt."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "Rhythmus muss größer als 1 sein"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Pflichtfeld \"Rhythmus\" ist nicht gesetzt."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Ungültiger Termintyp. "

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Termin geändert: "

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Termin erstellt: "

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Fehler beim Übertragen des Termins."

#: includes/form.php:32
msgid "required"
msgstr "erforderlich"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Es kann kein Nicht-Formular-Element zu einem Formular hinzugefügt werden. "

#: includes/form.php:428
msgid "Date"
msgstr "Datum"

#: includes/globals.php:23
msgid "January"
msgstr "Januar"

#: includes/globals.php:24
msgid "February"
msgstr "Februar"

#: includes/globals.php:25
msgid "March"
msgstr "März"

#: includes/globals.php:26
msgid "April"
msgstr "April"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Mai"

#: includes/globals.php:28
msgid "June"
msgstr "Juni"

#: includes/globals.php:29
msgid "July"
msgstr "Juli"

#: includes/globals.php:30
msgid "August"
msgstr "August"

#: includes/globals.php:31
msgid "September"
msgstr "September"

#: includes/globals.php:32
msgid "October"
msgstr "Oktober"

#: includes/globals.php:33
msgid "November"
msgstr "November"

#: includes/globals.php:34
msgid "December"
msgstr "Dezember"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Dienstag"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Mittwoch"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Donnerstag"

#: includes/globals.php:43
msgid "Friday"
msgstr "Freitag"

#: includes/globals.php:48
msgid "Jan"
msgstr "Jan"

#: includes/globals.php:49
msgid "Feb"
msgstr "Feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mär"

#: includes/globals.php:51
msgid "Apr"
msgstr "Apr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Jun"

#: includes/globals.php:54
msgid "Jul"
msgstr "Jul"

#: includes/globals.php:55
msgid "Aug"
msgstr "Aug"

#: includes/globals.php:56
msgid "Sep"
msgstr "Sep"

#: includes/globals.php:57
msgid "Oct"
msgstr "Okt"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "Dez"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Anfangsdatum"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Aufsteigend"

#: includes/globals.php:75
msgid "Descending"
msgstr "Absteigend"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Keine Gruppe ausgewählt."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Ihre Berechtigungen reichen nicht aus um die Gruppe zu löschen: "

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Gruppe gelöscht: "

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Die Gruppe konnte nicht gelöscht werden:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Gruppenformular"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "Gruppe speichern"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Ihre Berechtigungen reichen nicht aus um eine globale Gruppe hinzuzufügen."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Ihre Berechtigungen reichen nicht aus um eine Gruppe zu diesem Kalender hinzuzufügen."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Ihre Berechtigungen reichen nicht aus um diese Gruppe zu ändern. "

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Gruppe geändert: "

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Gruppe erstellt: "

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Fehler beim Übertragen der Gruppe."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Adminrechte erforderlich"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Fehler beim Auswählen der Termine während des Imports"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "%s Termine mit %s Wiederholungen erzeugt."

#: includes/login.php:39
msgid "Logged in."
msgstr "Eingeloggt."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Sorry, ungültiger Login"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Cookies müssen aktiviert sein um sich einzulogen."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Passwort"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Ausloggen..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Wiederholungsformular"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Wiederholungen senden"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Wiederholungen können nicht erstellt werden."

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID wurde nicht gesetzt."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Wiederholung geändert:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Wiederholung erstellt: "

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Fehler bei der Übertragung der Wiederholungen."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Keine Wiederholung ausgewählt."

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Wiederholung gelöscht"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Wiederholung gelöscht"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Wiederholung konnte nicht gelöscht werden"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Wiederholungen konnten nicht gelöscht werden"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Ihre Berechtigungen reichen nicht aus um die Wiederholung zu entfernen. "

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Ihre Berechtigungen reichen nicht aus um Wiederholungen zu entfernen. "

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Sie müssen eingeloggt sein."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Ihre Berechtigungen reichen nicht aus um Ihr Passwort zu ändern."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Sie müssen Ihr altes Passwort eingeben."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Das eingegebene Passwort stimmt nicht mit dem alten Passwort überein."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Sie müssen ein Passwort eingeben"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Ihre Passwörter stimmen nicht überein"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Das Passwort wurde aktualisiert."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Kein Titel)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Fehler in get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Fehler in get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Der Termin existiert nicht"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Fehler in get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Der Termin existiert nicht mit oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Fehler in get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Die Kategorie existiert nicht mit catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Fehler in get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Die Gruppe existiert nicht mit gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Fehler in get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Fehler in get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Fehler in get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Fehler in get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Fehler in get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Fehler in get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Fehler beim Löschen eines Termins."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Fehler beim Löschen einer Wiederholung."

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Fehler beim Löschen eines Kalenders"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Fehler beim Löschen der Kategorie."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Fehler beim Löschen der Gruppe."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Fehler beim Löschen"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "DIe Berechtigungen konnten nicht gelesen werden."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Die Kalender konnten nicht geladen werden."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Der Benutzer konnte nicht geladen werden."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Fehler beim Laden des Benutzers."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Fehler beim Erstellen des Benutzers."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Fehler beim Lesen der Optionen"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Fehler beim Erstellen der Optionen"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Fehler bei der Aktualisierung des Passworts."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Fehler bei der Aktualisierung der Zeitzone."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Fehler bei der Aktualisierung der Sprache."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "Fehler beim hinzufügen der Gruppe des Benutzers."

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "Fehler beim entfernen des Users aus der Gruppe."

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Fehler beim Erstellen des Termins."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Fehler beim Erstellen der Wiederholung."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Fehler beim Ändern der Wiederholung."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Fehler beim Ändern des Termins."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Fehler beim Erstellen der Kategorie."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Fehler beim Erstellen der Gruppe."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Fehler beim Ändern der Kategorie."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Fehler beim Ändern der Gruppe."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Fehler während der Suche"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Fehler beim Aktualisieren der Benutzerrechte. "

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Fehler beim Login-Token."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Fehler beim Hinzufügen des Logintokens."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Fehler beim Aktualisieren der Logintoken."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Fehler beim Löschen der Logintoken."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Fehler bei der Reinigung der Logintoken."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL-Abfrage"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonym"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "unbekannt"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(kein Betreff)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB gab ein ungültiges Datum zurück."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "bis"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Ungültige Sortierungsoption"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Ungültige Reihenfolge "

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Keine Termine zu Ihrer Suche gefunden."

#: includes/search.php:87
msgid "Search Results"
msgstr "Suchergebnisse"

#: includes/search.php:91
msgid "Date Time"
msgstr "Datum Zeit"

#: includes/search.php:107
msgid "Phrase"
msgstr "Suchbegriff"

#: includes/search.php:115
msgid "Sort By"
msgstr "Sortieren nach"

#: includes/search.php:118
msgid "Order"
msgstr "Reihenfolge"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Passwort ändern"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Altes Passwort"

#: includes/settings.php:64
msgid "New Password"
msgstr "Neues Passwort"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Neues Passwort bestätigen"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Einstellungen wurden aktualisiert."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Möglicher Hackerangriff auf Ihr Konto."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Der Monat ist außerhalb des Bereichs."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Ungültiges Jahr "

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "\"%s\" übersetzt"

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Passwort speichern"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Zum Admin machen"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Sie müssen einen Benutzernamen angeben"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Der Benutzer existiert bereits."

#: includes/user_create.php:113
msgid "Added user."
msgstr "Nutzer hinzugefügt."

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Sie müssen Admin sein, um Benutzer zu löschen. "

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Kein Benutzer ausgewählt."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "Benutzergruppen bearbeiten"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "Gruppen wurden aktualisiert."

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Keine Benutzer"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Es sind keine Änderungen vorzunehmen."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Aktualisierte(r) Benutzer:"

#: includes/util.php:75
msgid "continue"
msgstr "weiter"

#: includes/util.php:157
msgid "Software Error"
msgstr "Softwarefehler"

#: includes/util.php:158
msgid "Message:"
msgstr "Nachricht:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# txapollo243, 2013
# txapollo243, 2016
# txapollo243, 2013
# 0cff5cc4def3d75681bb40e8e06675f5_417bc8e <8b1bef1ed20efdf0fabadfaace2f36eb_87774>, 2013
# 0cff5cc4def3d75681bb40e8e06675f5_417bc8e <8b1bef1ed20efdf0fabadfaace2f36eb_87774>, 2013
# Wasilis <m.wasilis@yahoo.de>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Greek (http://www.transifex.com/sproctor/php-calendar/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Πρέπει να είστε συνδεδεμένος ως διαχειριστής."

#: includes/admin.php:33
msgid "Calendars"
msgstr "Ημερολόγια"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Χρήστες"

#: includes/admin.php:37
msgid "Import"
msgstr "Εισαγωγή"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Μετάφραση"

#: includes/admin.php:42
msgid "Version"
msgstr "Έκδοση"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Ημερολόγιο"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Δράση"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Επεξεργασία"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Διαγραφή"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Δημιουργία Ημερολογίου"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Λίστα Ημερολογίων"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Όνομα χρήστη"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Ομάδες"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Επεξεργασία Ομάδων"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Δημιουργία Χρήστη"

#: includes/admin.php:110
msgid "User List"
msgstr "Λίστα Χρηστών"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Εισαγωγή Φόρμας"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "Όνομα Διακομιστή MySQL"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "Όνομα Βάσης Δεδομένων MySQL"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "Αριθμός Θύρας MySQL"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Αφήστε το κενό για την προεπιλογή"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "Όνομα Χρήστη MySQL"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "Κωδικός Πρόσβασης Χρήστη MySQL"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "Πρόθεμα Πίνακα PHP-Calendar"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Εισαγωγή Ημερολογίου"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "Το αυτό σενάριο ενεργειών χρειάζεται πρόσβαση για ανάγνωση στον φάκελο του ημερολογίου σας, ώστε να εγγράψει τα αρχεία μετάφραση. Εναλλακτικά, μπορείτε να τρέξετε το αρχείο translate.php από την γραμμή εντολών ή να χρησιμοποιήσετε το msgfmt, ή οποιοδήποτε άλλο εργαλείο gettext, το οποίο δύναται να δημιουργήσει αρχεία μορφής .mo από αρχεία μορφής .po."

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "Δημιουργία Μεταφράσεων"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "Ρύθμιση Ημερολογίου"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "Κατηγορίες"

#: includes/cadmin.php:68
msgid "Options"
msgstr "Επιλογές"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Αποστολή"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Ανάγνωση"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Εγγραφή"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Μόνο ανάγνωση"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Αλλαγή"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Διαχειριστής"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Δικαιώματα Χρήστη"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Όνομα Χρήστη"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Μπορεί να Δημιουργήσει Μόνο-Ανάγνωση"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Χωρίς Όνομα"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Κανένα"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Δημιουργία κατηγορίας"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Κατηγορίες Ημερολογίου"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Όνομα"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Χρώμα Κειμένου"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Χρώμα Φόντου"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Εμφανές σε Ομάδα Χρηστών"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Δράσεις"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Δημιουργία ομάδας"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Ομάδες Ημερολογίου"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Άρνηση δικαιώματος"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "δεν τέθηκε."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Ενημερωμένες επιλογές"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Γλώσσα"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Ζώνη ώρας"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Καλώς ήρθατε"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Ρυθμίσεις"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Αποσύνδεση"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Σύνδεση"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Προσθήκη Συμβάντος"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Αναζήτηση"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Εμφάνιση Μήνα"

#: includes/calendar.php:488
msgid "View date"
msgstr "Εμφάνιση ημερομηνίας"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Διαχειριστής Ημερολογίου"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Προεπιλεγμένο"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Αρχή Εβδομάδας"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Κυριακή"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Δευτέρα"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Σάββατο"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24ωρος Χρόνος"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Τίτλος Ημερολογίου"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Μέγιστο Μήκος Θέματος"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Μεγιστη ημερησια μεφανιση εκδηλωσεων "

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Δημόσια Δικαιώματα"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Δεν είναι δυνατό να διαβαστούν ούτε να εγγραφούν συμβάντα"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Είναι δυνατόν να διαβαστούν αλλά όχι να εγγραφούν συμβάντα"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Είναι δυνατόν να δημιουργηθούν αλλά όχι να τροποποιηθούν συμβάντα"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Είναι δυνατόν να δημιουργηθούν και να τροποποιηθούν συμβάντα"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Προεπιλεγμένη Ζώνη Ώρας"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Προεπιλεγμένη Γλώσσα"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Μορφή Ημερομηνίας"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Θέμα"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Μήνας Ημέρα Έτος"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Έτος Μήνας Ημέρα"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Ημέρα Μήνας Έτος"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Δεν έχετε δικαίωμα να το κάνετε αυτό:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Σφάλμα"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Ανέτρεξε"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Μη έγκυρη ενέργεια"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Αναντιστοιχία μυστικού token. Πιθανή προσπάθεια πλαστογράφησης αίτησης."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Μη υποστηριζόμενος τύπος ρυθμίσεων"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "Το απαιτούμενο πεδίο \"%s\" δεν τέθηκε."

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "Εσφαλμένη μορφή χρόνου \"%s\": \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Μη αναγνωρίσιμη περίοδος:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "Εσφαλμένη μορφή ημερομηνίας \"%s\": \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "Μη έγκυρο date_format."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Δεν έχει επιλεγεί ημερολόγιο."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Επιβεβαιώστε ότι θέλετε την διαγραφή:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Επιβεβαίωση"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Απόρριψη"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Δεν έχετε δικαίωμα να αφαιρέσετε το ημερολόγιο"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Αφαιρεμένο ημερολόγιο"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Δεν ήταν δυνατή η αφαίρεση του ημερολογίου"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Δημιουργήθηκε το ημερολόγιο."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Δεν έχει επιλεγεί κατηγορία."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Δεν έχετε δικαίωμα να διαγράψετε την κατηγορία:"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Αφαιρεμένη κατηγορία:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Δεν ήταν δυνατή η αφαίρεση της κατηγορίας:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Φόρμα Κατηγορίας"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Εμφανές σε ομάδες"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "Αποστολή Κατηγορίας"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Δεν έχει καθοριστεί χρώμα."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Μη έγκυρο χρώμα."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Δεν έχετε δικαίωμα να προσθέσετε κατηγορίες σε όλα τα ημερολόγια."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Δεν έχετε δικαίωμα να προσθέσετε κατηγορίες στο συγκεκριμένο ημερολόγιο."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Δεν έχετε δικαίωμα να τροποποιήσετε την συγκεκριμένη κατηγορία."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Τροποποιημένη κατηγορία:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Δημιουργημένη κατηγορία:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Σφάλμα κατά την αποστολή της κατηγορίας."

#: includes/display_day.php:45
msgid "Title"
msgstr "Τίτλος"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Χρόνος"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Περιγραφή"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Διαγραφή Επιλεγμένων"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Δεν υπάρχουν συμβάντα αυτήν την ημέρα."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Μη έγκυρα ορίσματα."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Δεν έχετε δικαίωμα να διαβάσετε αυτό το συμβάν."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "από"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Κατηγορία"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Πότε"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Δημιουργία στις:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Τελευταία τροποποίηση στις:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Τροποποίηση Περίστασης"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Αφαίρεση Περίστασης"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Προηγούμενη περίσταση σε"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Επόμενη περίσταση σε"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Εμφάνιση Όλων των Περιστάσεων"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Προσθήκη Περίστασης"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "σε"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Αφαίρεση"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Περιστάσεις"

#: includes/display_event.php:228
msgid "from"
msgstr "από"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "W"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Εμφάνιση Επιπρόσθετων Συμβάντων"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "συνεχίζεται"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "Μη έγκυρη ημερομηνία."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Δεν έχει επιλεγεί συμβάν."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Αφαιρεμένο συμβάν"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Αφαιρεμένα συμβάντα"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Δεν ήταν δυνατή η αφαίρεση του συμβάντος"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Δεν ήταν δυνατή η αφαίρεση των συμβάντων"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Δεν έχετε δικαίωμα να αφαιρέσετε το συμβάν"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Δεν έχετε δικαίωμα να αφαιρέσετε τα συμβάντα"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Φόρμα Συμβάντος"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Θέμα"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Αλλαγή της ημερομηνίας και ώρας γεγονότος"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Από"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Προς"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Τύπος Χρονολόγησης"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Κανονική"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Πλήρης Ημέρα"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Θα Ανακοινωθεί"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Επαναλήψεις"

#: includes/event_form.php:68
msgid "Never"
msgstr "Ποτέ"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Καθημερινά"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Εβδομαδιαία"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Μηνιαία"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Ετήσια"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Κάθε"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Επανάληψη κάθε πόσες ημέρες;"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Μέχρι"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Επανάληψη κάθε πόσες εβδομάδες;"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Επανάληψη κάθε πόσους μήνες;"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Επανάληψη κάθε πόσα έτη;"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Αποστολή Συμβάντος"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Μη αναγνωρίσιμος Τύπος Χρονολόγησης"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "Ένα συμβάν δεν μπορεί τελειώνει νωρίτερα από όταν αρχίζει."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Δεν έχετε δικαίωμα να εγγράψετε στο συγκεκριμένο ημερολόγιο."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Το απαιτούμενο πεδίο «κάθε μέρα» δεν έχει τεθεί."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "το πεδίο «κάθε μέρα» πρέπει να έχει τιμή μεγαλύτερη από 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Το απαιτούμενο πεδίο «κάθε εβδομάδα» δεν έχει τεθεί."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "το πεδίο «κάθε εβδομάδα» πρέπει να έχει τιμή μεγαλύτερη από 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Το απαιτούμενο πεδίο «κάθε μήνα» δεν έχει τεθεί."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "το πεδίο «κάθε μήνα» πρέπει να έχει τιμή μεγαλύτερη από 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Το απαιτούμενο πεδίο «κάθε έτος» δεν έχει τεθεί."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Μη έγκυρος τύπος συμβάντος."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Τροποποιημένο συμβάν:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Δημιουργημένο συμβάν:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Σφάλμα κατά την αποστολή του συμβάντος."

#: includes/form.php:32
msgid "required"
msgstr "απαιτούμενο"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Δεν είναι δυνατή η προσθήση ενός στοιχείου που δεν είναι χαρακτηριστικό μιας φόρμας, σε μία φόρμα."

#: includes/form.php:428
msgid "Date"
msgstr "Ημερομηνία"

#: includes/globals.php:23
msgid "January"
msgstr "Ιανουάριος"

#: includes/globals.php:24
msgid "February"
msgstr "Φεβρουάριος"

#: includes/globals.php:25
msgid "March"
msgstr "Μάρτιος"

#: includes/globals.php:26
msgid "April"
msgstr "Απρίλιος"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Μάιος"

#: includes/globals.php:28
msgid "June"
msgstr "Ιούνιος"

#: includes/globals.php:29
msgid "July"
msgstr "Ιούλιος"

#: includes/globals.php:30
msgid "August"
msgstr "Αύγουστος"

#: includes/globals.php:31
msgid "September"
msgstr "Σεπτέμβριος"

#: includes/globals.php:32
msgid "October"
msgstr "Οκτώβριος"

#: includes/globals.php:33
msgid "November"
msgstr "Νοέμβριος"

#: includes/globals.php:34
msgid "December"
msgstr "Δεκέμβριος"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Τρίτη"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Τετάρτη"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Πέμπτη"

#: includes/globals.php:43
msgid "Friday"
msgstr "Παρασκευή"

#: includes/globals.php:48
msgid "Jan"
msgstr "Ιαν"

#: includes/globals.php:49
msgid "Feb"
msgstr "Φεβ"

#: includes/globals.php:50
msgid "Mar"
msgstr "Μαρ"

#: includes/globals.php:51
msgid "Apr"
msgstr "Απρ"

#: includes/globals.php:53
msgid "Jun"
msgstr "Ιουν"

#: includes/globals.php:54
msgid "Jul"
msgstr "Ιουλ"

#: includes/globals.php:55
msgid "Aug"
msgstr "Αυγ"

#: includes/globals.php:56
msgid "Sep"
msgstr "Σεπ"

#: includes/globals.php:57
msgid "Oct"
msgstr "Οκτ"

#: includes/globals.php:58
msgid "Nov"
msgstr "Νοε"

#: includes/globals.php:59
msgid "Dec"
msgstr "Δεκ"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Ημερομηνία Έναρξης"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Αύξουσα"

#: includes/globals.php:75
msgid "Descending"
msgstr "Φθίνουσα"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Δεν έχει επιλεγεί ομάδα."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Δεν έχετε δικαίωμα να διαγράψετε την ομάδα:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Αφαιρεμένη ομάδα:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Δεν ήταν δυνατή η αφαίρεση της ομάδας:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Φόρμα Ομάδας"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "Αποστολή Ομάδας"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Δεν έχετε δικαίωμα να προσθέσετε μια καθολική ομάδα."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Δεν έχετε δικαίωμα να προσθέσετε μια ομάδα σε αυτό το ημερολόγιο."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Δεν έχετε δικαίωμα να τροποποιήσετε αυτήν την ομάδα."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Τροποποιημένη ομάδα:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Δημιουργημένη ομάδα:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Σφάλμα κατά την αποστολή της ομάδας."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Χρειάζεται να είσαστε διαχειριστής"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Σφάλμα κατά την επιλογή γεγονότων προς εισαγωγή"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Δημιουργήθηκαν %s γεγονότα με %s περιστάσεις"

#: includes/login.php:39
msgid "Logged in."
msgstr "Συνδεδεμένος/η"

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Συγγνώμη, Μη Έγκυρη Σύνδεση"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Πρέπει να έχετε ενεργοποιημένα τα cookies για να συνδεθείτε."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Κωδικός"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Αποσύνδεση..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Φόρμα Περιστάσεων"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Αποστολή Περίστασης"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Δεν είναι δυνατή η δημιουργία εμφάνισης."

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "Το EID δεν τέθηκε."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Τροποποίηση Περίστασης:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Δημιουργία εμφάνισης:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Σφάλμα κατά την υποβολή εμφάνισης."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Δεν εχει επιλεγεί μια εμφάνιση. "

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Αφαίρεση Περίστασης"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Αφαίρεση Περίστασεων"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Δεν ήταν δυνατή η αφαίρεση εμφάνισης"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Δεν μπορεσαν να καταργήθουν οι εμφανίσεις "

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Δεν έχετε άδεια για να καταργήσετε την εμφάνιση. "

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Δεν έχετε άδεια για να καταργήσετε τις εμφανίσεις. "

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Πρέπει να είστε συνδεδεμένος."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Δεν έχετε άδεια για να αλλάξετε τον κωδικό σας. "

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Μπορείτε να καθορίσετε τον παλιό κωδικό πρόσβασής σας. "

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Ο κωδικός πρόσβασης που εισάγατε δεν αντιστοιχει με τον παλιό κωδικό πρόσβασής σας. "

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Πρέπει να ορίσετε έναν κωδικό πρόσβασης"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Οι κωδικοί πρόσβασής σας δεν ταιριάζουν"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Ο κωδικος ανανεωθηκε."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Κανενας τιτλος)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Σφάλμα στο get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Σφαλμα στο get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Η εκδηλωση δεν υπαρχει"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Σφαλμα στο get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Το συμβάν δεν υπάρχει με oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Σφαλμα στο get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Η κατηγορία δεν υπάρχει με catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Σφαλμα στο get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Η ομαδα δεν υπάρχει με GID"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Σφαλμα στο get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Σφαλμα στο get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Σφλμα στο get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Σφαλμα στο get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Σφαλμα στο get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Σφαλμα στο get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Σφάλμα κατά την αφαίρεση μιας εκδήλωσης."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Σφάλμα κατά την αφαίρεση ένος περιστατικόυ. "

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Σφάλμα κατά την αφαίρεση ενός ημερολογίου "

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Σφάλμα κατά την αφαίρεση της κατηγορίας. "

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Σφάλμα κατά την αφαίρεση της ομάδας."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Σφάλμα κατά την αφαίρεση "

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Δεν ήταν δυνατή η ανάγνωση δικαιώματων."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Τα ημερολογια δεν μπορεσαν να παρθουν."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Ο χρηστης δεν μπορεσε να παρθει."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Σφαλμα κατα την ενσωματωση του χρηστη."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Σφαλμα κατα την δημιουργια προφιλ του χρηστη."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Επιλογές Σφάλμα ανάγνωσης"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Σφάλμα κατά τη δημιουργία επιλογων"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Σφαλμα κατα την ανανεωση κωδικου."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Σφαλμα κατα την ανανεωση της χρονικης ζωνης."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Σφαλμα κατα την ανανεωση γλωσσας."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "Σφάλμα κατά την προσθήκη ομάδας στον χρήστη"

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "Σφάλμα κατά την αφαίρεση ομάδας από χρήστη"

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Σφαλμα κατα την δημιουργια εκδηλωσης."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Σφάλμα κατά τη δημιουργία εμφάνισης."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Σφάλμα κατά την τροποποίηση εμφάνισης."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Σφάλμα κατά την τροποποίηση εκδήλωσης."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Σφάλμα κατά τη δημιουργία της κατηγορίας."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Σφάλμα κατά τη δημιουργία της ομάδας."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Σφάλμα κατά την τροποποίηση κατηγορίας. "

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Σφάλμα κατά την τροποποίηση ομάδας."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Σφάλμα κατά την αναζήτηση"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Σφάλμα κατά την ενημέρωση δικαιώματων του χρήστη. "

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Σφάλμα κατά τη λήψη συνδεσης."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Σφαλμα κατα την προσθηκη συνδεσης."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Σφαλμα κατα την ανανεωση συνδεσης."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Σφαλμα κατα την ανανεωση συνδεσης."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Σφαλμα κατα την εκκαθαριση συνδεσης."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL ερώτημα "

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "ανωνυμη"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "αγνωστο"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Κανενα θεμα)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB επέστρεψε μια μη έγκυρη ημερομηνία."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "σε"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Μη έγκυρη επιλογή ταξινόμησης"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Μη έγκυρη επιλογή παραγγελίας"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Δεν υπάρχουν συμβάντα συμφωνημένα κριτήρια της αναζήτησής σας."

#: includes/search.php:87
msgid "Search Results"
msgstr "Αποτελεσματα αναζητησης"

#: includes/search.php:91
msgid "Date Time"
msgstr "Ημερομηνια Ωρα"

#: includes/search.php:107
msgid "Phrase"
msgstr "Φραση"

#: includes/search.php:115
msgid "Sort By"
msgstr "Ταξινομηση απο"

#: includes/search.php:118
msgid "Order"
msgstr "Παραγγελια"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Αλλαγη Κωδικου"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Παλιος Κωδικος"

#: includes/settings.php:64
msgid "New Password"
msgstr "Νεος κωδικος"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Επιβεβαιωση νεου κωδικου"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Οι ρυθμισεις ανανεωθηκαν."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Πιθανές προσπάθειες hacking στο λογαριασμό σας. "

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Ο μήνας είναι εκτός εμβέλειας."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Μη έγκυρο έτος "

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Μεταφράστηκε το \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Επιβεβαίωση Κωδικού"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Κάνε Διαχειριστή"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Πρέπει να ορίσετε ένα όνομα χρήστη"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Ο χρηστης υπαρχει ηδη."

#: includes/user_create.php:113
msgid "Added user."
msgstr "Χρήστης προστέθηκε."

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Πρέπει να είστε διαχειριστής για να διαγράψετε τους χρήστες. "

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Δεν έχει επιλέγει χρήστης."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "Επεξεργασία Ομάδων Χρηστών"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "Οι ομάδες ενημερώθηκαν."

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Κανενας χρηστης"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Δεν υπάρχουν αλλαγές να γινουν."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Αναωμενος χρηστης(ες):"

#: includes/util.php:75
msgid "continue"
msgstr "συνεχεια"

#: includes/util.php:157
msgid "Software Error"
msgstr "Σφαλμα λογισμικου"

#: includes/util.php:158
msgid "Message:"
msgstr "Μυνημα:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2017-09-19 16:18+0000\n"
"Last-Translator: Sean Proctor <sproctor@gmail.com>\n"
"Language-Team: English (http://www.transifex.com/sproctor/php-calendar/language/en/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "You must be logged in as an admin."

#: includes/admin.php:33
msgid "Calendars"
msgstr "Calendars"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Users"

#: includes/admin.php:37
msgid "Import"
msgstr "Import"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Translate"

#: includes/admin.php:42
msgid "Version"
msgstr "Version"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Calendar"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Action"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Edit"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Delete"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Create Calendar"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Calendar List"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Username"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Groups"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Edit Groups"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Create User"

#: includes/admin.php:110
msgid "User List"
msgstr "User List"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Import Form"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL Host Name"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL Database Name"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL Port Number"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Leave blank for default"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL User Name"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL User Password"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar Table Prefix"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Import Calendar"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "This script needs read access to your calendar directory in order to write the translation files. Alternatively, you could run translate.php from the command line or use msgfmt or any other gettext tool that can generate .mo files from .po files."

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "Generate Translations"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "Calendar Configuration"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "Categories"

#: includes/cadmin.php:68
msgid "Options"
msgstr "Options"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Submit"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Read"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Write"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Read-only"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Modify"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Admin"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "User Permissions"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "User Name"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Can Create Read-Only"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "No Name"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "None"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Create category"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Calendar Categories"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Name"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Text Color"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Background Color"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Visible to User Group"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Actions"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Create group"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Calendar Groups"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Permission denied"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr " was not set."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Updated options"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Language"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Timezone"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Welcome"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Settings"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Log out"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Log in"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Add Event"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Search"

#: includes/calendar.php:483
msgid "View Month"
msgstr "View Month"

#: includes/calendar.php:488
msgid "View date"
msgstr "View date"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Calendar Admin"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Default"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Week Start"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Sunday"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Monday"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Saturday"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24 Hour Time"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Calendar Title"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Maximum Subject Length"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Events Display Daily Maximum"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Public Permissions"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Cannot read nor write events"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Can read but not write events"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Can create but not modify events"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Can create and modify events"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Default Timezone"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Default Language"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Date Format"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Theme"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Month Day Year"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Year Month Day"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Day Month Year"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "You do not have permission to do that: "

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Error"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Backtrace"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Invalid action"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Secret token mismatch. Possible request forgery attempt."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Unsupported config type"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "Required field \"%s\" was not set."

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "Malformed \"%s\" time: \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Unrecognized period: "

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "Malformed \"%s\" date: \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "Invalid date_format."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "No calendar selected."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Confirm you want to delete:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Confirm"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Deny"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "You do not have permission to remove calendar"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Removed calendar"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Could not remove calendar"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Calendar created."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "No category selected."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "You do not have permission to delete category: "

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Removed category: "

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Could not remove category: "

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Category Form"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Visible to groups"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "Submit Category"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Color not specified."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Invalid color."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "You do not have permission to add categories to all calendars."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "You do not have permission to add categories to this calendar."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "You do not have permission to modify this category."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Modified category: "

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Created category: "

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Error submitting category."

#: includes/display_day.php:45
msgid "Title"
msgstr "Title"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Time"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Description"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Delete Selected"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "No events on this day."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Invalid arguments."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "You do not have permission to read this event."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "by"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Category"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "When"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Created at: "

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Last modified at: "

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Modify Occurrence"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Remove Occurrence"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Previous occurrence on"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Next occurrence on"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "View All Occurrences"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Add Occurrence"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "at"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Remove"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Occurrences"

#: includes/display_event.php:228
msgid "from"
msgstr "from"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "W"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "View Additional Events"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "continued"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "Invalid date."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "No event selected."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Removed event"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Removed events"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Could not remove event"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Could not remove events"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "You do not have permission to remove event"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "You do not have permission to remove events"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Event Form"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Subject"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Change the event date and time"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "From"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "To"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Time Type"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normal"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Full Day"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "To Be Announced"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Repeats"

#: includes/event_form.php:68
msgid "Never"
msgstr "Never"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Daily"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Weekly"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Monthly"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Yearly"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Every"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Repeat every how many days?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Until"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Repeat every how many weeks?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Repeat every how many months?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Repeat every how many years?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Submit Event"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Unrecognized Time Type."

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "An event cannot have an end earlier than its start."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "You do not have permission to write to this calendar."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Required field \"every-day\" is not set."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "every-day must be greater than 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Required field \"every-week\" is not set."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "every-week must be greater than 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Required field \"every-month\" is not set."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "every-month must be greater than 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Required field \"every-year\" is not set."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Invalid event type."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Modified event: "

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Created event: "

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Error submitting event."

#: includes/form.php:32
msgid "required"
msgstr "required"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Cannot add a non-form element to a form."

#: includes/form.php:428
msgid "Date"
msgstr "Date"

#: includes/globals.php:23
msgid "January"
msgstr "January"

#: includes/globals.php:24
msgid "February"
msgstr "February"

#: includes/globals.php:25
msgid "March"
msgstr "March"

#: includes/globals.php:26
msgid "April"
msgstr "April"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "May"

#: includes/globals.php:28
msgid "June"
msgstr "June"

#: includes/globals.php:29
msgid "July"
msgstr "July"

#: includes/globals.php:30
msgid "August"
msgstr "August"

#: includes/globals.php:31
msgid "September"
msgstr "September"

#: includes/globals.php:32
msgid "October"
msgstr "October"

#: includes/globals.php:33
msgid "November"
msgstr "November"

#: includes/globals.php:34
msgid "December"
msgstr "December"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Tuesday"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Wednesday"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Thursday"

#: includes/globals.php:43
msgid "Friday"
msgstr "Friday"

#: includes/globals.php:48
msgid "Jan"
msgstr "Jan"

#: includes/globals.php:49
msgid "Feb"
msgstr "Feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mar"

#: includes/globals.php:51
msgid "Apr"
msgstr "Apr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Jun"

#: includes/globals.php:54
msgid "Jul"
msgstr "Jul"

#: includes/globals.php:55
msgid "Aug"
msgstr "Aug"

#: includes/globals.php:56
msgid "Sep"
msgstr "Sep"

#: includes/globals.php:57
msgid "Oct"
msgstr "Oct"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "Dec"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Start Date"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Ascending"

#: includes/globals.php:75
msgid "Descending"
msgstr "Descending"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "No group selected."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "You do not have permission to delete group: "

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Removed group: "

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Could not remove group: "

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Group Form"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "Submit Group"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "You do not have permission to add a global group."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "You do not have permission to add a group to this calendar."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "You do not have permission to modify this group."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Modified group: "

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Created group: "

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Error submitting group."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Need to be admin"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Error selecting events in import"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Created %s events with %s occurences"

#: includes/login.php:39
msgid "Logged in."
msgstr "Logged in."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Sorry, Invalid Login"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "You must have cookies enabled to login."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Password"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Loggin out..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Occurrence Form"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Submit Occurrence"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Cannot create occurrence."

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID not set."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Modified occurence: "

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Created occurence: "

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Error submitting occurrence."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "No occurrence selected."

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Removed occurrence"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Removed occurrences"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Could not remove occurrence"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Could not remove occurrences"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "You do not have permission to remove the occurrence."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "You do not have permission to remove occurrences."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "You must be logged in."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "You do not have permission to change your password."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "You must specify your old password."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "The password you entered did not match your old password."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "You must specify a password"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Your passwords did not match"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Password updated."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(No title)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Error in get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Error in get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Event doesn't exist"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Error in get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Event doesn't exist with oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Error in get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Category doesn't exist with catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Error in get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Group doesn't exist with gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Error in get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Error in get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Error in get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Error in get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Error in get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Error in get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Error while removing an event."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Error while removing an occurrence."

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Error while removing a calendar"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Error while removing category."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Error while removing group."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Error while removing "

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Could not read permissions."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Could not get calendars."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Could not get user."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Error getting user."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Error creating user."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Error reading options"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Error creating options"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Error updating password."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Error updating timezone."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Error updating language."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "Error adding group to user."

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "Error removing group from user."

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Error creating event."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Error creating occurrence."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Error modifying occurrence."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Error modifying event."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Error creating category."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Error creating group."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Error modifying category."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Error modifying group."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Error during searching"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Error updating user permissions."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Error getting login token."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Error adding login token."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Error updating login token."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Error removing login tokens."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Error cleaning login tokens."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL query"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonymous"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "unknown"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(No subject)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB returned an invalid date."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "to"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Invalid sort option"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Invalid order option"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "No events matched your search criteria."

#: includes/search.php:87
msgid "Search Results"
msgstr "Search Results"

#: includes/search.php:91
msgid "Date Time"
msgstr "Date Time"

#: includes/search.php:107
msgid "Phrase"
msgstr "Phrase"

#: includes/search.php:115
msgid "Sort By"
msgstr "Sort By"

#: includes/search.php:118
msgid "Order"
msgstr "Order"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Change Password"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Old Password"

#: includes/settings.php:64
msgid "New Password"
msgstr "New Password"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Confirm New Password"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Settings updated."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Possible hacking attempt on your account."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Month is out of range."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Invalid year"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Translated \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Confirm Password"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Make Admin"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "You must specify a user name"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "User already exists."

#: includes/user_create.php:113
msgid "Added user."
msgstr "Added user."

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "You must be an admin to delete users."

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "No user selected."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "Edit User Groups"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "Groups updated."

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "No users"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "No changes to make."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Updated user(s):"

#: includes/util.php:75
msgid "continue"
msgstr "continue"

#: includes/util.php:157
msgid "Software Error"
msgstr "Software Error"

#: includes/util.php:158
msgid "Message:"
msgstr "Message:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# JAIME GÓMEZ OBREGÓN <jaime@iteisa.com>, 2006
# Jean Paul Cahuana Pinto <cpjeanpaul@gmail.com>, 2019
# Juan Perea <jdperea59@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Spanish (http://www.transifex.com/sproctor/php-calendar/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Debes iniciar sesión como administrador"

#: includes/admin.php:33
msgid "Calendars"
msgstr "Calendarios"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Usuaris"

#: includes/admin.php:37
msgid "Import"
msgstr "Importar"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Traducir"

#: includes/admin.php:42
msgid "Version"
msgstr "Versión"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Calendario"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Acción"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Editar"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Borrar"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Crear un Calendario"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Lista de Calendarios"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Nombre de usuario"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Grupos"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Editar Grupos"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Crear Usuario"

#: includes/admin.php:110
msgid "User List"
msgstr "Lista de Usuarios"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Importar Desde"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Dejar en blanco por defecto"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Importar Calendario"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "Opciones"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Enviar"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Leer"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Redactar"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Sólo lectura"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Modificar"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Administración"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Permisos de usuario"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Nombre de usuario"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Se puede crear Sólo Lectura"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Sin Nombre"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Ninguno"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Crear categoría"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Categorías de Calendario"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Nombre"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Color de Texto"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Color de Fondo"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Visible al grupo de usuarios"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Acciones"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Crear Grupo"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Grupo de Calendarios"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Acceso denegado"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "no se estableció."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Opciones actualizadas"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Idioma"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Zona Horaria"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "bienvenido"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Ajustes"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Desconectar"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Login"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Añadir Evento"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Buscar"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Ver Mes"

#: includes/calendar.php:488
msgid "View date"
msgstr "Ver fecha"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Administrar Calendario"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Predeterminado"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Inicio de Semana"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Domingo"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Lunes"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Sábado"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr ""

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Título del calendario"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Longitud máxima del asunto"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Número máximo de eventos a mostrar por día"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Permisos Publicos"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "No se pueden leer ni escribir eventos"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Se pueden leer pero no registrar eventos"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Puede crear pero no modificar eventos"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Puede crear y modificar eventos"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Zona horaria por defecto"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Idioma por defecto"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Formato de Fecha"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Tema"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Mes Día Año"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Año Mes Día"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Día Mes Año"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Usted No tiene permiso para hacer eso:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Error"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Acción incorrecta"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Discrepancia en el símbolo secreto. Posiblemente sea una petición falsa."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Tipo de configuración no admitida"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "No hay un calendario seleccionado."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Confirme que desea eliminar:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Confirmar"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Denegar"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Usted no tiene permiso para eliminar el calendario"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Calendario Eliminado"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "No se pudo eliminar el Calendario"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr ""

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "No se ha seleccionado una categoría."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Usted no posee los permisos para eliminar una categoría"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Categoría Removida"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "No se pudo eliminar la categoría:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Formulario de Categoría"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Visible a grupos"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "No se especificó un color."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Color invalido."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Usted no tiene permiso para agregar categorías para todos los calendarios."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Usted no tiene permiso para agregar categorías a este calendario."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Usted no tiene permisos para modificar esta categoría."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr ""

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr "Título"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Hora"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Descripción"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Borrar seleccionado"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "No hay eventos este día"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "por"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Categoría"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Cuando"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Creado:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Última moficación"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr ""

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "en"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Eliminar"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr "desde"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Ver eventos adicionales"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "Fecha inválida."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr ""

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr ""

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Asunto"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "De"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Para"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr ""

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normal"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Todo el Día"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr ""

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr ""

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Semanalmente"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Mensualmente"

#: includes/event_form.php:76
msgid "Yearly"
msgstr ""

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr ""

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr ""

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr ""

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr ""

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Añadir evento"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr ""

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr ""

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr ""

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr "Enero"

#: includes/globals.php:24
msgid "February"
msgstr "Febrero"

#: includes/globals.php:25
msgid "March"
msgstr "Marzo"

#: includes/globals.php:26
msgid "April"
msgstr "Abril"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Mayo"

#: includes/globals.php:28
msgid "June"
msgstr "Junio"

#: includes/globals.php:29
msgid "July"
msgstr "Julio"

#: includes/globals.php:30
msgid "August"
msgstr "Agosto"

#: includes/globals.php:31
msgid "September"
msgstr "Septiembre"

#: includes/globals.php:32
msgid "October"
msgstr "Octubre"

#: includes/globals.php:33
msgid "November"
msgstr "Noviembre"

#: includes/globals.php:34
msgid "December"
msgstr "Diciembre"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Martes"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Miércoles"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Jueves"

#: includes/globals.php:43
msgid "Friday"
msgstr "Viernes"

#: includes/globals.php:48
msgid "Jan"
msgstr "Ene"

#: includes/globals.php:49
msgid "Feb"
msgstr "Feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mar"

#: includes/globals.php:51
msgid "Apr"
msgstr "Abr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Jun"

#: includes/globals.php:54
msgid "Jul"
msgstr "Jul"

#: includes/globals.php:55
msgid "Aug"
msgstr "Ago"

#: includes/globals.php:56
msgid "Sep"
msgstr "Sep"

#: includes/globals.php:57
msgid "Oct"
msgstr "Oct"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "Dic"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Fecha de inicio"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Ascendente"

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr ""

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Login inválido"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Contraseña"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr ""

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr ""

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Error al actualizar la clave de acceso."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Error al eliminar tokens."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Error al tratar de limpiar los tokens de acceso."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "consulta SQL"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anónimo"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "desconocido"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "La Base de Datos devuelve una fecha inválida."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "a"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "No hay eventos que concuerden con sus criterios de búsqueda."

#: includes/search.php:87
msgid "Search Results"
msgstr "Resultados de la búsqueda"

#: includes/search.php:91
msgid "Date Time"
msgstr "Fecha y hora"

#: includes/search.php:107
msgid "Phrase"
msgstr "Frase"

#: includes/search.php:115
msgid "Sort By"
msgstr "Ordenar por"

#: includes/search.php:118
msgid "Order"
msgstr "Orden"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Cambiar Contraseña"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Contraseña anterior"

#: includes/settings.php:64
msgid "New Password"
msgstr "Nueva contraseña"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Confirmar nueva contraseña"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Configuración actualizada."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Se presentó un posible intento de hacking en su cuenta."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "El mes está fuera de rango."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Año inválido"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Traducido \"% s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Confirmar Contraseña"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Establecer como administrador"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Debe especificar un nombre de usuario"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Usuario ya existe."

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Usted debe ser un administrador para eliminar usuarios."

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Ningún usuario seleccionado."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Ningún usuario"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "No hay cambios para hacer."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Usuario Actualizado(s)"

#: includes/util.php:75
msgid "continue"
msgstr "continuar"

#: includes/util.php:157
msgid "Software Error"
msgstr "Error del software"

#: includes/util.php:158
msgid "Message:"
msgstr "Mensaje:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Persian (http://www.transifex.com/sproctor/php-calendar/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr ""

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr ""

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr ""

#: includes/admin.php:74
msgid "Calendar List"
msgstr ""

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr ""

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr ""

#: includes/admin.php:110
msgid "User List"
msgstr ""

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr ""

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr ""

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr ""

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr ""

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr ""

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr ""

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr ""

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr ""

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr ""

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr ""

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr ""

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr ""

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr ""

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr ""

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr ""

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr ""

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr ""

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr ""

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr ""

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr ""

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr ""

#: includes/calendar.php:475
msgid "Add Event"
msgstr ""

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr ""

#: includes/calendar.php:483
msgid "View Month"
msgstr ""

#: includes/calendar.php:488
msgid "View date"
msgstr ""

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr ""

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr ""

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr ""

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr ""

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr ""

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr ""

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr ""

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr ""

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr ""

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr ""

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr ""

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr ""

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr ""

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr ""

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr ""

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr ""

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr ""

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr ""

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr ""

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr ""

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr ""

#: includes/category_delete.php:29
msgid "No category selected."
msgstr ""

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr ""

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr ""

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr ""

#: includes/category_form.php:27
msgid "Category Form"
msgstr ""

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr ""

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr ""

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr ""

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr ""

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr ""

#: includes/display_day.php:111
msgid "No events on this day."
msgstr ""

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr ""

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr ""

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr ""

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr ""

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr ""

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr ""

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr ""

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr ""

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr ""

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr ""

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr ""

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr ""

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr ""

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr ""

#: includes/event_form.php:72
msgid "Weekly"
msgstr ""

#: includes/event_form.php:74
msgid "Monthly"
msgstr ""

#: includes/event_form.php:76
msgid "Yearly"
msgstr ""

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr ""

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr ""

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr ""

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr ""

#: includes/event_form.php:129
msgid "Submit Event"
msgstr ""

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr ""

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr ""

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr ""

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr ""

#: includes/globals.php:24
msgid "February"
msgstr ""

#: includes/globals.php:25
msgid "March"
msgstr ""

#: includes/globals.php:26
msgid "April"
msgstr ""

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr ""

#: includes/globals.php:28
msgid "June"
msgstr ""

#: includes/globals.php:29
msgid "July"
msgstr ""

#: includes/globals.php:30
msgid "August"
msgstr ""

#: includes/globals.php:31
msgid "September"
msgstr ""

#: includes/globals.php:32
msgid "October"
msgstr ""

#: includes/globals.php:33
msgid "November"
msgstr ""

#: includes/globals.php:34
msgid "December"
msgstr ""

#: includes/globals.php:40
msgid "Tuesday"
msgstr ""

#: includes/globals.php:41
msgid "Wednesday"
msgstr ""

#: includes/globals.php:42
msgid "Thursday"
msgstr ""

#: includes/globals.php:43
msgid "Friday"
msgstr ""

#: includes/globals.php:48
msgid "Jan"
msgstr ""

#: includes/globals.php:49
msgid "Feb"
msgstr ""

#: includes/globals.php:50
msgid "Mar"
msgstr ""

#: includes/globals.php:51
msgid "Apr"
msgstr ""

#: includes/globals.php:53
msgid "Jun"
msgstr ""

#: includes/globals.php:54
msgid "Jul"
msgstr ""

#: includes/globals.php:55
msgid "Aug"
msgstr ""

#: includes/globals.php:56
msgid "Sep"
msgstr ""

#: includes/globals.php:57
msgid "Oct"
msgstr ""

#: includes/globals.php:58
msgid "Nov"
msgstr ""

#: includes/globals.php:59
msgid "Dec"
msgstr ""

#: includes/globals.php:69
msgid "Start Date"
msgstr ""

#: includes/globals.php:74
msgid "Ascending"
msgstr ""

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr ""

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr ""

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr ""

#: includes/logout.php:29
msgid "Loggin out..."
msgstr ""

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr ""

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr ""

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr ""

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr ""

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr ""

#: includes/search.php:87
msgid "Search Results"
msgstr ""

#: includes/search.php:91
msgid "Date Time"
msgstr ""

#: includes/search.php:107
msgid "Phrase"
msgstr ""

#: includes/search.php:115
msgid "Sort By"
msgstr ""

#: includes/search.php:118
msgid "Order"
msgstr ""

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr ""

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr ""

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr ""

#: includes/user_create.php:103
msgid "User already exists."
msgstr ""

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr ""

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr ""

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr ""

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# d2489f3e06add9f9756e9830a5e3c373_a61fcef <c0c6335df798265bff873ed2a967d33e_103982>, 2013
# d2489f3e06add9f9756e9830a5e3c373_a61fcef <c0c6335df798265bff873ed2a967d33e_103982>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Finnish (http://www.transifex.com/sproctor/php-calendar/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Sinun täytyy olla kirjautuneena järjestelmänvalvojana."

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Kääntää"

#: includes/admin.php:42
msgid "Version"
msgstr "Versio"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Kalenteri"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Toiminto"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Muokkaa"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Poista"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Luo Kalenteri"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Kalenteri Lista"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "käyttäjänimi"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Luo Käyttäjä"

#: includes/admin.php:110
msgid "User List"
msgstr "Käyttäjälista"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Tuo Lomake"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL palvelimen nimi"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL Tietokannan Nimi"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL Porttinumero"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Jätä tyhjäksi käyttääksesi vakioarvoa"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL Käyttäjänimi"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL Käyttäjän Salasana"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar Taulun Etuliite"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "asetukset"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Lähetä"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Lukeminen"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Kirjoitus"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Vain luku"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Muokkaa"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Järjestelmänvalvoja"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Käyttäjäoikeudet"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Käyttäjänimi"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Voi luoda vain luku muodossa"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Ei nimeä"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Ei yhtään"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Luo kategoria"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Kalenterikategoriat"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Nimi"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Tekstin Väri"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Taustan Väri"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Näkyvillä käyttäjäryhmälle"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Toiminnot"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Luo ryhmä"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Kalenteri Ryhmät"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Pääsy kielletty"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "ei asetettu"

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "asetuksia muokattu"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Kieli"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Aikavyöhyke"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Tervetuloa"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Asetukset"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Kirjaudu ulos"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Kirjaudu sisään"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Lisää merkintä"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Hae"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Näytä kuukausi"

#: includes/calendar.php:488
msgid "View date"
msgstr "Katso päivä"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Kalenterin Järjestelmänvalvoja"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Oletus"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Viikon aloitus"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "sunnuntai"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "maanantai"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "lauantai"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24 tunnin kello"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Kalenterin otsikko"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Aiheen maksimi pituus"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Tapahtumien näytön päivittäinen maksimi"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Julkiset oikeudet"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Ei voi lukea tai kirjoittaa tapahtumia"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Voi lukea mutta ei kirjoittaa tapahtumia"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Voi luoda muttei muokata tapahtumia"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Voi luoda ja muokata tapahtumia"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Oletus aikavyöhyke"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Oletus kieli"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Päivämäärän muoto"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Teema"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Kuukausi Päivä Vuosi"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Vuosi Kuukausi Päivä"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Päivä Kuukausi Vuosi"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Sinulla ei ole oikeuksia tehdä tätä:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Virhe"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Backtrace"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "jotain meni väärin"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Secret token mismatch. Mahdollinen pyynnön väärennös yritys."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Konfiguraation tyyppiä ei tueta"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Tunnistamaton jakso:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Ei kalenteria valittuna."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Vahvista poistaminen:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Vahvista"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Kiellä"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Sinulla ei ole oikeuksia poistaa kalenteria"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Poistettu kalenteri"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Kalenteria ei voitu poistaa"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Kalenteri luotu."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Kategoriaa ei ole valittuna."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Sinulla ei ole oikeuksia poistaa kategoriaa:"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Poistettu kategoria:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Kategoriaa ei voitu poistaa:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Kategoria Lomake"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Näkyvillä ryhmille"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Väriä ei ole määritelty."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "virheellinen väri."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Sinulla ei ole oikeuksia lisätä kategorioita kaikkiin kalentereihin."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Sinulla ei ole oikeuksia lisätä kategorioita tähän kalenteriin."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Sinulla ei ole oikeuksia muokata tätä kategoriaa"

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Muokattu kategoriaa:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Luotu kategoria:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Virhe lähetettäessä kategoriaa:"

#: includes/display_day.php:45
msgid "Title"
msgstr "otsikko"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "aika"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Selitys"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Poista valittu"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Tällä päivällä ei merkintöjä."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Virheelliset argumentit."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Sinulla ei ole oikeuksia lukea tätä tapahtumaa."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Kategoria"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Milloin"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Luotu:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Viimeksi muokattu:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Muokkaa Toistoa"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Poista Toisto"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Viime toisto"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Seuraava toisto"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Katso kaikki toistot"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Lisää toistuva"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "luona"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Poista"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Toistot"

#: includes/display_event.php:228
msgid "from"
msgstr "mistä"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Katso lisätapahtumia"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "jatkuu"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Ei tapahtumaa valittuna"

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Poistettu tapahtuma"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Poistetut tapahtumat"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Tapahtumaa ei voitu poistaa"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Tapahtumia ei voitu poistaa"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Sinulla ei ole oikeuksia poistaa tapahtumaa"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Sinulla ei ole oikeuksia poistaa tapahtumia"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Tapahtuma Lomake"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Otsikko"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Muuta tapahtuman päivämäärää ja aikaa"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Mistä?"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Minne?"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Ajan Tyyppi"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normaali"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Koko päivä"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Julkaistaan myöhemmin"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Toistot"

#: includes/event_form.php:68
msgid "Never"
msgstr "Ei koskaan"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Päivittäin"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Viikottain"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "kuukausittain"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Vuosittain"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Joka"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Kuinka useina päivinä toistetaan?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Kunnes"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Kuinka useina viikkoina toistetaan?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Kuinka useina kuukausina toistetaan?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Kuinka useina vuosina toistetaan?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Lisää merkintä"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Tuntematon Ajan Tyyppi"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "Tapahtuman ei voi pääättiä aikaisemmin kuin se alkaa"

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Sinulla ei ole oikeuksia kirjoittaa tähän kalenteriin."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Pakollinen kenttä \"joka päivä\" ei ole valittu."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "joka päivä pitää olla enemmän kuin 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Pakollinen kenttä \"joka viikko\" ei ole valittu."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "Joka viikko arvon täytyy olla isompi kuin yksi"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Pakollinen kenttä \"joka kuukausi\" ei ole valittu."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "Joka kuukausi arvon täytyy olla suurempi kuin 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Pakollinen kenttä \"joka vuosi\" ei ole valittu."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Virheellinen tapahtuma tyyppi"

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Muokattu tapahtuma:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Luotu tapahtuma:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Virhe lähetettäessä tapahtumaa."

#: includes/form.php:32
msgid "required"
msgstr "Vaadittu"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Lomakkeeseen ei voida lisätä siihen sopimattomia elementtejä"

#: includes/form.php:428
msgid "Date"
msgstr "Päivämäärä"

#: includes/globals.php:23
msgid "January"
msgstr "tammikuu"

#: includes/globals.php:24
msgid "February"
msgstr "helmikuu"

#: includes/globals.php:25
msgid "March"
msgstr "maaliskuu"

#: includes/globals.php:26
msgid "April"
msgstr "huhtikuu"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "toukokuu"

#: includes/globals.php:28
msgid "June"
msgstr "kesäkuu"

#: includes/globals.php:29
msgid "July"
msgstr "heinäkuu"

#: includes/globals.php:30
msgid "August"
msgstr "elokuu"

#: includes/globals.php:31
msgid "September"
msgstr "syyskuu"

#: includes/globals.php:32
msgid "October"
msgstr "Oktober"

#: includes/globals.php:33
msgid "November"
msgstr "marraskuu"

#: includes/globals.php:34
msgid "December"
msgstr "joulukuu"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "tiistai"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "keskiviikko"

#: includes/globals.php:42
msgid "Thursday"
msgstr "torstai"

#: includes/globals.php:43
msgid "Friday"
msgstr "perjantai"

#: includes/globals.php:48
msgid "Jan"
msgstr "Tammi"

#: includes/globals.php:49
msgid "Feb"
msgstr "helmi"

#: includes/globals.php:50
msgid "Mar"
msgstr "maalis"

#: includes/globals.php:51
msgid "Apr"
msgstr "Huhti"

#: includes/globals.php:53
msgid "Jun"
msgstr "touko"

#: includes/globals.php:54
msgid "Jul"
msgstr "kesä"

#: includes/globals.php:55
msgid "Aug"
msgstr "heinä"

#: includes/globals.php:56
msgid "Sep"
msgstr "elo"

#: includes/globals.php:57
msgid "Oct"
msgstr "syys"

#: includes/globals.php:58
msgid "Nov"
msgstr "loka"

#: includes/globals.php:59
msgid "Dec"
msgstr "marras"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Aloituspäivä"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Nouseva"

#: includes/globals.php:75
msgid "Descending"
msgstr "Laskeva"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Ei ryhmää valittuna."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Sinulla ei ole oikeuksia poistaa ryhmää:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Poistettu ryhmä:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Ei voitu poistaa ryhmää:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Ryhmälomake"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Sinulla ei ole okeuksia lisätä globaalia ryhmää."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Sinulla ei ole oikeuksia lisätä ryhmää tähän kalenteriin."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Sinulla ei ole oikeuksia muokata tätä ryhmää."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Muokattu ryhmä:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Luotu ryhmä:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Virhe lähetettäessä ryhmää"

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Sinun täytyy olla järjestelmänvalvoja"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Virhe valittaessa tapahtumia tuonnin yhteydessä"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Luotu %s tapahtumia %s määrällä toistoja"

#: includes/login.php:39
msgid "Logged in."
msgstr "Kirjauduttu sisään."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Kirjautuminen epäonnistui"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Sinun täytyy sallia cookiet kirjautumista varten."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "salasana"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Kirjaudutaan ulos..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Toistot Lomake"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Lisää toistuva"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Ei voi lisätä toistoa."

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID ei ole asetettu"

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Muokattu toistoa:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Luotu toisto:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Virhe lähetettäessä toistoa."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Toistoa ei valittu"

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Poistettu toisto"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Poistettu toistot"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Toistoa ei voitu poistaa"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Toistoja ei voitu poistaa"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Sinulla ei ole oikeuksia poistaa toistoa."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Sinulla ei ole oikeutta poistaa toistoja."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Sinun täytyy olla kirjautuneena sisään."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Sinulla ei ole oikeuksia vaihtaa salasanaasi."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Vanha salasana on syötettävä."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Salasana jonka syötit ei täsmää vanhan salasanasi kanssa."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Sinun täytyy syöttää salasana"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Salasanat eivät täsmää"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Salasana päivitetty"

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Ei otsikkoa)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Virhe get_occurrences_by_date_range arvossa"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Virhe get_event_by_eid arvossa"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Tapahtumaa ei ole olemassa"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Virhe Error in get_event_by_oid arvossa"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Tapahtumaa ei ole olemassa vanhassa"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Virhe get_category arvossa"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Kategoriaa ei ole olemassa catid arvossa"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Virhe get_group arvossa"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Ryhmää ei ole olemassa gid arvolla"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Virhe get_groups arvossa"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Virhe get_user_groups arvossa"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Virhe get_categories arvossa"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Virhe get_visible_categories arvossa"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Virhe get_occurence_by_old arvossa"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Virhe get_occurences_by_eid arvossa"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Virhe tapahtuman poistossa"

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Virhe toiston poistossa"

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Virhe kalenterin poistossa"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Virhe kategorian poistossa."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Virhe ryhmän poistossa."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Virhe poistettaessa"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Käyttöoikeuksia ei voitu lukea."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Kalentereita ei voitu hakea."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Käyttäjää ei voitu hakea."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Käyttäjä haussa tapahtui virhe."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Virhe käyttäjän luonnissa."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Virhe luettaessa asetuksia"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Virhe luodessa asetuksia"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Virhe salasanan päivityksessä."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Virhe aikavyöhykkeen päivityksessä."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Virhe kielen päivityksessä."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Virhe tapahtuman luonnissa."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Virhe toiston luonnissa."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Virhe toiston muokkauksessa."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Virhe tapahtuman muokkauksessa."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Virhe kategorian luonnissa."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Virhe ryhmän luonnissa."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Virhe kategorian muokkauksessa."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Virhe ryhmän muokkauksessa."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Haun aikana tapahtui virhe"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Virhe päivitettäessä käyttöoikeuksia"

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Virhe kirjautumisen yhteydessä (login token)"

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Virhe kirjautumisessa (error adding login token)."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Virhe (Error updating login token)"

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Virhe (Error removing login tokens)"

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Virhe (error cleaning login tokens)"

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL kysely"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonyymi"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "tuntematon"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Ei otsikkoa)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "Tietokanta palautti virheellisen päivän."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr ""

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Virheellinen lajitteluvalinta"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Virheellinen järjestys valinta"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Mikään tapahtumia ei löydetty antamillasi hakuehdoilla."

#: includes/search.php:87
msgid "Search Results"
msgstr "Haun tulokset"

#: includes/search.php:91
msgid "Date Time"
msgstr "aloitusaika"

#: includes/search.php:107
msgid "Phrase"
msgstr "Lause"

#: includes/search.php:115
msgid "Sort By"
msgstr "Järjestä:"

#: includes/search.php:118
msgid "Order"
msgstr "järjestys"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Vaihda Salasana"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Vanha Salasana"

#: includes/settings.php:64
msgid "New Password"
msgstr "Uusi Salasana"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Vahvista Uusi Salasana"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Asetukset päivitetty."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Mahdollinen murtoyritys tililläsi."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Kuukausi on alueen ulkopuolella."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Virheellinen vuosi"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Käännetty \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Vahvista salasana"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Luo Pääkäyttäjä"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Sinun on syötettävä käyttäjänimi"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Käyttäjänimi on jo olemassa"

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Sinun täytyy olla järjestelmänvalvoja poistaaksesi käyttäjiä"

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Käyttäjää ei ole valittu"

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Ei käyttäjiä"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Ei muutoksia tehtäväksi."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Päivitetty käyttäjä/käyttäjät:"

#: includes/util.php:75
msgid "continue"
msgstr "jatka"

#: includes/util.php:157
msgid "Software Error"
msgstr "Ohjelmistovirhe"

#: includes/util.php:158
msgid "Message:"
msgstr "Viesti:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Escure <escure.marion@gmail.com>, 2013
# FabienD <facebook@fabiend.fr>, 2016
# Froozeify, 2013-2014
# Froozeify, 2013
# Froozeify, 2014
# Sean Proctor <sproctor@gmail.com>, 2022
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: French (http://www.transifex.com/sproctor/php-calendar/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Vous devez être connecté en tant qu’administrateur."

#: includes/admin.php:33
msgid "Calendars"
msgstr "Calendriers"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Utilisateurs"

#: includes/admin.php:37
msgid "Import"
msgstr "Importer"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Traduire"

#: includes/admin.php:42
msgid "Version"
msgstr "Version"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Calendrier"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Action"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Editer"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Supprimer"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Créer un calendrier"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Liste des calendrier"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Nom d'utilisateur"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Groupes"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Éditer les Groupes"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Créer un utilisateur"

#: includes/admin.php:110
msgid "User List"
msgstr "Liste des utilisateurs"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Formulaire d'Importation"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "Nom d'hôte MySQL"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "Base de données MySQL"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "Port MySQL numéro"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Laissez ce champ vide pour défaut"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "Utilisateur MySQL"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "Mot de passe MySQL"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "Préfixe des tables pour PHP-Calendar"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Importer un calendrier"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "Ce script a besoin d'un accès en lecture à votre répertoire de calendrier afin d'écrire les fichiers de traduction. Vous pouvez également exécuter translate.php à partir de la ligne de commande ou utiliser msgfmt ou tout autre outil gettext capable de générer des fichiers .mo à partir de fichiers .po."

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "Générer des Traductions"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "Configuration du Calendrier"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "Catégories"

#: includes/cadmin.php:68
msgid "Options"
msgstr "Options"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Envoyer"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Lire"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Ecrire"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Lire uniquement"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Modifier"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Admin"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Permissions d'utilisateur"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Nom d'utilisateur"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Peut seulement créer et lire"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Pas de nom"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Aucune"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Créer une catégorie"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Catégories des calendriers"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Nom"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Couleur du texte"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Couleur d'arrière-plan"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Visible par le Groupe de l'Utilisateur"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Actions"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Créer un groupe"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Groupes des Calendriers"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Permission refusée"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "n'était pas défini."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Options mises à jour"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Langue"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Fuseau horaire"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Bienvenue"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Paramètres"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Déconnexion"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Connexion"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Ajouter un évènement"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Rechercher"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Vue par Mois"

#: includes/calendar.php:488
msgid "View date"
msgstr "Vue par Date"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Administration du Calendrier"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Par défaut"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Début de la semaine"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Dimanche"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Lundi"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Samedi"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24H"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Titre de l'agenda"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Longueur maximale du sujet"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Nombre Maximum d'Évènements  Affichés par Jour"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Permissions publiques"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Vous ne pouvez voir ou ajoutez d'évènement"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Vous pouvez voir mais pas ajouter d'évènement"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Vous ne pouvez pas créer mais vous pouvez modifiez les évènements"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Vous pouvez créer et modifiez les évènements"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Fuseau horaire par défaut"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Langue par défaut"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Format de la date"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Thème"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Mois Jour Année"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Année Mois Jour"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Jour Mois Année"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Vous n'avez pas la permission de faire ceci:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Erreur"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "trace"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Action invalide"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Incompatibilité de jeton secret. Possible tentative de falsification de la demande."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "config type non supporté"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "Le champs requis \"%s\" n'a pas été défini"

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "Format d'heure \"%s\" invalide : %s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Période non reconnue:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "Format de date \"%s\" invalide : %s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "date_format Invalide."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Pas de calendrier sélectionné."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Confirmer que vous voulez effacer:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Confirmer"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Refuser"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Vous n'avez pas la permission de supprimer le calendrier"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Calendrier supprimé"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Vous ne pouvez supprimer le calendrier"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Calendrier crée."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Pas de catégorie sélectionnée."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Vous n'avez pas la permission de supprimer la catégorie:"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Cat&eacute;gorie supprimée:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Impossible de supprimer la cat&eacute;gorie:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Formulaire Categorie"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Visible aux groupes"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "Sousmettre une Catégorie"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Couleur non spécifiée."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Couleur invalide."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Vous n'avez pas la permission d'ajouter des catégories à tous les calendriers"

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Vous n'avez pas la permission d'ajouter des catégories à ce calendrier"

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Vous n'avez pas la permission de modifier cette catégorie."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Cat&eacute;gorie modifi&eacute;e:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Cat&eacute;gorie cr&eacute;e:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Erreur en soumettant une catégorie."

#: includes/display_day.php:45
msgid "Title"
msgstr "Titre"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Heure"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Description"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Supprimer la Sélection"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Pas d'&Eacute;venements ce jour-là"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Arguments invalides."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Vous n'avez pas la permission de lire cet évènement."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "par"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Catégorie"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Quand"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Créé à:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Dernière modification à:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Modifier-Occurrence"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Effacer-Occurrence"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Occurrence précédente le"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Prochaine occurrence le"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Afficher Toutes les Occurrences"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Ajouter une occurrence"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "à"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Supprimer"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Occurrences"

#: includes/display_event.php:228
msgid "from"
msgstr "de"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "W"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Voir les Autres Évènements "

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "prolongé"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "Date invalide."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Pas de S&eacute;l&eacute;tion"

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Évènement supprimé"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Évènements supprimés"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Impossible de supprimer l'évènement"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Impossible de supprimer les évènements"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Vous n'avez pas la permission de supprimer l'évènement"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Vous n'avez pas la permission de supprimer les évènements"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Formulaire"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Suject"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Change la date et l'heure de l'évènement"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "De"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "&Agrave;"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Type d'Horaire"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normale"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Journ&eacute;e enti&egrave;re"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Annonc&eacute;"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "R&eacute;p&eacute;ter"

#: includes/event_form.php:68
msgid "Never"
msgstr "Jamais"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Quotidien"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Hebdo"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Mensuel"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Annuel"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Chaque"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "r&eacute;p&eacute;ter combien de jours ?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Jusqu'&agrave;"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "r&eacute;p&eacute;ter combien de semaines ?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "r&eacute;p&eacute;ter combien de mois ?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "R&eacute;p&eacute;ter combien d'ann&eacute;es ?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Envoyer"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "non reconnu"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "Un évènement ne peut avoir une fin antérieure à son début."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Vous n'avez pas la permission de supprimer le calendrier"

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "\"Jour\" n'est pas mis !"

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "jour doit &ecirc;tre au moins 1 !"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "\"Semaine\" n'est pas mis !"

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "semaine doit &ecirc;tre au moins 1 !"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "\"Mois\" n'est pas mis !"

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "Mois doit &ecirc;tre au mois 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "\"Annee\" n'est pas mis !"

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Invalide"

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Évènement modifi&eacute;:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Évènement créé:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Erreur d'envoi"

#: includes/form.php:32
msgid "required"
msgstr "requis"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Erreur"

#: includes/form.php:428
msgid "Date"
msgstr "Date"

#: includes/globals.php:23
msgid "January"
msgstr "Janvier"

#: includes/globals.php:24
msgid "February"
msgstr "F&eacute;vrier"

#: includes/globals.php:25
msgid "March"
msgstr "Mars"

#: includes/globals.php:26
msgid "April"
msgstr "Avril"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Mai"

#: includes/globals.php:28
msgid "June"
msgstr "Juin"

#: includes/globals.php:29
msgid "July"
msgstr "Juillet"

#: includes/globals.php:30
msgid "August"
msgstr "Ao&ucirc;t"

#: includes/globals.php:31
msgid "September"
msgstr "Septembre"

#: includes/globals.php:32
msgid "October"
msgstr "Octobre"

#: includes/globals.php:33
msgid "November"
msgstr "Novembre"

#: includes/globals.php:34
msgid "December"
msgstr "D&eacute;cembre"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Mardi"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Mercredi"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Jeudi"

#: includes/globals.php:43
msgid "Friday"
msgstr "Vendredi"

#: includes/globals.php:48
msgid "Jan"
msgstr "Jan"

#: includes/globals.php:49
msgid "Feb"
msgstr "F&eacute;v"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mar"

#: includes/globals.php:51
msgid "Apr"
msgstr "Avr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Jun"

#: includes/globals.php:54
msgid "Jul"
msgstr "Juil"

#: includes/globals.php:55
msgid "Aug"
msgstr "Ao&ucirc;t"

#: includes/globals.php:56
msgid "Sep"
msgstr "Sep"

#: includes/globals.php:57
msgid "Oct"
msgstr "Oct"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "D&eacute;c"

#: includes/globals.php:69
msgid "Start Date"
msgstr "De"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Tri croissant"

#: includes/globals.php:75
msgid "Descending"
msgstr "Tri décroissant"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Pas de groupe sélectionné."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Vous n'avez pas la permission de supprimer le groupe:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Groupe supprimé:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Vous ne pouvez supprimer le groupe:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Formulaire de Groupe"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "Soumettre un Groupe"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Vous n'avez pas la permission d'ajouter un groupe global."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Vous n'avez pas la permission d'ajouter un groupe à ce calendrier."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Vous n'avez pas la permission de modifier ce groupe."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Groupe modifi&eacute;:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Groupe cr&eacute;:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Erreur lors de la création du groupe."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Vous devez être \"admin\""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Erreur lors de la sélection d'évènements à l'import"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr "Connect&eacute;"

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Login non valable"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Les Cookies doivent &ecirc;tre activ&eacute;s"

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Mot de passe"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "d&eacute;connexion...."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID non défini."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Vous devez être connecté."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Vous n'avez pas de permission pour changer votre mot de passe."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Vous devez spécifier votre ancien mot de passe."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Le mot de passe indiqué ne correspond pas à votre ancien mot de passe."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Inscrivez un Mot de Pass"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "mauvais mot de pass"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Mot de passe mis à jour."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(sans titre)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "L'Évènement n'existe pas"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Erreur dans get_categories"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "La catégorie n'existe pas avec catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Erreur dans get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Le groupe n'existe pas avec gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Erreur dans get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Erreur dans get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Erreur (categorie) !"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Erreur dans get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Erreur dans get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Erreur dans get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Erreur lors de la suppression d'un évènement."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Erreur lors de la suppression d'un calendrier"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Erreur lors de la suppression d'une catégorie."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Erreur lors de la suppression d'un groupe."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Erreur lors de la suppression"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Impossible de lire les Permissions"

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Impossible d'acc&eacute;der aux agenda"

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Impossible d'acc&eacute;der à l'utilisateur."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Erreur (utilisateur) !"

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Erreur (creation de compte) !"

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Erreur (lecture des options) !"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Erreur (creation options) !"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Erreur de mise à jour du mot de passe."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Erreur de mise à jour du fuseau horaire."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Erreur de mise à jour de la langue."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "Erreur lors de l'ajout du groupe à l'utilisateur."

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "Erreur lors de la suppression d'un groupe de l'utilisateur."

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Erreur (creation d'un event) !"

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Erreur (modification d'un event) !"

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Erreur (creation categorie) !"

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Erreur lors de la création d'un groupe."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Erreur(modification de categorie) !"

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Erreur lors de la modification d'un groupe."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Erreur pendant la recherche !"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Erreur (permissions) !"

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "Requête SQL"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonyme"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "inconnu"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(pas de sujet)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "La base de données a renvoyé une date invalide."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "&agrave;"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "invalide"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "invalide"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Pas d'&eacute;venements pour la recherche"

#: includes/search.php:87
msgid "Search Results"
msgstr "R&eaute;sultats"

#: includes/search.php:91
msgid "Date Time"
msgstr "Date Heure"

#: includes/search.php:107
msgid "Phrase"
msgstr "Phrase"

#: includes/search.php:115
msgid "Sort By"
msgstr "Trier"

#: includes/search.php:118
msgid "Order"
msgstr "Ordre"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Changer Mot de Passe"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Ancien Mot de Passe"

#: includes/settings.php:64
msgid "New Password"
msgstr "Nouveau Mot de Passe"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Confirmer Mot de Passe"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Paramètres mis à jour."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Un pirate a peut être tenté d'accéder à votre compte."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Le mois est en dehors de la période."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Invalide"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Traduit \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Confirmer le mot de passe"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Mettre admin"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Vous devez inscrire un nom d'utilisateur"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Utilisateur existe d&eacute;j&agrave;"

#: includes/user_create.php:113
msgid "Added user."
msgstr "Utilisateur ajouté."

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Vous devez être administrateur pour supprimer des utilisateurs"

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Pas d'utilisateur"

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "Éditer les Groupes des Utilisateurs"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "Groupes mis à jour."

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Pas de Compte"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Pas de Changements "

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Utilisateur(s) mis à jour:"

#: includes/util.php:75
msgid "continue"
msgstr "continuer"

#: includes/util.php:157
msgid "Software Error"
msgstr "Erreur du Programme"

#: includes/util.php:158
msgid "Message:"
msgstr "Message:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Galician (http://www.transifex.com/sproctor/php-calendar/language/gl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: gl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Debes estar logueado como admin."

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Eliminar"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Crear calendario"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Lista de calendarios"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Nome de usuaria"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Crear usuaria"

#: includes/admin.php:110
msgid "User List"
msgstr "Lista de usuarias"

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "Opcións"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Enviar"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Ler"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Escribir"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Só-lectura"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Modificar"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Admin"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Permisos da usuaria"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Nome de usuaria"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Podes crear con permisos só de lectura"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Sen nome"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Ningún"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Crear categoría"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Categorías dos calendarios"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Nome"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Cor do texto"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Cor do fondo"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Denegouse o permiso"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr ""

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Opcións actualizadas"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr "Saír"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Entrar"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Engadir evento"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Buscar"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Ver mes"

#: includes/calendar.php:488
msgid "View date"
msgstr "Ver data"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Admin do calendario"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Comezo da semana"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Domingo"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Luns"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Sábado"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "Hora en 24 horas"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Título do calendario"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Lonxitude máxima do asunto"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Permisos públicos"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Non se pode ler nin escribir eventos"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Podese ler mais non escribir eventos"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Podense crear mais non modificar eventos"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Podense crear e modificar eventos"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Non tes permisos para facer iso:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Erro"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Acción non válida"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Non se seleccionou ningún calendario"

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Confirma que queres eliminar:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Confirmar"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Cancelar"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Creouse o calendario."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Non se seleccionou ningunha categría."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Non tes permisos para eliminar a categoría:"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Categoría eliminada:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Non poderías eliminar a categoría:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Formulario de categoría"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "NOn tes permisos para engadir categorías a todos os calendarios."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Non tes permisos para engadir categorías a este calendario."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Categoría modificada:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Categoría creada:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Erro enviando categoría."

#: includes/display_day.php:45
msgid "Title"
msgstr "Título"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Hora"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Descrición"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Eliminar selección"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Non hai eventos neste día."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Argumentos non válidos."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Non tes permisos para ler este evento."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Categoría"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Cando"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Ver todas as ocorrencias"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "a"

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Non hai eventos seleccionados."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Formulario de eventos"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Asunto"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Desde"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Para"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Tipo de hora"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normal"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Todo o día"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Para anunciar"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Repeticións"

#: includes/event_form.php:68
msgid "Never"
msgstr "Nunca"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Diariamente"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Semanalmente"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Mensualmente"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Anualmente"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Repetir por cantos días?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Até"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Repetir por cantas semanas?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Repetir por cantos meses?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Repetir por cantos anos?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr ""

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Non se  recoñeceu o formato para a hora"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Non tes permisos para escribir neste calendario"

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "todos-os-días debe ser maior que 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "O campo obrigatorio \"todas-as-semanas\" non está activado."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "todas-as-semanas debe ser maior que 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "O campo obrigatorio \"todos-os-meses\" non está activado."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "todos-os-meses debe ser maior que 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "O campo obrigatorio \"todos-os-anos\" non está activado."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "O tipo de evento non é válido"

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Erro enviando o evento"

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Non se pode engadir un elemento que non é do formulario a un formulario."

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr "Xaneiro"

#: includes/globals.php:24
msgid "February"
msgstr "Febreiro"

#: includes/globals.php:25
msgid "March"
msgstr "Marzo"

#: includes/globals.php:26
msgid "April"
msgstr "Abril"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Maio"

#: includes/globals.php:28
msgid "June"
msgstr "Xuño"

#: includes/globals.php:29
msgid "July"
msgstr "Xullo"

#: includes/globals.php:30
msgid "August"
msgstr "Agosto"

#: includes/globals.php:31
msgid "September"
msgstr "Setembro"

#: includes/globals.php:32
msgid "October"
msgstr "Outubro"

#: includes/globals.php:33
msgid "November"
msgstr "Novembro"

#: includes/globals.php:34
msgid "December"
msgstr "Decembro"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Martes"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Mércores"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Xoves"

#: includes/globals.php:43
msgid "Friday"
msgstr "Venres"

#: includes/globals.php:48
msgid "Jan"
msgstr "Xan"

#: includes/globals.php:49
msgid "Feb"
msgstr "Feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mar"

#: includes/globals.php:51
msgid "Apr"
msgstr "Abr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Xun"

#: includes/globals.php:54
msgid "Jul"
msgstr "Xul"

#: includes/globals.php:55
msgid "Aug"
msgstr "Ago"

#: includes/globals.php:56
msgid "Sep"
msgstr "Set"

#: includes/globals.php:57
msgid "Oct"
msgstr "Out"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "Dec"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Data de comezo"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Ascendente"

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr "Logueado."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Login incorrecto"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Tes que activar as cookies para loguearte."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Contrasinal"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Saíndo..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Debes especificar un contrasinal"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Os contrasinais non coinciden"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Sen título)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Erro en get_ocurrencees_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Erro en get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Non existe o evento"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Erro en get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Erro en get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Erro en get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Erro en get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Houbo un erro ao eliminar o evento."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Houbo un erro ao eliminar o calendario"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Houbo un erro ao eliminar a categoría"

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Houbo un erro ao eliminar"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Non se puideron ler os permisos."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Non se puideron obter os calendarios."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Non se puido obter a usuaria."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Houbo un erro ao obter a usuaria."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Houbo un erro ao crear a usuaria."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Houbo un erro ao ler as opcións"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Houbo un erro ao crear as opcións"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Houbo un erro ao crear o evento."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Houbo un erro ao modificar o evento."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Houbo un erro ao crear a categoría."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Houbo un erro ao modificar a categoría."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Houbo un erro na búsqueda"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Houbo un erro ao actualizar os permisos da usuaria."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "Consulta SQL"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anónimo"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "descoñecido"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Sen asunto)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "para"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Opción de ordeación non válida"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Opción de orde non válida"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Non se atoparon eventos que coincidan cos criterios de busca"

#: includes/search.php:87
msgid "Search Results"
msgstr "Resultados da búsqueda"

#: includes/search.php:91
msgid "Date Time"
msgstr "Data e hora"

#: includes/search.php:107
msgid "Phrase"
msgstr "Frase"

#: includes/search.php:115
msgid "Sort By"
msgstr "Ordear por"

#: includes/search.php:118
msgid "Order"
msgstr "Orde"

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr "O ano non é válido"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Confirmar contrasinal"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Debes especificar un nome de usuaria"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "A usuaria xa existe."

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Non se seleccionou ningunha usuaria."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Sen usuarias"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Non houbo cambios"

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Hebrew (http://www.transifex.com/sproctor/php-calendar/language/he/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: he\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "עליך להיות מחובר כמנהל."

#: includes/admin.php:33
msgid "Calendars"
msgstr "לוחות שנה"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "משתמשים"

#: includes/admin.php:37
msgid "Import"
msgstr "ייבא"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "תרגם"

#: includes/admin.php:42
msgid "Version"
msgstr "גרסא"

#: includes/admin.php:55
msgid "Calendar"
msgstr "לוח שנה"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "פעולה"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "ערוך"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "מחק"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "צור לוח שנה"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "רשימת לוחות שנה"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "שם משתמש"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "קבוצות"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "ערוך קבוצות"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "צור משתמש"

#: includes/admin.php:110
msgid "User List"
msgstr "רשימת משתמשים"

#: includes/admin.php:121
msgid "Import Form"
msgstr "ייבא טופס"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL Host Name"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL Database Name"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL Port Number"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "השאר ריק לברירת מחדל"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL User Name"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL User Password"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "רישא של טבלאות PHP-CALENDAR"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "ייבא לוח שנה"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "הסקריפט הזה צריך גישה לתיקיית calendar על מנת לכתוב את קבצי התרגום. אפשרות שניה היא להריץ את הקובץ translate.php מה-command line או להשתמש ב-msgfmt או כל כלי שיוצר קבצי .mo מקבצי .po"

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "צור תרגום"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "תצורת לוח שנה"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "קטגוריות"

#: includes/cadmin.php:68
msgid "Options"
msgstr "אפשרויות"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "שלח"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "קרא"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "כתוב"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "לקריאה בלבד"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "שנה"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "ניהול"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "הרשאות משתמשים"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "שם משתמש"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "יכול ליצור read-only"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "ללא שם"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "None"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "צור קטגוריה"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "קטגוריות לוח שנה"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "שם"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "צבע פונט"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "צבע רקע"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "גלוי לקבוצת המשתמשים"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "פעולות"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "צור קבוצה"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "קבוצות לוח שנה"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "אין הרשאה"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr " לא נקבע."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "אפשרויות מעודכנות"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "שפה"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "אזור-זמן"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "ברוך הבא"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "הגדרות"

#: includes/calendar.php:453
msgid "Log out"
msgstr "התנתק"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "התחבר"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "הוסף אירוע"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "חפש"

#: includes/calendar.php:483
msgid "View Month"
msgstr "צפה בחודש"

#: includes/calendar.php:488
msgid "View date"
msgstr "צפה בתאריך"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "ניהול לוח השנה"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "ברירת מחדל"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "תחילת שבוע"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "ראשון"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "שני"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "שבת"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "זמן בתצורת 24 שעות"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "כותרת לוח השנה"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "אורך נושא מקסימלי"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "מספר אירועים מקסימלי ביום"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "הרשאות ציבוריות"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "לא יכול לכתוב או לצפות באירועים"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "יכול לצפות אך לא לכתוב אירועים"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "יכול ליצור אך לא לשנות אירועים"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "יכול ליצור ולשנות אירועים"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "אזור-זמן ברירת מחדל"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "שפת ברירת מחדל"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "פורמט התאריך"

#: includes/calendar.php:556
msgid "Theme"
msgstr "תבנית עיצוב"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "חודש יום שנה"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "שנה חודש יום"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "יום חודש שנה"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "אין לך הרשאות לבצע: "

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "שגיאה"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "מעקב לאחור"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "פעולה לא חוקית"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "אי התאמה בקוד סודי. ייתכן נסיון זיוף."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "סוג הקונפיגורציה לא נתמך"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "השדה המבוקש \"%s\" לא נקבע."

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "מעוות \"%s\" זמן: \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "תקופה לא מזוהה: "

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "מעוות \"%s\" תאריך: \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "פורמט התאריך שגוי."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "לא נבחר לוח שנה."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "אשר שברצונך למחוק:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "אישור"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "ביטול"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "אין לך הרשאות למחוק לוח שנה"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "לוח שנה נמחק"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "לא יכול למחוק לוח שנה"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "לוח השנה נוצר."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "לא נבחרה קטגוריה."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "אין לך הרשאות למחוק קטגוריה: "

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "קטגוריה נמחקה: "

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "לא יכול למחוק קטגוריה: "

#: includes/category_form.php:27
msgid "Category Form"
msgstr "טופס קטגוריה"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "גלוי עבור קבוצות"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "שלח קטגוריה"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "צבע לא הוגדר."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "צבע שגוי."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "אין לך הרשאות להוסיף קטגוריות לכל לוחות השנה."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "אין לך הרשאות להוסיף קטגוריות ללוח השנה הזה."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "אין לך הרשאות לשנות את הקטגוריה הזו."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "קטגוריה שונתה: "

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "קטגוריה נוצרה: "

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "שגיאה בשליחת הקטגוריה."

#: includes/display_day.php:45
msgid "Title"
msgstr "כותרת"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "זמן"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "תיאור"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "מחק את הנבחרים"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "אין אירועים ביום זה."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "פרמטרים שגויים."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "אין לך הרשאות לקרוא אירוע זה."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "על ידי"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "קטגוריה"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "מתי"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "נוצר על ידי: "

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "שונה לאחרונה: "

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "שנה מופע"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "מחק מופע"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "מופע אחרון ב"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "מופע הבא ב"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "צפה בכל המופעים"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "הוסף מופע"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "ב"

#: includes/display_event.php:194
msgid "Remove"
msgstr "מחק"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "מופעים"

#: includes/display_event.php:228
msgid "from"
msgstr "החל מ"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "שבוע"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "צפה באירועים נוספים"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "המשך"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "תאריך שגוי."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "לא נבחר אירוע."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "אירוע נמחק"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "אירועים נמחקו"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "לא יכול למחוק אירוע"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "לא יכול למחוק אירועים"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "אין לך הרשאות למחוק אירוע"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "אין לך הרשאות למחוק אירועים"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "טופס יצירת אירוע"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "נושא"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "שנה תאריך ושעה של אירוע"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "החל מ"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "עד"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "סוג הזמן"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "רגיל"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "יום שלם"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "..."

#: includes/event_form.php:66
msgid "Repeats"
msgstr "חזרות"

#: includes/event_form.php:68
msgid "Never"
msgstr "אף פעם"

#: includes/event_form.php:70
msgid "Daily"
msgstr "יומי"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "שבועי"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "חודשי"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "שנתי"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "כל"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "חזרה כל כמה ימים?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "עד"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "חזרה כל כמה שבועות?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "חזרה כל כמה חודשים?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "חזרה כל כמה שנים?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "שלח אירוע"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "סוג זמן לא מזוהה."

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "אירוע לא יכול להסתיים לפני שהתחיל."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "אין לך הרשאה לכתוב ללוח השנה הזה."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "שדה החובה \"כל יום\" לא הוגדר."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "כל יום חייב להיות גדול מ-1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "שדה החובה \"כל שבוע\" לא הוגדר."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "כל שבוע חייב להיות גדול מ-1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "שדה החובה \"כל חודש\" לא הוגדר."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "כל חודש חייב להיות גדול מ-1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "שדה החובה \"כל שנה\" לא הוגדר."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "סוג אירוע שגוי."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "האירוע שונה: "

#: includes/event_form.php:425
msgid "Created event: "
msgstr "האירוע נוצר: "

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "שגיאה בשליחת האירוע."

#: includes/form.php:32
msgid "required"
msgstr "חובה"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "לא ניתן להוסיף אלמנט שאינו מתאים לטופס."

#: includes/form.php:428
msgid "Date"
msgstr "תאריך"

#: includes/globals.php:23
msgid "January"
msgstr "ינואר"

#: includes/globals.php:24
msgid "February"
msgstr "פבואר"

#: includes/globals.php:25
msgid "March"
msgstr "מרץ"

#: includes/globals.php:26
msgid "April"
msgstr "אפריל"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "מאי"

#: includes/globals.php:28
msgid "June"
msgstr "יוני"

#: includes/globals.php:29
msgid "July"
msgstr "יולי"

#: includes/globals.php:30
msgid "August"
msgstr "אוגוסט"

#: includes/globals.php:31
msgid "September"
msgstr "ספטמבר"

#: includes/globals.php:32
msgid "October"
msgstr "אוקטובר"

#: includes/globals.php:33
msgid "November"
msgstr "נובמבר"

#: includes/globals.php:34
msgid "December"
msgstr "דצמבר"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "שלישי"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "רביעי"

#: includes/globals.php:42
msgid "Thursday"
msgstr "חמישי"

#: includes/globals.php:43
msgid "Friday"
msgstr "שישי"

#: includes/globals.php:48
msgid "Jan"
msgstr "ינ'"

#: includes/globals.php:49
msgid "Feb"
msgstr "פב'"

#: includes/globals.php:50
msgid "Mar"
msgstr "מרץ"

#: includes/globals.php:51
msgid "Apr"
msgstr "אפ'"

#: includes/globals.php:53
msgid "Jun"
msgstr "יונ'"

#: includes/globals.php:54
msgid "Jul"
msgstr "יול'"

#: includes/globals.php:55
msgid "Aug"
msgstr "אוג'"

#: includes/globals.php:56
msgid "Sep"
msgstr "ספ'"

#: includes/globals.php:57
msgid "Oct"
msgstr "אוק'"

#: includes/globals.php:58
msgid "Nov"
msgstr "נוב'"

#: includes/globals.php:59
msgid "Dec"
msgstr "דצ'"

#: includes/globals.php:69
msgid "Start Date"
msgstr "תאריך התחלה"

#: includes/globals.php:74
msgid "Ascending"
msgstr "סדר עולה"

#: includes/globals.php:75
msgid "Descending"
msgstr "סדר יורד"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "לא נבחרה קבוצה."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "אין לך הרשאות למחוק קבוצה: "

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "נמחקה קבוצה: "

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "לא יכול למחוק קבוצה: "

#: includes/group_form.php:27
msgid "Group Form"
msgstr "טופס יצירת קבוצה"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "שלח קבוצה"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "אין לך הרשאות להוסיף קבוצה גלובלית."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "אין לך הרשאות להוסיף קבוצה ללוח השנה הזה."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "אין לך הרשאות לשנות קבוצה זו."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "קבוצה שונתה: "

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "קבוצה נוצרה: "

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "שגיאה בשליחת קבוצה."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "צריך להיות מנהל"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "שגיאה בבחירת האירועים בייבוא"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "נוצרו %s אירועים עם %s מופעים"

#: includes/login.php:39
msgid "Logged in."
msgstr "התחברת."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "מצטערים, שם משתמש או ססמא שגויים"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "עליך להשתמש ב-cookies על מנת להתחבר."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "ססמא"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "מתנתק..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "טופס יצירת מופע"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "שלח מופע"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "לא יכול ליצור מופע."

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID לא הוגדר."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "מופע שונה: "

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "מופע נוצר: "

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "שגיאה בשליחת המופע."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "לא נבחר מופע."

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "מופע נמחק"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "מופעים נמחקו"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "לא ניתן למחוק מופע"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "לא ניתן למחוק מופעים"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "אין לך הרשאות למחוק את המופע."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "אין לך הרשאות למחוק את המופעים."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "עליך להיות מחובר."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "אין לך הרשאה לשנות את ססמתך."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "עליך לציין את ססמתך הישנה."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "הססמא שהקלדת לא מתאימה לססמתך הישנה."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "עליך לציין ססמא"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "הססמאות שלך לא התאימו"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "ססמא עודכנה."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(ללא כותרת)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "שגיאה ב-get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "שגיאה ב-get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "אירוע לא קיים"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "שגיאה ב-get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "אירוע לא קיים עם oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "שגיאה ב-get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "קטגוריה לא קיימת עם catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "שגיאה ב-get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "קבוצה לא קיימת עם gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "שגיאה ב-get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "שגיאה ב-get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "שגיאה ב-get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "שגיאה ב-get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "שגיאה ב-get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "שגיאה ב-get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "שגיאה בעת מחיקת אירוע."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "שגיאה בעת מחיקת מופע."

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "שגיאה בעת מחיקת לוח שנה"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "שגיאה בעת מחיקת קטגוריה."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "שגיאה בעת מחיקת קבוצה."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "שגיאה בעת מחיקת "

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "לא ניתן לקרוא הרשאות."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "לא ניתן להשיג לוחות שנה."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "ששלא ניתן להשיג משתמש."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "שגיאה בקבלת משתמש."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "שגיאה ביצירת משתמש."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "שגיאה בקריאת אפשרויות"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "שגיאה ביצירת אפשרויות"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "שגיאה בעדכון ססמא."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "שגיאה בעדכון אזור-זמן."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "שגיאה בעדכון שפה."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "שגיאה בהוספת קבוצה למשתמש."

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "שגיאה במחיקת קבוצה ממשתמש."

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "שגיאה ביצירת אירוע."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "שגיאה ביצירת מופע."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "שגיאה בשינוי מופע."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "שגיאה בשינוי אירוע."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "שגיאה ביצירת קטגוריה."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "שגיאה ביצירת קבוצה."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "שגיאה בשינוי קטגוריה."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "שגיאה בשינוי קבוצה."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "שגיאה בעת חיפוש"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "שגיאה בעדכון הרשאות משתמש."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "שגיאה בקבלת token התחברות."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "שגיאה בהוספת token התחברות."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "שגיאה בעדכון token התחברות."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "שגיאה במחיקת login tokens."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "שגיאה בניקוי login tokens."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "שאילתת SQL"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "אנונימי"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "לא ידוע"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(ללא נושא)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "מסד נתונים החזיר תאריך שגוי."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "אל"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "אפשרות מיון שגויה"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "אפשרות סידור שגויה"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "אין אירועים שמתאימים לקריטריון החיפוש שלך."

#: includes/search.php:87
msgid "Search Results"
msgstr "תוצאות חיפוש"

#: includes/search.php:91
msgid "Date Time"
msgstr "תאריך"

#: includes/search.php:107
msgid "Phrase"
msgstr "ביטוי"

#: includes/search.php:115
msgid "Sort By"
msgstr "מיין על פי"

#: includes/search.php:118
msgid "Order"
msgstr "סדר"

#: includes/settings.php:52
msgid "Change Password"
msgstr "שנה ססמא"

#: includes/settings.php:61
msgid "Old Password"
msgstr "ססמא ישנה"

#: includes/settings.php:64
msgid "New Password"
msgstr "ססמא חדשה"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "אשר ססמא חדשה"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "הגדרות עודכנו."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "ייתכן נסיון פריצה לחשבונך."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "חודש מחוץ לתחום."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "שנה שגויה"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "תורגם \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "אשר ססמא"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "הפוך למנהל"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "עליך לציין שם משתמש"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "שם משתמש קיים במערכת."

#: includes/user_create.php:113
msgid "Added user."
msgstr "משתמש הוסף למערכת."

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "עליך להיות מנהל על מנת למחוק משתמשים."

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "לא נבחר משתמש."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "ערוך קבוצות משתמשים"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "קבוצות עודכנו."

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "אין משתמשים"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "לא התבצעו שינויים."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "משתמש(ים) שעודכנ(ו):"

#: includes/util.php:75
msgid "continue"
msgstr "המשך"

#: includes/util.php:157
msgid "Software Error"
msgstr "שגיאת תוכנה"

#: includes/util.php:158
msgid "Message:"
msgstr "הודעה:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Balázs Úr, 2011
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Hungarian (http://www.transifex.com/sproctor/php-calendar/language/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Rendszergazdaként kell bejelentkeznie."

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Törlés"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Naptár létrehozása"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Naptárlista"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Felhasználónév"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Felhasználó létrehozása"

#: includes/admin.php:110
msgid "User List"
msgstr "Felhasználólista"

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "Beállítások"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Elküldés"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Olvasás"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Írás"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Csak olvasható"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Módosítás"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Rendszergazda"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Felhasználói jogosultságok"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Felhasználónév"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Létrehozhat csak olvashatót"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Névtelen"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Nincs"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Kategória létrehozása"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Naptárkategóriák"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Név"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Szövegszín"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Háttérszín"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Hozzáférés megtagadva"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr " nincs beállítva."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Frissített beállítások"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr "Kijelentkezés"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Bejelentkezés"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Esemény hozzáadása"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Keresés"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Havi nézet"

#: includes/calendar.php:488
msgid "View date"
msgstr "Napi nézet"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Naptár rendszergazda"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Hét kezdete"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Vasárnap"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Hétfő"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Szombat"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24 órás idő"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Naptár címe"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Maximális tárgyhossz"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Nyilvános jogosultságok"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Nem olvashat és nem írhat eseményeket"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Olvashat, de nem írhat eseményeket"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Létrehozhat, de nem módosíthat eseményeket"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Létrehozhat és módosíthat eseményeket"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Nincs jogosultsága ezt tenni: "

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Hiba"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Visszakövetés"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Érvénytelen művelet"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Nem támogatott beállítótípus"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Nincs naptár kiválasztva."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Erősítse meg törlési szándékát:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Megerősítés"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Tiltás"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Naptár létrehozva."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Nincs kategória kiválasztva."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Nincs jogosultsága a kategória törléséhez: "

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Eltávolított kategória: "

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Nem távolítható el a kategória: "

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Kategória űrlap"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Nincs jogosultsága kategóriák hozzáadására az összes naptárhoz."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Nincs jogosultsága kategóriák hozzáadására ehhez a naptárhoz."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Módosított kategória: "

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Létrehozott kategória: "

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Hiba a kategória elküldésekor."

#: includes/display_day.php:45
msgid "Title"
msgstr "Cím"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Idő"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Leírás"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "A kijelölt törlése"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Nincsenek események ezen a napon."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Érvénytelen argumentumok."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Nincs jogosultsága ennek az eseménynek az olvasásához."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Kategória"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Ekkor:"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Minden előfordulás megtekintése"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "ettől:"

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Nincs esemény kiválasztva."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Esemény űrlap"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Tárgy"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Ettől"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Eddig"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Időtípus"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normál"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Egész nap"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Bejelenteni"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Ismétlődés"

#: includes/event_form.php:68
msgid "Never"
msgstr "Soha"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Naponta"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Hetente"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Havonta"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Évente"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Minden"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Minden hányadik napon ismétlődjön?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Eddig"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Minden hányadik héten ismétlődjön?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Minden hányadik hónapban ismétlődjön?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Minden hányadik évben ismétlődjön?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr ""

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Kategorizálatlan időtípus."

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Nincs írási jogosultsága ehhez a naptárhoz."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "A kötelező „every-day” mező nincs beállítva."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "Az every-day értékének nagyobbnak kell lennie 1-nél"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "A kötelező „every-week” mező nincs beállítva."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "Az every-week értékének nagyobbnak kell lennie 1-nél"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "A kötelező „every-month” mező nincs beállítva."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "Az every-month értékének nagyobbnak kell lennie 1-nél"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "A kötelező „every-year” mező nincs beállítva."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Érvénytelen eseménytípus."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Hiba az esemény elküldésekor."

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Nem adható űrlapelemen kívül más az űrlaphoz."

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr "Január"

#: includes/globals.php:24
msgid "February"
msgstr "Február"

#: includes/globals.php:25
msgid "March"
msgstr "Március"

#: includes/globals.php:26
msgid "April"
msgstr "Április"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Május"

#: includes/globals.php:28
msgid "June"
msgstr "Június"

#: includes/globals.php:29
msgid "July"
msgstr "Július"

#: includes/globals.php:30
msgid "August"
msgstr "Augusztus"

#: includes/globals.php:31
msgid "September"
msgstr "Szeptember"

#: includes/globals.php:32
msgid "October"
msgstr "Október"

#: includes/globals.php:33
msgid "November"
msgstr "November"

#: includes/globals.php:34
msgid "December"
msgstr "December"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Kedd"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Szerda"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Csütörtök"

#: includes/globals.php:43
msgid "Friday"
msgstr "Péntek"

#: includes/globals.php:48
msgid "Jan"
msgstr "Jan"

#: includes/globals.php:49
msgid "Feb"
msgstr "Feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "Már"

#: includes/globals.php:51
msgid "Apr"
msgstr "Ápr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Jún"

#: includes/globals.php:54
msgid "Jul"
msgstr "Júl"

#: includes/globals.php:55
msgid "Aug"
msgstr "Aug"

#: includes/globals.php:56
msgid "Sep"
msgstr "Sze"

#: includes/globals.php:57
msgid "Oct"
msgstr "Okt"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "Dec"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Kezdő dátum"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Növekvő"

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr "Bejelentkezve."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Elnézést, érvénytelen bejelentkezés."

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Engedélyeznie kell a sütiket a belépéshez."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Jelszó"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Kijelentkezés..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Meg kell adnia egy jelszót"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "A jelszavak nem egyeztek"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Nincs cím)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Hiba a get_occurrences_by_date_range függvényben"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Hiba a get_event_by_eid függvényben"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Az esemény nem létezik"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Hiba a get_category függvényben"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Hiba a get_categories függvényben"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Hiba a get_occurrence_by_oid függvényben"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Hiba a get_occurrence_by_eid függvényben"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Hiba történt az esemény eltávolításakor."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Hiba történt a naptár eltávolításakor."

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Hiba történt a kategória eltávolításakor."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Hiba történt az eltávolításkor"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Nem olvashatók a jogosultságok."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Nem sikerült elérni a naptárakat."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Nem sikerült elérni a felhasználót."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Hiba a felhasználó elérésekor."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Hiba a felhasználó létrehozásakor."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Hiba a beállítások olvasásakor"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Hiba a beállítások létrehozásakor"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Hiba az esemény létrehozásakor."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Hiba az esemény módosításakor."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Hiba a kategória létrehozásakor."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Hiba a kategória módosításakor."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Hiba a keresés során"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Hiba a felhasználó jogosultságainak frissítésekor."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL lekérdezés"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "névtelen"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "ismeretlen"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Nincs tárgy)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "eddig:"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Érvénytelen rendezési beállítás"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Érvénytelen sorrend beállítás"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "A keresési kritériumára nem illeszkedik egyetlen esemény sem."

#: includes/search.php:87
msgid "Search Results"
msgstr "A keresés eredménye"

#: includes/search.php:91
msgid "Date Time"
msgstr "Dátum és idő"

#: includes/search.php:107
msgid "Phrase"
msgstr "Kifejezés"

#: includes/search.php:115
msgid "Sort By"
msgstr "Rendezés"

#: includes/search.php:118
msgid "Order"
msgstr "Sorrend"

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Érvénytelen év"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Jelszó megerősítése"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Rendszergazda létrehozása"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Meg kell adnia egy felhasználónevet"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "A felhasználó már létezik."

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Nincs felhasználó kiválasztva."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Nincsenek felhasználók"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Nincsenek végrehajtható változtatások."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Balacche4 <marcowork10@gmail.com>, 2014
# Balacche4 <marcowork10@gmail.com>, 2014
# Stefano <sabas88@gmail.com>, 2013
# Stefano <sabas88@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Italian (http://www.transifex.com/sproctor/php-calendar/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Devi essere autenticato come amministratore."

#: includes/admin.php:33
msgid "Calendars"
msgstr "Calendari"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Utenti"

#: includes/admin.php:37
msgid "Import"
msgstr "Importa"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Traduci"

#: includes/admin.php:42
msgid "Version"
msgstr "Versione"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Calendario"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Azione"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Modifica"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Cancella"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Crea Calendario"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Elenco Calendari"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Nome utente"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Gruppi"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Modifica Gruppi"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Crea utente"

#: includes/admin.php:110
msgid "User List"
msgstr "Elenco Utenti"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Form di importazione"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "Nome host MySQL"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "Nome del database MySQL"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "Numero della porta MySQL"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Lascia in bianco per il default"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "Nome utente MySQL"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "Password utente MySQL"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "Prefisso delle tabelle di PHP-Calendar"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Importa Calendario"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "Genera Traduzione"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "Configurazione Calendario"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "Categorie"

#: includes/cadmin.php:68
msgid "Options"
msgstr "Opzioni"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Invia"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Lettura"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Scrittura"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Sola lettura"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Modifica"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Amministratore"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Permessi utente"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Nome utente"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Può creare in sola lettura"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Nessun nome"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Nessuno"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Crea categoria"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Categorie dei Calendari"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Nome"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Colore del testo"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Colore di sfondo"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Visibile al gruppo utenti"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Azioni"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Crea gruppo"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Gruppi Calendario"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Permesso negato"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "non è stato impostato."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Opzioni aggiornate"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Lingua"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Fuso orario"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Benvenuto"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Impostazioni"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Log out"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Log in"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Aggiungi evento"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Ricerca"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Vedi Mese"

#: includes/calendar.php:488
msgid "View date"
msgstr "Vedi giorno"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Amministrazione Calendari"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Default"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Inizio della settimana"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Domenica"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Lunedi"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Sabato"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "Orario a 24 ore"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Titolo del calendario"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Massima lunghezza del soggetto"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Numero massimo di eventi mostrati giornalmente"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Permessi pubblici"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Non può ne' leggere ne' scrivere eventi"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Può leggere ma non può scrivere eventi"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Può creare ma non modificare gli eventi"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Può creare e modificare eventi"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Fuso orario predefinito"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Lingua predefinita"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Formato della data"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Tema"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Mese Giorno Anno"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Anno Mese Giorno"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Giorno Mese Anno"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Non possiedi i permessi per farlo:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Errore"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Backtrace"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Azione non valida"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Token di sicurezza non corrispondente. Possibile tentativo di contraffazione della richiesta."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Tipo di configurazione non supportato"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Periodo non riconosciuto:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "Invalido date_format."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Nessun calendario selezionato."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Conferma che vuoi cancellare:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Conferma"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Nega"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Non possiedi i permessi per rimuovere il calendari"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Rimosso il calendario"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Non ho potuto rimuovere il calendari"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Calendario creato."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Nessuna categoria selezionata."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Non possiedi i permessi per cancellare la categoria:"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Rimossa la categoria:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Non ho potuto rimuovere la categoria:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Form Categoria"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Visibile ai gruppi"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Colore non specificato."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Colore non valido."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Non possiedi i permessi per aggiungere categorie a tutti i calendari."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Non possiedi i permessi per aggiungere categorie a questo calendario"

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Non possiedi i permessi per modificare questa categoria."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Categoria modificata:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Categoria creata:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Errore nell'invio della categoria."

#: includes/display_day.php:45
msgid "Title"
msgstr "Titolo"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Orario"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Descrizione"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Cancella i selezionati"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Nessun evento in questo giorno."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Argomenti non validi."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Non possiedi i permessi per leggere questo evento."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "di"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Categoria"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Quando"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Creazione:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Ultima modifica:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Modifica occorrenza"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Rimuovi occorrenza"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Occorrenza precedente il"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Prossima occorrenza il"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Vedi tutte le occorrenze"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Aggiungi occorrenza"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "alle"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Rimuovi"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Occorrenze"

#: includes/display_event.php:228
msgid "from"
msgstr "da"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Vedi altri eventi"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "continuato"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Nessun evento selezionato."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Evento rimosso"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Eventi rimossi"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Non ho potuto rimuovere l'evento"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Non ho potuto rimuovere gli eventi"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Non possiedi i permessi per rimuovere l'evento"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Non possiedi i permessi per rimuovere gli eventi"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Form Evento"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Soggetto"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Cambia la date e l'orario dell'evento"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Da"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "A"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Tipologia orario"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normale"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Tutto il giorno"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Da determinare"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Ripetizioni"

#: includes/event_form.php:68
msgid "Never"
msgstr "Mai"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Giornalmente"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Settimanalmente"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Mensilmente"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Annualmente"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Ogni"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Ogni quanti giorni ripetere?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Fino a"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Ogni quante settimane ripetere?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Ogni quanti mesi ripetere?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Ogni quanti anni ripetere?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Invia evento"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Formato dell'orario non riconosciuto."

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "Un evento non può avere una fine in anticipo rispetto all'inizio."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Non possiedi i permessi per scrivere su questo calendario."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Il campo richiesto \"every-day\" non è impostato."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "every-day deve essere maggiore di 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Il campo richiesto \"every-week\" non è impostato."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "every-week deve essere maggiore di 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Il campo richiesto \"every-month\" non è impostato."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "every-month deve essere maggiore di 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Il campo richiesto \"every-year\" non è impostato."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Tipo di evento non valido."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Evento modificato:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Evento creato:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Errore nell'invio dell'evento."

#: includes/form.php:32
msgid "required"
msgstr "richiesto"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Non posso aggiungere un elemento che non rappresenta un form ad un form."

#: includes/form.php:428
msgid "Date"
msgstr "Data"

#: includes/globals.php:23
msgid "January"
msgstr "Gennaio"

#: includes/globals.php:24
msgid "February"
msgstr "Febbraio"

#: includes/globals.php:25
msgid "March"
msgstr "Marzo"

#: includes/globals.php:26
msgid "April"
msgstr "Aprile"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Maggio"

#: includes/globals.php:28
msgid "June"
msgstr "Giugno"

#: includes/globals.php:29
msgid "July"
msgstr "Luglio"

#: includes/globals.php:30
msgid "August"
msgstr "Agosto"

#: includes/globals.php:31
msgid "September"
msgstr "Settembre"

#: includes/globals.php:32
msgid "October"
msgstr "Ottobre"

#: includes/globals.php:33
msgid "November"
msgstr "Novembre"

#: includes/globals.php:34
msgid "December"
msgstr "Dicembre"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Martedi"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Mercoledi"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Giovedi"

#: includes/globals.php:43
msgid "Friday"
msgstr "Venerdi"

#: includes/globals.php:48
msgid "Jan"
msgstr "Gen"

#: includes/globals.php:49
msgid "Feb"
msgstr "Feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mar"

#: includes/globals.php:51
msgid "Apr"
msgstr "Apr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Giu"

#: includes/globals.php:54
msgid "Jul"
msgstr "Lug"

#: includes/globals.php:55
msgid "Aug"
msgstr "Ago"

#: includes/globals.php:56
msgid "Sep"
msgstr "Set"

#: includes/globals.php:57
msgid "Oct"
msgstr "Ott"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "Dic"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Data di inizio"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Ascendente"

#: includes/globals.php:75
msgid "Descending"
msgstr "Discendente"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Nessun gruppo selezionato."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Non possiedi i permessi per cancellare il gruppo:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "RImosso il gruppo:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Non ho potuto rimuovere il gruppo:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Form Gruppo"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Non possiedi i permessi per aggiungere un gruppo globale."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Non possiedi i permessi per aggiungere un gruppo a questo calendario."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Non possiedi i permessi per modificare questo gruppo."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Gruppo modificato:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Gruppo creato:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Errore nell'invio del gruppo."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Devi essere amministratore"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Errore nella selezione dell'evento durante l'importazione"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Creati %s eventi con %s occorrenze"

#: includes/login.php:39
msgid "Logged in."
msgstr "Autenticato."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Scusa, login non valido"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Devi avere i cookie abilitati per autenticarti."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Password"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Uscendo..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Form Occorrenzaq"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Invia Occorrenza"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Non posso creare l'occorrenza."

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID non impostato."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Occorrenza modificata:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Occorrenza creata:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Errore nell'invio dell'occorrenza."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Nessuna occorrenza selezionata."

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Occorrenza rimossa"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Occorrenze rimosse"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Non ho potuto rimuovere l'occorrenza"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Non ho potuto rimuovere le occorrenze"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Non possiedi i permessi per rimuovere l'occorrenza."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Non possiedi i permessi per rimuovere le occorrenze."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Devi essere autenticato."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Non possiedi i permessi per cambiare la tua password."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Devi specificare la tua vecchia password."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "La password che hai inserito non corrisponde alla tua vecchia password."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Devi specificare una password"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Le tue password non corrispondono"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Password aggiornata."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Nessun titolo)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Errore in get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Errore in get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "L'evento non esiste"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Errore in get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "L'evento non esiste con oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Errore in get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "La categoria non esiste con catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Errore in get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Il gruppo non esiste con gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Errore in get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Errore in get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Errore in get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Errore in get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Errore in get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Errore in get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Errore nella rimozione di un evento."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Errore nella rimozione di una occorrenza."

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Errore nella rimozione di un calendario"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Errore nella rimozione della categoria."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Errore nella rimozione del gruppo."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Errore nella rimozione"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Non ho potuto leggere i permessi."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Non ho potuto recuperare i calendari"

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Non ho potuto recuperare l'utente"

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Errore nel recuperare l'utente."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Errore nella creazione dell'utente."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Errore nella lettura delle opzioni"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Errore nel creare le opzioni"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Errore nell'aggiornamento della password."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Errore nell'aggiornamento del fuso orario."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Errore nell'aggiornamento della lingua."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Errore nella creazione dell'evento."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Errore nella creazione dell'occorrenza."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Errore nella modifica dell'occorrenza."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Errore nella modifica dell'evento."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Errore nella creazione della categoria."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Errore nella creazione del gruppo."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Errore nella modifica della categoria."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Errore nella modifica del gruppo."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Errore durante la ricerca"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Errore nell'aggiornamento dei permessi utenti."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Errore nel recupero del token di login."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Errore nell'aggiunta del token di login."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Errore nell'aggiornamento del token di login."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Errore nella rimozione dei token di login."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Errore nella pulitura dei token di login."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "Query SQL"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonimo"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "sconosciuto"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Nessun soggetto)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "Il database ha ritornato una data non valida."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "N/D"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "a"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Opzione di classificazione non valida"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Opzione di ordinamento non valida"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Nessun evento corrisponde ai tuoi criteri di ricerca."

#: includes/search.php:87
msgid "Search Results"
msgstr "Risultati di ricerca"

#: includes/search.php:91
msgid "Date Time"
msgstr "Data Orari"

#: includes/search.php:107
msgid "Phrase"
msgstr "Frase"

#: includes/search.php:115
msgid "Sort By"
msgstr "Ordina per"

#: includes/search.php:118
msgid "Order"
msgstr "Ordinamento"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Cambia password"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Vecchia password"

#: includes/settings.php:64
msgid "New Password"
msgstr "Nuova password"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Conferma nuova password"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Impostazioni aggiornate."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Probabile tentativo di hacking sul tuo account."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Il mese è fuori dall'intervallo."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Anno non valido"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Tradotto \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Conferma Password"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Rendi amministratore"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Devi specificare un nome utente"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "L'utente esiste già."

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Devi essere amministratore per poter cancellare gli utenti."

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Nessun utente selezionato."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Nessun utente"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Nessun cambiamento da effettuare."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Utenti aggiornati:"

#: includes/util.php:75
msgid "continue"
msgstr "continua"

#: includes/util.php:157
msgid "Software Error"
msgstr "Errore del Software"

#: includes/util.php:158
msgid "Message:"
msgstr "Messaggio:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Japanese (http://www.transifex.com/sproctor/php-calendar/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr ""

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "削除"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr ""

#: includes/admin.php:74
msgid "Calendar List"
msgstr ""

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "ユーザー名"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr ""

#: includes/admin.php:110
msgid "User List"
msgstr ""

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "オプション"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "送信"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr ""

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr ""

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr ""

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "修正"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr ""

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr ""

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr ""

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr ""

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr ""

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr ""

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr ""

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr ""

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr ""

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr ""

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "権限で拒否されました"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr ""

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "オプションをアップデートしました"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr "ログアウト"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "ログイン"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "イベント追加"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "検索"

#: includes/calendar.php:483
msgid "View Month"
msgstr ""

#: includes/calendar.php:488
msgid "View date"
msgstr "1 日表示"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr ""

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr ""

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "日曜日"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "月曜日"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "土曜日"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr ""

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "カレンダーの題名"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr ""

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr ""

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr ""

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr ""

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr ""

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr ""

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr ""

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr ""

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "無効な操作"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr ""

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr ""

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr ""

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr ""

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr ""

#: includes/category_delete.php:29
msgid "No category selected."
msgstr ""

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr ""

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr ""

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr ""

#: includes/category_form.php:27
msgid "Category Form"
msgstr ""

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr ""

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr "題名"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "時間"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "説明"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "選択を削除"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "この日はイベントがありません。"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr ""

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr ""

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr ""

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr ""

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr ""

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr ""

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "件名"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "差出人"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "宛先"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr ""

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "通常"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "全日"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr ""

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr ""

#: includes/event_form.php:72
msgid "Weekly"
msgstr "毎週"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "毎月"

#: includes/event_form.php:76
msgid "Yearly"
msgstr ""

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr ""

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr ""

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr ""

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr ""

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "イベント送信"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr ""

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr ""

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr ""

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr "1 月"

#: includes/globals.php:24
msgid "February"
msgstr "2 月"

#: includes/globals.php:25
msgid "March"
msgstr "3 月"

#: includes/globals.php:26
msgid "April"
msgstr "4 月"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "5 月"

#: includes/globals.php:28
msgid "June"
msgstr "6 月"

#: includes/globals.php:29
msgid "July"
msgstr "7 月"

#: includes/globals.php:30
msgid "August"
msgstr "8 月"

#: includes/globals.php:31
msgid "September"
msgstr "9 月"

#: includes/globals.php:32
msgid "October"
msgstr "10 月"

#: includes/globals.php:33
msgid "November"
msgstr "11 月"

#: includes/globals.php:34
msgid "December"
msgstr "12 月"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "火曜日"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "水曜日"

#: includes/globals.php:42
msgid "Thursday"
msgstr "木曜日"

#: includes/globals.php:43
msgid "Friday"
msgstr "金曜日"

#: includes/globals.php:48
msgid "Jan"
msgstr "1 月"

#: includes/globals.php:49
msgid "Feb"
msgstr "2 月"

#: includes/globals.php:50
msgid "Mar"
msgstr "3 月"

#: includes/globals.php:51
msgid "Apr"
msgstr "4 月"

#: includes/globals.php:53
msgid "Jun"
msgstr "5 月"

#: includes/globals.php:54
msgid "Jul"
msgstr "6 月"

#: includes/globals.php:55
msgid "Aug"
msgstr "7 月"

#: includes/globals.php:56
msgid "Sep"
msgstr "8 月"

#: includes/globals.php:57
msgid "Oct"
msgstr "9 月"

#: includes/globals.php:58
msgid "Nov"
msgstr "10 月"

#: includes/globals.php:59
msgid "Dec"
msgstr "11 月"

#: includes/globals.php:69
msgid "Start Date"
msgstr "開始日"

#: includes/globals.php:74
msgid "Ascending"
msgstr "昇順"

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr ""

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "すみませんが無効なログインです"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "パスワード"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr ""

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr ""

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr ""

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr ""

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr ""

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr ""

#: includes/search.php:87
msgid "Search Results"
msgstr "検索結果"

#: includes/search.php:91
msgid "Date Time"
msgstr "日時"

#: includes/search.php:107
msgid "Phrase"
msgstr "フレーズ"

#: includes/search.php:115
msgid "Sort By"
msgstr "ソート基準"

#: includes/search.php:118
msgid "Order"
msgstr "ソート方向"

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr ""

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr ""

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr ""

#: includes/user_create.php:103
msgid "User already exists."
msgstr ""

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr ""

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr ""

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr ""

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Korean (Korea) (http://www.transifex.com/sproctor/php-calendar/language/ko_KR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ko_KR\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "관리자 계정으로 로그인하셔야 합니다"

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "번역"

#: includes/admin.php:42
msgid "Version"
msgstr "버전"

#: includes/admin.php:55
msgid "Calendar"
msgstr "캘린더"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "편집"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "삭제"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "캘린더 생성"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "캘린더 리스트"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "사용자 이름"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "사용자 생성"

#: includes/admin.php:110
msgid "User List"
msgstr "사용자 목록"

#: includes/admin.php:121
msgid "Import Form"
msgstr "폼 가져오기"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL 호스트 네임"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL 데이터베이스 네임"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL 포트 넘버"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "기본으로 비워둠"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL 유저 네임"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL 유저 패스워드"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar 테이블 접두어"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "옵션"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "확인"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "읽기"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "쓰기"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "읽기만 가능"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "수정"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "관리자"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "사용자 권한"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "사용자 이름"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "읽기전용 생성 권한"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr ""

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr "카테고리 생성"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "캘린더 카테고리"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "이름"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "텍스트 색상"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "배경 색상"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "사용자 그룹에 공개"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr "그룹 생성"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "캘린더 그룹"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "권한 거부됨"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "세팅되었습니다"

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "옵션이 업데이트되었습니다"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "언어"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "시간대"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "환영합니다"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "세팅"

#: includes/calendar.php:453
msgid "Log out"
msgstr "로그아웃"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "로그인"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "이벤트 추가"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "검색"

#: includes/calendar.php:483
msgid "View Month"
msgstr "월별 보기"

#: includes/calendar.php:488
msgid "View date"
msgstr "일별 보기"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "캘린더 관리자"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "기본 설정"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "주 시작일"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "일요일"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "월요일"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "토요일"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24시간표기"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "캘린더 타이틀"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "제목 글자수 제한"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "일별 표시 이벤트수 제한"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "공공 권한"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "이벤트를 읽거나 쓸 수 없습니다"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "이벤트를 읽을 수 있으나 쓸 수 없습니다"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "이벤트를 생성할 수 있으나 수정할 수 없습니다"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "이벤트를 생성하고 수정할 수 있습니다"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "기본 시간대"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "기본 언어"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "데이터 포맷"

#: includes/calendar.php:556
msgid "Theme"
msgstr "테마"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "월-일-년도"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "년도-월-일"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "일-월-년도"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "권한이 없습니다"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "에러"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "잘못된 액션입니다"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "지원하지 않는 config type 입니다"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "인식할 수 없는 기간"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "캘린더를 선택하지 않았습니다"

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "삭제하려면 확인을 클릭하세요"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "확인"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "취소"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "캘린더를 삭제할 권한이 없습니다"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "캘린더 삭제"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "캘린더를 삭제할 수 없습니다"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "생성된 캘린더"

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "카테고리가 선택되지 않았습니다"

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "카테고리를 삭제할 권한이 없습니다"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "삭제된 카테고리입니다"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "카테고리를 삭제할 수 없습니다"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "카테고리 폼"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "그룹에 공개"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "색상을 지정하지 않았습니다"

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "잘못된 색상입니다"

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "카테고리를 모든 캘린더에 추가할 권한이 없습니다"

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "카테고리를 이 캘린더에 추가할 권한이 없습니다"

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "이 카테고리를 수정할 권한이 없습니다"

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "수정된 카테고리"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "생성된 카테고리"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "오류 제출된 카테고리 "

#: includes/display_day.php:45
msgid "Title"
msgstr "타이틀"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "시간"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "설명"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "선택된 항목 삭제"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "해당 일에 이벤트가 없습니다"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "잘못된 변수"

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "이 이벤트를 읽을 권한이 없습니다"

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "에 의해"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "카테고리"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "시간"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "에 생성"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "에 마지막으로 수정됨"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "일정 수정"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "일정 삭제"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "이전 일정"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "다음 일정"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "모든 일정 보기"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "일정 추가"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "에"

#: includes/display_event.php:194
msgid "Remove"
msgstr "삭제"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "일정"

#: includes/display_event.php:228
msgid "from"
msgstr "부터"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "추가 이벤트 보기"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "계속됨"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "이벤트가 선택되지 않았습니다"

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "제거된 이벤트"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "제거된 이벤트"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "이벤트를 제거할 수 없습니다"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "이벤트를 제거할 수 없습니다"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "이벤트를 제거할 권한이 없습니다"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "이벤트를 제거할 권한이 없습니다"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "의 이벤트"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "제목"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "이벤트 시간 변경"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "부터"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "까지"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "시간제"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "일반"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "종일"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "추후 공지"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "반복"

#: includes/event_form.php:68
msgid "Never"
msgstr "반복하지 않음"

#: includes/event_form.php:70
msgid "Daily"
msgstr "일간"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "주간"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "월간"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "연간"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "모든"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "며칠간 반복하시겠습니까?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "까지"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "몇주간 반복하시겠습니까?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "몇달간 반복하시겠습니까?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "몇년간 반복하시겠습니까?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "이벤트 승인"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "인식할 수 없는 시간제입니다"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "이벤트의 종료시는 시작시보다 빠를 수 없습니다"

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "이 캘린더에 일정을 추가할 권한이 없습니다"

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "필수 항목 \"every-day\" 가 설정되지 않았습니다"

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "every-day 는 1보다 큰 값으로 설정되어야 합니다"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "필수 항목 \"every-week\" 가 설정되지 않았습니다"

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "every-week 는 1보다 큰 값으로 설정되어야 합니다"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "필수 항목 \"every-month\" 가 설정되지 않았습니다"

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "every-month 는 1보다 큰 값으로 설정되어야 합니다"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "필수 항목 \"every-year\" 가 설정되지 않았습니다"

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "잘못된 이벤트 타입"

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "수정된 이벤트: "

#: includes/event_form.php:425
msgid "Created event: "
msgstr "생성된 이벤트: "

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "오류 제출된 이벤트"

#: includes/form.php:32
msgid "required"
msgstr "필수"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "폼이 아닌 요소를 폼에 추가할 수 없습니다"

#: includes/form.php:428
msgid "Date"
msgstr "날짜"

#: includes/globals.php:23
msgid "January"
msgstr "1월"

#: includes/globals.php:24
msgid "February"
msgstr "2월"

#: includes/globals.php:25
msgid "March"
msgstr "3월"

#: includes/globals.php:26
msgid "April"
msgstr "4월"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "5월"

#: includes/globals.php:28
msgid "June"
msgstr "6월"

#: includes/globals.php:29
msgid "July"
msgstr "7월"

#: includes/globals.php:30
msgid "August"
msgstr "8월"

#: includes/globals.php:31
msgid "September"
msgstr "9월"

#: includes/globals.php:32
msgid "October"
msgstr "10월"

#: includes/globals.php:33
msgid "November"
msgstr "11월"

#: includes/globals.php:34
msgid "December"
msgstr "12월"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "화요일"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "수요일"

#: includes/globals.php:42
msgid "Thursday"
msgstr "목요일"

#: includes/globals.php:43
msgid "Friday"
msgstr "금요일"

#: includes/globals.php:48
msgid "Jan"
msgstr "1월"

#: includes/globals.php:49
msgid "Feb"
msgstr "2월"

#: includes/globals.php:50
msgid "Mar"
msgstr "3월"

#: includes/globals.php:51
msgid "Apr"
msgstr "4월"

#: includes/globals.php:53
msgid "Jun"
msgstr "6월"

#: includes/globals.php:54
msgid "Jul"
msgstr "7월"

#: includes/globals.php:55
msgid "Aug"
msgstr "8월"

#: includes/globals.php:56
msgid "Sep"
msgstr "9월"

#: includes/globals.php:57
msgid "Oct"
msgstr "10월"

#: includes/globals.php:58
msgid "Nov"
msgstr "11월"

#: includes/globals.php:59
msgid "Dec"
msgstr "12월"

#: includes/globals.php:69
msgid "Start Date"
msgstr "시작일"

#: includes/globals.php:74
msgid "Ascending"
msgstr "오름차순"

#: includes/globals.php:75
msgid "Descending"
msgstr "내림차순"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "그룹이 선택되지 않았습니다"

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "그룹을 삭제할 권한이 없습니다"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "그룹 삭제"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "그룹을 삭제할 수 없습니다"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "그룹 폼"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "전역 그룹을 추가할 권한이 없습니다"

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "이 캘린더에 그룹을 추가할 권한이 없습니다"

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "이 그룹을 수정할 권한이 없습니다"

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "수정된 그룹: "

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "생성된 그룹: "

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "오류 제출된 그룹"

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "관리자 권한 필요"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "선택한 이벤트 가져오는 중 오류발생"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "%s 개의 일정과 함께 %s 개 이벤트 생성"

#: includes/login.php:39
msgid "Logged in."
msgstr "로그인됨"

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "죄송합니다, 잘못된 로그인입니다"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "로그인하기 위해 인터넷 브라우저의 쿠키 설정을 허용해야 합니다"

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "패스워드"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "로그아웃합니다"

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "일정 폼"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "일정 승인"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "일정을 생성할 수 없습니다"

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID가 설정되지 않았습니다"

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "수정된 일정: "

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "생성된 일정: "

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "오류 제출된 일정"

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "일정이 선택되지 않았습니다"

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "제거된 일정"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "제거된 일정"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "일정을 제거할 수 없습니다"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "일정을 제거할 수 없습니다"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "일정을 제거할 권한이 없습니다"

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "일정을 제거할 권한이 없습니다"

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "로그인해야 합니다"

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "패스워드를 수정할 권한이 없습니다"

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "이전 패스워드를 제출해야 합니다"

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "입력한 패스워드가 이전 패스워드와 일치하지 않습니다"

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "패스워드를 지정해야 합니다"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "패스워드가 일치하지 않습니다"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "패스워드가 변경되었습니다"

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "이벤트가 존재하지 않습니다"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "이벤트를 제거하는 중 오류가 발생했습니다"

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "일정을 제거하는 중 오류가 발생했습니다"

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "캘린더를 제거하는 중 오류가 발생했습니다"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "카테고리를 제거하는 중 오류가 발생했습니다"

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "그룹을 제거하는 중 오류가 발생했습니다"

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "제거 중 오류가 발생했습니다"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "권한을 읽을 수 없습니다"

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "캘린더를 가져올 수 없습니다"

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "사용자를 가져올 수 없습니다"

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "사용자 가져오기 오류"

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "사용자 생성 오류"

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "읽기 옵션 오류"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "옵션 생성 오류"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "패스워드 업데이트 오류"

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "시간대 업데이트 오류"

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "언어 업데이트 오류"

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "이벤트 생성 오류"

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "일정 생성 오류"

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "일정 수정 오류"

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "이벤트 수정 오류"

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "카테고리 생성 오류"

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "그룹 생성 오류"

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "카테고리 수정 오류"

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "그룹 수정 오류"

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "검색중 오류"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "사용자 권한 업데이트 오류"

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "로그인 토큰 가져오기 오류"

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "로그인 토큰 추가 오류"

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "로그인 토큰 업데이트 오류"

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "로그인 토큰 제거 오류"

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "로그인 토큰 클리닝 오류"

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr ""

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "알 수 없음"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB가 잘못된 데이터를 반환했습니다"

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "까지"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "잘못된 정렬 옵션"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "잘못된 순서 옵션"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "검색 기준에 맞는 이벤트가 없습니다"

#: includes/search.php:87
msgid "Search Results"
msgstr "검색 결과"

#: includes/search.php:91
msgid "Date Time"
msgstr "날짜 시간"

#: includes/search.php:107
msgid "Phrase"
msgstr "문단"

#: includes/search.php:115
msgid "Sort By"
msgstr "정렬"

#: includes/search.php:118
msgid "Order"
msgstr "순서"

#: includes/settings.php:52
msgid "Change Password"
msgstr "패스워드 재설정"

#: includes/settings.php:61
msgid "Old Password"
msgstr "이전 패스워드"

#: includes/settings.php:64
msgid "New Password"
msgstr "새로운 패스워드"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "새로운 패스워드 확인"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "설정이 업데이트되었습니다"

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "당신의 계정에 해킹 시도가 가능합니다"

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "기간을 벗어났습니다"

#: includes/setup.php:195
msgid "Invalid year"
msgstr "잘못된 년도"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "패스워드 확인"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "관리자 권한 부여"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "사용자 이름을 지정해야 합니다"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "사용자가 이미 존재합니다"

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "사용자를 삭제하려면 관리자 권한이 필요합니다"

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "사용자가 선택되지 않았습니다"

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "사용자 없음"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "변경 사항이 없습니다"

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "업데이트 된 사용자"

#: includes/util.php:75
msgid "continue"
msgstr "계속"

#: includes/util.php:157
msgid "Software Error"
msgstr "소프트웨어 에러"

#: includes/util.php:158
msgid "Message:"
msgstr "메시지:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Algimantas Stancelis <algimantas@impresspages.org>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Lithuanian (http://www.transifex.com/sproctor/php-calendar/language/lt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: lt\n"
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr ""

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr "Versija"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Kalendorius"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Veiksmas"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Redaguoti"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Trinti"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr ""

#: includes/admin.php:74
msgid "Calendar List"
msgstr ""

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Vartotojo vardas"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Sukurti vartotoją"

#: includes/admin.php:110
msgid "User List"
msgstr "Vartotojų sąrašas"

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "Nustatymai"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr ""

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr ""

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr ""

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr ""

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr ""

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Administratorius"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr ""

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Vartotojo vardas"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr ""

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr ""

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Sukurti kategoriją"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr ""

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr ""

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr ""

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr ""

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Sukurti grupę"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr ""

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr ""

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr ""

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr ""

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr ""

#: includes/calendar.php:475
msgid "Add Event"
msgstr ""

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr ""

#: includes/calendar.php:483
msgid "View Month"
msgstr ""

#: includes/calendar.php:488
msgid "View date"
msgstr ""

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr ""

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr ""

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr ""

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr ""

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr ""

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr ""

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr ""

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr ""

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr ""

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr ""

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr ""

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr ""

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr ""

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr ""

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr ""

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr ""

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr ""

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr ""

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Patvirtinti"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr ""

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr ""

#: includes/category_delete.php:29
msgid "No category selected."
msgstr ""

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr ""

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr ""

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr ""

#: includes/category_form.php:27
msgid "Category Form"
msgstr ""

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr ""

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr ""

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr ""

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr ""

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr ""

#: includes/display_day.php:111
msgid "No events on this day."
msgstr ""

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr ""

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr ""

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr ""

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr ""

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr ""

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr ""

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr ""

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr ""

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr ""

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr ""

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr ""

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr ""

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr ""

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr ""

#: includes/event_form.php:72
msgid "Weekly"
msgstr ""

#: includes/event_form.php:74
msgid "Monthly"
msgstr ""

#: includes/event_form.php:76
msgid "Yearly"
msgstr ""

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr ""

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr ""

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr ""

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr ""

#: includes/event_form.php:129
msgid "Submit Event"
msgstr ""

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr ""

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr ""

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr ""

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr ""

#: includes/globals.php:24
msgid "February"
msgstr ""

#: includes/globals.php:25
msgid "March"
msgstr ""

#: includes/globals.php:26
msgid "April"
msgstr ""

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr ""

#: includes/globals.php:28
msgid "June"
msgstr ""

#: includes/globals.php:29
msgid "July"
msgstr ""

#: includes/globals.php:30
msgid "August"
msgstr ""

#: includes/globals.php:31
msgid "September"
msgstr ""

#: includes/globals.php:32
msgid "October"
msgstr ""

#: includes/globals.php:33
msgid "November"
msgstr ""

#: includes/globals.php:34
msgid "December"
msgstr ""

#: includes/globals.php:40
msgid "Tuesday"
msgstr ""

#: includes/globals.php:41
msgid "Wednesday"
msgstr ""

#: includes/globals.php:42
msgid "Thursday"
msgstr ""

#: includes/globals.php:43
msgid "Friday"
msgstr ""

#: includes/globals.php:48
msgid "Jan"
msgstr ""

#: includes/globals.php:49
msgid "Feb"
msgstr ""

#: includes/globals.php:50
msgid "Mar"
msgstr ""

#: includes/globals.php:51
msgid "Apr"
msgstr ""

#: includes/globals.php:53
msgid "Jun"
msgstr ""

#: includes/globals.php:54
msgid "Jul"
msgstr ""

#: includes/globals.php:55
msgid "Aug"
msgstr ""

#: includes/globals.php:56
msgid "Sep"
msgstr ""

#: includes/globals.php:57
msgid "Oct"
msgstr ""

#: includes/globals.php:58
msgid "Nov"
msgstr ""

#: includes/globals.php:59
msgid "Dec"
msgstr ""

#: includes/globals.php:69
msgid "Start Date"
msgstr ""

#: includes/globals.php:74
msgid "Ascending"
msgstr ""

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr ""

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr ""

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Slaptažodis"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr ""

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr ""

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr ""

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr ""

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr ""

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr ""

#: includes/search.php:87
msgid "Search Results"
msgstr ""

#: includes/search.php:91
msgid "Date Time"
msgstr ""

#: includes/search.php:107
msgid "Phrase"
msgstr ""

#: includes/search.php:115
msgid "Sort By"
msgstr ""

#: includes/search.php:118
msgid "Order"
msgstr ""

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr ""

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr ""

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr ""

#: includes/user_create.php:103
msgid "User already exists."
msgstr ""

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr ""

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr ""

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr ""

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Jimmy Tork <transifex@mudkips.nl>, 2013-2014
# Jimmy Tork <transifex@mudkips.nl>, 2013
# Vivianneb <vjm.daniels@gmail.com>, 2014
# Vivianneb <vjm.daniels@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Dutch (http://www.transifex.com/sproctor/php-calendar/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Je dient ingelogd te zijn als administrator."

#: includes/admin.php:33
msgid "Calendars"
msgstr "Kalenders"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Gebruikers"

#: includes/admin.php:37
msgid "Import"
msgstr "Importeer"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Vertaal"

#: includes/admin.php:42
msgid "Version"
msgstr "Versie"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Kalender"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Actie"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Wijzig"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Verwijder"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Maak kalender"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Kalenderlijst"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "naam gebruiker"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Groepen"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Edit Groepen"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Maak gebruiker aan"

#: includes/admin.php:110
msgid "User List"
msgstr "Gebruikerslijst"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Importeer formulier"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MYSQL Host naam"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MYSQL Database naam"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MYSQL Poort nummer"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Laat leeg voor standaard"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MYSQL Gebruikersnaam"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MYSQL Gebruikerswachtwoord"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar Tabel voorzetsel"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Importeer Kalender"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "Dit script heeft lees rechten van de kalender directory nodig  om de vertaling files te overschrijven, je kan de translate.php vanuit de command line starten of msgfmt of elke andere gettext tool gebruiken die .mo files van .po files kan genereren."

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "Maak de Vertalingen aan"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "Kalender Configuratie"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "Categorieen"

#: includes/cadmin.php:68
msgid "Options"
msgstr "opties"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Verstuur"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Lezen"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Schrijven"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Allen lezen"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "wijzigen"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Administrator"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Gebruikersbevoegdheden"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Gebruikersnaam"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Kan alleen-lezen aanmaken"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Geen naam"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Geen"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Maak categorie"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Kalendercategoriën"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Naam"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Tekstkleur"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Achtergrondkleur"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Zichtbaar voor gebruikersgroep"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Acties"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Maak groep"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Kalendergroepen"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "geen toestimming gekregen"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "is niet ingesteld."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "update opties"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Taal"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Tijdzone"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Welkom"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Instellingen"

#: includes/calendar.php:453
msgid "Log out"
msgstr "doei zeggen"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "inloggen"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Voeg gebeurtenis toe"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Zoeken"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Laat de maand zien"

#: includes/calendar.php:488
msgid "View date"
msgstr "datum laten zien"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Kalenderbeheer"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Standaard"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Begin van de week"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "zondag"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "maandag"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "zaterdag"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "Tijd in 24-uurs weergave"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Kalender voor 55plus activiteiten"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Maximale lengte van onderwerp"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Maximaal aantal gebeurtenissen weer te geven per dag"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Publiekelijke bevoegdheden"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Kan geen gebeurtenissen lezen of schrijven"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Kan gebeurtenissen lezen maar niet schrijven"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Kan gebeurtenissen aanmaken maar niet bewerken"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Kan gebeurtenissen aanmaken en bewerken"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Standaard tijdzone"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Standaardtaal"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Datum lay-out"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Thema"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Maand Dag Jaar"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Jaar Maand Dag"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Dag Maand Jaar"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Je hebt geen bevoegdheden dit uit te voeren:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Fout"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Traceren"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "ongeldige actie"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Geheime token klopt niet."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Niet-ondersteunde configuratietype"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "Vereiste veld \"%s\" is niet ingesteld."

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "Ongeldige \"%s\" tijd: \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Niet herkende periode:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "Ongeldige \"%s\" datum: \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "Invalide date_format."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Geen kalender geselecteerd"

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Bevestig dat je wilt verwijderen:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Bevestig"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Weiger"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Je hebt geen bevoegdheden om de kalender te verwijderen"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Verwijderde kalender"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Je kon de kalender niet verwijderen"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Kalender aangemaakt."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Geen categorie geselecteerd."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Je hebt geen bevoegdheden om deze categorie te verwijderen:"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Verwijderde categorie:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Kon deze categorie niet verwijderen:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Categorieformulier"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Zichtbaar voor groepen"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "Voeg Categorie toe"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Kleur niet gespecificeerd."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Ongeldige kleur"

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Je hebt geen toestemming om categorieën aan alle kalenders toe te voegen."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Je hebt geen toestemming om categorieën aan deze kalender toe te voegen."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Je hebt geen toestemming om deze categorie te wijzigen."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Gewijzigde categorie:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Categorie gecreëerd:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Fout tijdens versturen van categorie."

#: includes/display_day.php:45
msgid "Title"
msgstr "Titel"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "tijd"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "omschrijving"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "gekozen termijn wissen"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "vandaag geen termijn"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Ongeldige argumenten."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Je hebt geen bevoegdheid om deze gebeurtenis te lezen."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "door"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Categorie"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Wanneer"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Gemaakt op:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Laatst gewijzigd op:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Wijzig gebeurtenis"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Verwijder gebeurtenis"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Vorige gebeurtenis op"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Volgende gebeurtenis op"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Bekijk alle gebeurtenissen"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Voeg gebeurtenis toe"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "op"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Verwijderen"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Gebeurtenissen"

#: includes/display_event.php:228
msgid "from"
msgstr "van"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "W"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Bekijk extra gebeurtenissen"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "vervolgd"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "Invalide datum."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Geen gebeurtenis geselecteerd."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Gebeurtenis verwijderd"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Gebeurtenissen verwijderd"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Kon gebeurtenis niet verwijderen"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Kon gebeurtenissen niet verwijderen"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Je hebt geen bevoegdheden om de gebeurtenis te verwijderen"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Je hebt geen bevoegdheden om de gebeurtenissen te verwijderen"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Gebeurtenisformulier"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "betref"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Verander de datum en tijd van evenement"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "van"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "aan"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Tijdstype"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "normaal"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Volledige dag"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Wordt nog aangekondigd"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Herhalingen"

#: includes/event_form.php:68
msgid "Never"
msgstr "Nooit"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Dagelijks"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "wekelijks"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Maandelijks"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Jaarlijks"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Iedere"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Herhaal om de hoeveel dagen?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Tot"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Herhaal om de hoeveel weken?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Herhaal om de hoeveel maanden?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Herhaal om de hoeveel jaar?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Verstuur gebeurtenis"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Tijdstype niet herkend."

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "Een gebeurtenis kan niet eerder eindigen dan het begon."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Je hebt geen bevoegdheden om deze kalender te beschrijven."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Vereist veld 'iedere dag' is niet ingesteld."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "'iedere dag' moet groter zijn dan 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Vereist veld 'iedere week' is niet ingesteld."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "'iedere week' moet groter zijn dan 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Vereist veld 'iedere maand' is niet ingesteld."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "'iedere maand' moet groter zijn dan 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Vereist veld 'ieder jaar' is niet ingesteld."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Ongeldig gebeurtenistype."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Gewijzigde gebeurtenis:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Gebeurtenis gemaakt:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Fout tijdens versturen van gebeurtenis."

#: includes/form.php:32
msgid "required"
msgstr "vereist"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Kan geen niet-formulier-element toevoegen aan formulier."

#: includes/form.php:428
msgid "Date"
msgstr "Datum"

#: includes/globals.php:23
msgid "January"
msgstr "januari"

#: includes/globals.php:24
msgid "February"
msgstr "februari"

#: includes/globals.php:25
msgid "March"
msgstr "maart"

#: includes/globals.php:26
msgid "April"
msgstr "april"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "mei"

#: includes/globals.php:28
msgid "June"
msgstr "juni"

#: includes/globals.php:29
msgid "July"
msgstr "juli"

#: includes/globals.php:30
msgid "August"
msgstr "augustus"

#: includes/globals.php:31
msgid "September"
msgstr "september"

#: includes/globals.php:32
msgid "October"
msgstr "oktober"

#: includes/globals.php:33
msgid "November"
msgstr "november"

#: includes/globals.php:34
msgid "December"
msgstr "december"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "dinsdag"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "woensdag"

#: includes/globals.php:42
msgid "Thursday"
msgstr "donderdag"

#: includes/globals.php:43
msgid "Friday"
msgstr "vrijdag"

#: includes/globals.php:48
msgid "Jan"
msgstr "jan"

#: includes/globals.php:49
msgid "Feb"
msgstr "feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "mrt"

#: includes/globals.php:51
msgid "Apr"
msgstr "apr"

#: includes/globals.php:53
msgid "Jun"
msgstr "jun"

#: includes/globals.php:54
msgid "Jul"
msgstr "jul"

#: includes/globals.php:55
msgid "Aug"
msgstr "aug"

#: includes/globals.php:56
msgid "Sep"
msgstr "sep"

#: includes/globals.php:57
msgid "Oct"
msgstr "okt"

#: includes/globals.php:58
msgid "Nov"
msgstr "nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "dec"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Begindatum"

#: includes/globals.php:74
msgid "Ascending"
msgstr "stijgend"

#: includes/globals.php:75
msgid "Descending"
msgstr "Aflopen"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Geen groep geselecteerd."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Je hebt geen bevoegdheden om de groep te verwijderen:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Verwijderde groep:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Kon deze groep niet verwijderen:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Groepformulier"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "Voeg Groep toe"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Je hebt geen bevoegdheden om een globale groep toe te voegen."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Je hebt geen bevoegdheden om een groep aan deze kalender toe te voegen."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Je hebt geen bevoegdheden om deze groep te wijzigen."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Gewijzigde groep:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Groep gecreëerd:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Fout tijdens versturen van groep."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Moet administrator zijn"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Fout tijdens het selecteren van evenementen om te importeren"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "%s evenementen met %s gebeurtenissen gemaakt"

#: includes/login.php:39
msgid "Logged in."
msgstr "Ingelogd."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "sorry, foutieve aanmelding"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Je moet cookies hebben geactiveerd om in te loggen."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Wachtwoord"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Uitloggen."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Gebeurtenissenformulier"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Voeg gebeurtenis toe"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Kon gebeurtenis niet maken."

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID niet ingesteld."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Gebeurtenis gewijzigd:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Gebeurtenis aangemaakt:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Fout tijdens versturen van gebeurtenis."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Geen gebeurtenis geselecteerd."

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Gebeurtenis verwijderd"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Gebeurtenissen verwijderd"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Kon gebeurtenis niet verwijderen"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Kon gebeurtenissen niet verwijderen"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Je hebt geen bevoegdheden om de gebeurtenis te verwijderen."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Je hebt geen bevoegdheden om de gebeurtenissen te verwijderen."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Je moet ingelogd zijn."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Je hebt geen toestemming om je wachtwoord aan te passen."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Je moet je oude wachtwoord invullen."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Het wachtwoord dat je ingevuld hebt is niet gelijk aan je oude wachtwoord."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Je moet een wachtwoord invullen"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Je wachtwoorden zijn niet gelijk"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Wachtwoord geüpdatet."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Geen titel)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Fout in get_occurences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Fout in get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Gebeurtenis bestaat niet"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Fout in get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Gebeurtenis met oid bestaat niet"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Fout in get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Categorie met catid bestaat niet"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Fout in get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Groep met gid bestaat niet"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Fout in get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Fout in get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Fout in get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Fout in get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Fout in get_occurence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Fout in get_occurences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Fout tijdens het verwijderen van gebeurtenis."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Fout tijdens het verwijderen van een gebeurtenis."

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Fout tijdens het verwijderen van een kalender"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Fout tijdens het verwijderen van categorie."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Fout tijdens het verwijderen van groep."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Fout tijdens het verwijderen"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Kon bevoegdheden niet lezen."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Kon kalenders niet bemachtigen"

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Kon gebruiker niet bemachtigen."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Fout tijdens het verkrijgen van gebruiker."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Fout tijdens het maken van gebruiker."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Fout tijdens het uitlezen van opties"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Fout tijdens het aanmaken van opties"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Fout tijdens het updaten van wachtwoord."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Fout tijdens updaten van tijdzone."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Fout tijdens het updaten van de taal."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "Error groep toevoegen aan gebruiker."

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "Error weghalen groep van gebruiker."

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Fout tijdens het maken van evenement."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Fout tijdens het maken van gebeurtenis."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Fout tijdens het bewerken van gebeurtenis."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Fout tijdens het bewerken van evenement."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Fout tijdens het maken van categorie."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Fout tijdens het maken van groep."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Fout tijdens het bewerken van categorie."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Fout tijdens het bewerken van groep."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Fout tijdens het zoeken"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Fout tijdens het updaten van gebruikersbevoegdheden."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Fout tijdens het verkrijgen van het logintoken."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Error toevoegen login token."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Error updaten login token."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Error weghalen login token."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Error leeghalen login token."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL query"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anoniem"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "onbekend"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Geen onderwerp)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB geeft een invalide datum terug."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "tot"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Invalide sorteer optie"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Invalide volgorde optie"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Geen evenementen gevonden overeenkomstig met de zoek criteria."

#: includes/search.php:87
msgid "Search Results"
msgstr "Zoek Resultaten"

#: includes/search.php:91
msgid "Date Time"
msgstr "Datum Tijd"

#: includes/search.php:107
msgid "Phrase"
msgstr "phrase"

#: includes/search.php:115
msgid "Sort By"
msgstr "sorteren naar"

#: includes/search.php:118
msgid "Order"
msgstr "volgorde"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Verander Wachtwoord"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Oud Wachtwoord"

#: includes/settings.php:64
msgid "New Password"
msgstr "Nieuw Wachtwoord"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Bevestig Nieuw Wachtwoord"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Settings geupdate."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Mogelijke hack poging op uw account."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Maand is buiten het bereik."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Verkeerd jaar"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Vertaald \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Bevestig wachtwoord"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Maak administator"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Je moet een gebruikersnaam invullen"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Gebruiker bestaat al."

#: includes/user_create.php:113
msgid "Added user."
msgstr "gebruiker aangemaakt"

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Je moet een admin zijn om gebruikers te verwijderen."

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Geen gebruiker geselecteerd."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "Edit Gebruikers Groepen"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "Groepen geüpdatet."

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Geen gebruikers"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Geen veranderingen om door te voeren."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Geüpdatete gebruiker(s):"

#: includes/util.php:75
msgid "continue"
msgstr "doorgaan"

#: includes/util.php:157
msgid "Software Error"
msgstr "Software Error"

#: includes/util.php:158
msgid "Message:"
msgstr "Bericht:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Dagfinn Glad <dagfinn.glad@online.no>, 2015
# lindquist <macbackpain@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2017-09-23 20:46+0000\n"
"Last-Translator: Dagfinn Glad <dagfinn.glad@online.no>\n"
"Language-Team: Norwegian (http://www.transifex.com/sproctor/php-calendar/language/no/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: no\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Du m&aring; v&aelig;re logget inn som admin."

#: includes/admin.php:33
msgid "Calendars"
msgstr "Kalendre"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Brukere"

#: includes/admin.php:37
msgid "Import"
msgstr "Importer"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Oversett"

#: includes/admin.php:42
msgid "Version"
msgstr "Versjon"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Kalender"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Handling"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Rediger"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Slett"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Opprett kalender"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Kalenderliste"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Brukernavn"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Grupper"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Rediger grupper"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Opprett bruker"

#: includes/admin.php:110
msgid "User List"
msgstr "Brukerliste"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Importer skjema"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL Vertsnavn"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL Databasenavn"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL Portnummer"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "La st&aring; tom for standard"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL Brukernavn"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL Passord"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar tabell prefiks"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Importer kalender"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "Dette script har m&aring; ha skrivetilgang til din kalendermappe for &aring; kunne skrive oversettelsesfilene. Alternativt kan du kj&oslash;re translate.php fra kommandlinjen eller bruke msgfmt eller et annet gettext verkt&oslash;y som kan generere .mo filer fra .po filer."

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "Generer oversettelser"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "Kalender konfigurasjon"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "Kategorier"

#: includes/cadmin.php:68
msgid "Options"
msgstr "Innstillinger"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Arkiver"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Les"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Skriv"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Skrivebeskyttet"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Rediger"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Administrator"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Brukerrettigheter"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Brukernavn"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Kan opprette skrivebeskyttede"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Ikke navngitt"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Ingen"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Opprett kategori"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Kalender kategorier"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Navn"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Tekstfarge"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Bakgrunnsfarge"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Synlig for brukergruppe"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Handlinger"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Opprett gruppe"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Kalendergrupper"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Adgang nektet"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "var ikke satt."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Oppdaterte innstillinger"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Spr&aring;k"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Tidssone"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Velkommen"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Innstillinger"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Logg ut"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Logg inn"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Legg til begivenhet"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "S&oslash;k"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Vis m&aring;ned"

#: includes/calendar.php:488
msgid "View date"
msgstr "Vis dato"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Kalender-admin"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Standard"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Uken starter"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "S&oslash;ndag"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Mandag"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "L&oslash;rdag"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24 timers klokke"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Kalendertittel"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Max emnelengde"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Daglig max for begivenhetsvisning"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Offentlig adgang"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Kan hverken lese eller skrive begivenheter"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Kan lese, men ikke skrive begivenheter"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Kan opprette, men ikke redigere begivenheter"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Kan opprette og redigere begivenheter"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Standard tidssone"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Standard spr&aring;k"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Datoformat"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Tema"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "M&aring;ned Dag &Aring;r"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "&Aring;r M&aring;ned Dag"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Dag M&aring;ned &Aring;r"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Du har ikke rettigheter til denne handling:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Feil"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Spor bakover"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Ugyldig handling"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Hemmelig token uoverensstemmelse. Mulig fors&oslash;k p&aring; foresp&oslash;rselsforfalskning."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Ikke st&oslash;ttet config type"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "P&aring;krved felt \"%s\" ble ikke satt."

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "Misdannet \"%s\" tid: \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Periode ikke gjenkjent:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "Misdannet \"%s\" dato: \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "Ugyldig date_format."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Ingen kalender valgt."

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Bekreft slettning:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Bekreft"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Nekt"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Du har ikke rettigheter til &aring; fjerne kalender"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Fjernede kalendre"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Kunne ikke fjerne kalender"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Kalender opprettet."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Ingen kategori valgt."

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Du har ikke rettigheter til &aring; slette kategorien:"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Slettede kategorier:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Kunne ikke fjerne kategori:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Kategoriskjema"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Synlig for grupper"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "Lagre kategori"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Farge ikke spesifisert."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Ugyldig farge."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Du har ikke rettigheter til &aring; tilf&oslash;je kategorier til alle kalendere."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Du har ikke rettigheter til &aring; legge til kategorier til denne kalender."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Du har ikke rettigheter til &aring; endre denne kategori."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Enndrede kategorier:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Oprettede kategorier:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Feil, kunne ikke lagre kategori."

#: includes/display_day.php:45
msgid "Title"
msgstr "Tittel"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Tid"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Beskrivelse"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Slett valgte"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Ingen begivenheter denne dagen."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Ugyldige argumenter."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Du har ikke rettigheter til &aring; lese denne begivenhet."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "av"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Kategori"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "N&aring;r"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Oprettet:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Sist endret:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Rediger forekomst"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Slett forekomst"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Forrige forekomst p&aring;"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Neste forekomst p&aring;"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Vis alle forekomster"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Legg til forekomst"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "-"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Fjern"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Forekomster"

#: includes/display_event.php:228
msgid "from"
msgstr "fra"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "U"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Vis ytterligere begivenheter"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "fortsatt"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "Ugyldig dato."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Ingen begivenhet valgt."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Fjernet begivenhet"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Fjernede begivenheter"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Kunne ikke fjerne begivenhet"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Kunne ikke fjerne begivenheter"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Du har ikke rettigheter til &aring; fjerne begivenhet"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Du har ikke rettigheter til &aring; fjerne begivenheter"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Begivenhetskjema"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Emne"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Rediger begivenhetens dato og tidspunkt"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Fra"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Til"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Tidstype"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normal"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Hele dagen"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Ikke opplyst enda"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Gjentas"

#: includes/event_form.php:68
msgid "Never"
msgstr "Aldri"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Daglig"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Ukentlig"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "M&aring;nedlig"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "&Aring;rlig"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Hver"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Gjenta med hvor mange dagers mellomrom?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Inntil"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Gjenta med hvor mange ukers mellomrom?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Gjenta med hvor mange m&aring;neders mellomrom?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Gjenta med hvor mange &aring;rs mellomrom?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Lagre begivenhet"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Tidstype ikke gjenkjent."

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "En begivenhet kan ikke slutte f&oslash;r den begynner."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Du har ikke rettigheder til &aring; skrive til denne kalender."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "P&aring;krevd felt \"hver-dag\" er ikke utfylt."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "hver-dag skal v&aelig;re st&oslash;rre enn 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "P&aring;kreved felt \"hver-uke\" er ikke utfylt."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "hver-uke skal v&aelig;re st&oslash;rre enn 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "P&aring;krevd felt \"hver-m&aring;ned\" er ikke utfylt."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "hver-m&aring;ned skal v&aelig;re st&oslash;rre enn 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "P&aring;krevd felt \"hvert-&aring;r\" er ikke utfylt."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Ugyldig begivenhetstype."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Endrede begivenheter:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Oprettet begivenhet:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Feil, kunne ikke lagre begivenhet."

#: includes/form.php:32
msgid "required"
msgstr "p&aring;krevd"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Kan ikke legge til et ikke-skjema element til en skjema."

#: includes/form.php:428
msgid "Date"
msgstr "Dato"

#: includes/globals.php:23
msgid "January"
msgstr "Januar"

#: includes/globals.php:24
msgid "February"
msgstr "Februar"

#: includes/globals.php:25
msgid "March"
msgstr "Mars"

#: includes/globals.php:26
msgid "April"
msgstr "April"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Mai"

#: includes/globals.php:28
msgid "June"
msgstr "Juni"

#: includes/globals.php:29
msgid "July"
msgstr "Juli"

#: includes/globals.php:30
msgid "August"
msgstr "August"

#: includes/globals.php:31
msgid "September"
msgstr "September"

#: includes/globals.php:32
msgid "October"
msgstr "Oktober"

#: includes/globals.php:33
msgid "November"
msgstr "November"

#: includes/globals.php:34
msgid "December"
msgstr "Desember"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Tirsdag"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Onsdag"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Torsdag"

#: includes/globals.php:43
msgid "Friday"
msgstr "Fredag"

#: includes/globals.php:48
msgid "Jan"
msgstr "Jan"

#: includes/globals.php:49
msgid "Feb"
msgstr "Feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mar"

#: includes/globals.php:51
msgid "Apr"
msgstr "Apr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Jun"

#: includes/globals.php:54
msgid "Jul"
msgstr "Jul"

#: includes/globals.php:55
msgid "Aug"
msgstr "Aug"

#: includes/globals.php:56
msgid "Sep"
msgstr "Sep"

#: includes/globals.php:57
msgid "Oct"
msgstr "Okt"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "Des"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Startdato"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Stigende"

#: includes/globals.php:75
msgid "Descending"
msgstr "Synkende"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Ingen gruppe valgt."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Du har ikke rettigheter til &aring; slette gruppe:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Fjernet gruppe:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Kunne ikke fjerne gruppe:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Gruppeskjema"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "Lagre gruppe"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Du har ikke rettigheter til &aring; legg til en global gruppe."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Du har ikke rettigheter til &aring; legge til en gruppe til denne kalender."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Du har ikke rettigheter til &aring; endre denne gruppe."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Endret gruppe:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Oprettet gruppe:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Feil, kunne ikke lagre gruppe."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "N&oslash;dt til &aring; v&aelig;re administrator"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Feil ved valg av begivenheter under import"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Oprettet %s begivenheter med %s forekomster"

#: includes/login.php:39
msgid "Logged in."
msgstr "Logget inn."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Beklager, ugyldig logginn"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Du m&aring; ha cookies sl&aring;tt p&aring; for &aring; logge inn."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Passord"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Logger ut…"

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Forekomstskjema"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Lagre forekomst"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Kan ikke opprette forekomst."

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID ikke satt."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Endret forekomst:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Opprettet forekomst:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Feil, kunne ikke lagre forekomst."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Ingen forekomst valgt."

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Fjernet forekomst"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Fjernede forekomster"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Kunne ikke fjerne forekomst"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Kunne ikke fjerne forekomster"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Du har ikke rettigheter til &aring; fjerne forekomsten."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Du har ikke rettigheter til &aring; fjerne forekomster."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Du m&aring; v&aelig;re logget inn."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Du har ikke rettigheter til &aring; endre ditt passord."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Du m&aring; oppgi ditt gamle passord."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Passordet du oppga var ikke ditt gamle passord."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Du m&aring; oppgi et passord"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Dine passord  var ikke like"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Passord oppdatert."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Ingen tittel)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Feil i get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Feil i get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Begivenhet eksisterer ikke"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Feil i get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Begivenhet eksisterer ikke med oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Feil i get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Kategori eksisterer ikke med catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Feil i get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Gruppe eksisterer ikke med gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Feil i get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Feil i get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Feil i get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Feil i get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Feil i get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Feil i get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Feil ved sletting av begivenhet."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Feil ved sletting av forekomst."

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Feil ved sletting av kalender"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Feil ved sletting av kategori."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Feil ved sletting av gruppe."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Feil ved sletting"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Kunne ikke lese rettigheter."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Kunne ikke hente kalendre."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Kunne ikke hente bruker."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Feil ved lesing av bruker."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Feil ved opprettelse av bruker."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Feil ved lesing av innstillinger"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Feil ved opprettelse av innstillinger"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Feil ved oppdatering av passord."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Feil ved oppdatering av tidssone."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Feil ved oppdatering av spr&aring;k."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "Feil, kunne ikke legge gruppe til bruker."

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "Feil, kunne ikke fjerne gruppe fra bruker."

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Feil ved opprettelse av begivenhet."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Feil ved opprettelse av forekomst."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Feil ved endring av forekomst."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Feil ved endring av begivenhet."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Feil ved opprettelse av kategori."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Feil ved opprettelse av gruppe."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Feil ved endring av kategori."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Feil ved endring av gruppe."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Feil ved s&oslash;king"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Feil ved oppdatering av brukerrettigheter."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Kunne ikke hente login token."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Kunne ikke legge til login token."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Feil ved oppdatering av login token."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Kunne ikke fjerne login tokens."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Kunne ikke rense login tokens."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL foresp&oslash;rsel"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonym"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "ukjent"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Intet emne)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB returnerte en ugyldig dato."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "til"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Ugyldig sorteringsinnstilling"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Ugyldig rekkef&oslash;lgeinnstilling"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Ingen begivenheter stemte med dine s&oslash;kekriterier."

#: includes/search.php:87
msgid "Search Results"
msgstr "S&oslash;keresultater"

#: includes/search.php:91
msgid "Date Time"
msgstr "Dato Tid"

#: includes/search.php:107
msgid "Phrase"
msgstr "Setning"

#: includes/search.php:115
msgid "Sort By"
msgstr "Sorter etter"

#: includes/search.php:118
msgid "Order"
msgstr "Rekkef&oslash;lge"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Bytt passord"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Gammelt passord"

#: includes/settings.php:64
msgid "New Password"
msgstr "Nytt passord"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Bekreft nytt passord"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Innstillinger oppdatert."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Mulig hacking fors&oslash;k p&aring; din konto."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "M&aring;ned utenfor gyldig intervall."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Ugyldig &aring;r"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Oversatte \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Bekreft passord"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Opprett administrator"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Du m&aring; angi et brukernavn"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Bruker eksisterer allerede"

#: includes/user_create.php:113
msgid "Added user."
msgstr "La til bruker."

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Du m&aring; v&aelig;re administrator for &aring; slette brukere."

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Ingen bruker valgt."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "Rediger brukergrupper"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "Grupper oppdatert."

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Ingen brukere"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Ingen endringer &aring; foreta."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Oppdaterte bruker(e):"

#: includes/util.php:75
msgid "continue"
msgstr "fortsett"

#: includes/util.php:157
msgid "Software Error"
msgstr "Programvarefeil"

#: includes/util.php:158
msgid "Message:"
msgstr "Beskjed:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# grzegorz.zielinski <grzegorz.zielinski@bkrmedia.pl>, 2014
# grzegorz.zielinski <grzegorz.zielinski@bkrmedia.pl>, 2014
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Polish (Poland) (http://www.transifex.com/sproctor/php-calendar/language/pl_PL/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl_PL\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Musisz być zalogowany z prawami administratora"

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Tłumacz"

#: includes/admin.php:42
msgid "Version"
msgstr "Wersja"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Kalendarz"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Akcja"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Edytuj"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Usuń"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Utwórz Kalendarz"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Lista kalendarzy"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Nazwa użytkownika"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Utwórz użytkownika"

#: includes/admin.php:110
msgid "User List"
msgstr "Lista użytkowników"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Import"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "Nazwa hosta MySQL"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "Nazwa bazy danych MySQL"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "Numer portu MySQL"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Domyślnie zostaw puste"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "Nazwa użytkownika MySQL"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "Hasło użytkownika MySQL"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "Prefix tabel PHP-Calendar"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "Opcje"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Zapisz"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Odczyt"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Zapis"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Tylko do odczytu"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Edytuj"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Administrator"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Prawa dostępu"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Nazwa użytkownika"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Może tworzyć tylko do odczytu"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Bez nazwy"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Brak"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Utwórz kategorię"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Kategorie kalendarzy"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Nazwa"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Kolor tekstu"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Kolor tła"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Widoczne dla grupy użytkowników"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Akcje"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Utwórz grupę"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Grupy kalendarzy"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Odmowa dostępu"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "nie ustawiono."

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Uaktualniono opcje"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Język"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Strefa czasowa"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Witaj"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Ustawienia"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Wyloguj"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Zaloguj"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Dodaj wydarzenie"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Szukaj"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Pokaż miesiąc"

#: includes/calendar.php:488
msgid "View date"
msgstr "Pokaż datę"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Zarządzaj"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Domyślne"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Początek tygodnia"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Niedziela"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Poniedziałek"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Sobota"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "Czas 24-godzinny"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Nazwa kalendarza"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Maksymalna długość tematu"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Maksymalna ilość wyświetlanych wydarzeń"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Prawa dostępu"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Brak możliwości odczytu i zapisu wydarzeń"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Może odczytać wydarzenia"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Może tworzyć wydarzenia bez możliwości modyfikacji"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Może tworzyć i modyfikować wydarzenia"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Domyślna strefa czasowa"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Domyślny język"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Format daty"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Skórka"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Miesiąc Dzień Rok"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Rok Miesiąc Dzień"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Dzień Miesiąc Rok"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Brak uprawnień aby:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Błąd"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Ścieżka kroków"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Nieprawidłowa akcja"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Błędy sekretny token. Prawdopodobnie próba fałszywego zapytania."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Niewłaściwy typ konfiguracji"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Nierozpoznany okres:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Brak wybranego kalendarza"

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Potwierdź usunięcie:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Potwierdź"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Odmowa"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Brak uprawnień aby usunąć kalendarz"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Usunięto kalendarz"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Nie można usunąć kalendarza"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Utworzono kalendarz."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Brak wybranej kategorii"

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Brak uprawnień do usunięcia kategorii:"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Usunięta kategoria:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Nie można usunąć kategorii: "

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Kategoria"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Widoczne dla grup"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Nie wybrano koloru"

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Nieprawidłowy kolor"

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Brak uprawnień do dodania kategorii do wszystkich kalendarzy."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Brak uprawnień do dodania kategorii do tego kalendarza"

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Brak uprawnień do modyfikacji tej kategorii."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Zmodyfikowana kategoria:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Utworzona kategoria:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Błąd dodania kategorii."

#: includes/display_day.php:45
msgid "Title"
msgstr "Tytuł"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Czas"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Opis"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Wybrano usunięcie"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Brak wydarzeń tego dnia."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Nieprawidłowe parametry."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Brak uprawnień do odczytu tego wydarzenia."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "przez"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Kategoria"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Kiedy"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Utworzona:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Ostatnia modyfikacja:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Edytuj wystąpienie"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Usuń wystąpienie"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Poprzednie wystąpienie"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Następne wystąpienie"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Pokaż wszystkie wystąpienia"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Dodaj wystąpienie"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "w"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Usuń"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Wystąpienia"

#: includes/display_event.php:228
msgid "from"
msgstr "od"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Pokaż dodatkowe wydarzenia"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "kontynuowany"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Brak wybranego wydarzenia."

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Usunięto wydarzenie"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Usunięto wydarzenia"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Nie można usunąć wydarzenia"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Nie można usunąć wydarzeń"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Brak uprawnień aby usunąć wydarzenie"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Brak uprawnień aby usunąć wydarzenia"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Wydarzenie"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Temat"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Zmień datę i czas wydarzenia"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Od"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Do"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Typ czasu"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normalny"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Całodniowy"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Do ogłoszenia"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Powtórzenia"

#: includes/event_form.php:68
msgid "Never"
msgstr "Nigdy"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Dzienne"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Tygodniowe"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Miesięczne"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Roczne"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Co"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "ile dni?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Do"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "ile tygodni?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "ile miesięcy?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "ile lat?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Dodaj wydarzenie"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Nie rozpoznano typu czasu."

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "Data zakończenia wydarzenia nie może być przed datą startu."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Brak uprawnień zapisu dla tego kalendarza."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Wymagane pole \"dzienne\" nie ustawione."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "Pole \"dzienne\" mieć wartość większą niż 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Wymagane pole \"tygodniowe\" nie ustawione."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "Pole \"tygodniowe\" mieć wartość większą niż 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Wymagane pole \"miesięczne\" nie ustawione."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "Pole \"miesięczne\" musi mieć wartość większą niż 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Wymagane pole \"roczne\" nie ustawione."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Nieprawidłowy typ wydarzenia."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Zmodyfikowano wydarzenie:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Utworzono wydarzenie:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Błąd dodania wydarzenia."

#: includes/form.php:32
msgid "required"
msgstr "wymagane"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Nie można dodać do formularza."

#: includes/form.php:428
msgid "Date"
msgstr "Data"

#: includes/globals.php:23
msgid "January"
msgstr "Styczeń"

#: includes/globals.php:24
msgid "February"
msgstr "Luty"

#: includes/globals.php:25
msgid "March"
msgstr "Marzec"

#: includes/globals.php:26
msgid "April"
msgstr "Kwiecień"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Maj"

#: includes/globals.php:28
msgid "June"
msgstr "Czerwiec"

#: includes/globals.php:29
msgid "July"
msgstr "Lipiec"

#: includes/globals.php:30
msgid "August"
msgstr "Sierpień"

#: includes/globals.php:31
msgid "September"
msgstr "Wrzesień"

#: includes/globals.php:32
msgid "October"
msgstr "Październik"

#: includes/globals.php:33
msgid "November"
msgstr "Listopad"

#: includes/globals.php:34
msgid "December"
msgstr "Grudzień"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Wtorek"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Środa"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Czwartek"

#: includes/globals.php:43
msgid "Friday"
msgstr "Piątek"

#: includes/globals.php:48
msgid "Jan"
msgstr "Sty"

#: includes/globals.php:49
msgid "Feb"
msgstr "Lut"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mar"

#: includes/globals.php:51
msgid "Apr"
msgstr "Kwi"

#: includes/globals.php:53
msgid "Jun"
msgstr "Cze"

#: includes/globals.php:54
msgid "Jul"
msgstr "Lip"

#: includes/globals.php:55
msgid "Aug"
msgstr "Sie"

#: includes/globals.php:56
msgid "Sep"
msgstr "Wrz"

#: includes/globals.php:57
msgid "Oct"
msgstr "Paź"

#: includes/globals.php:58
msgid "Nov"
msgstr "Lis"

#: includes/globals.php:59
msgid "Dec"
msgstr "Gru"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Data rozpoczęcia"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Rosnąco"

#: includes/globals.php:75
msgid "Descending"
msgstr "Malejąco"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Brak wybranej grupy."

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Brak uprawnień do usunięcia grupy:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Usunięto grupę:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Nie można usunąć grupy:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Grupa"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Brak uprawnień aby dodać grupę globalną."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Brak uprawnień aby dodać grupę do tego kalendarza."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Brak uprawnień aby modyfikować tę grupę."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Zmodyfikowano grupę:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Utworzono grupę:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Błąd dodania grupy."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Należy posiadać prawa administratora"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Błąd wyboru wydarzeń do importu"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Utworzony %s wydarzeń z %s wystąpieniami"

#: includes/login.php:39
msgid "Logged in."
msgstr "Zalogowano"

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Przepraszamy, nieprawidłowy login"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Musisz mieć włączone cookies aby się zalogować"

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Hasło"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Wylogowywanie..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Wystąpienie"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Dodaj wystąpienie"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Nie można utworzyć wystąpienia"

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "Nie ustawiono ID wydarzenia."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Zmodyfikowano wystąpienie:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Utworzono wystąpienie:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Błąd dodania wystąpienia."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Brak wybranych wystąpień."

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Usunięto wystąpienie"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Usunięto wystąpienia"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Nie można usunąć wystąpienia"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Nie można usunąć wystąpień"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Brak uprawnień aby usunąć wystąpienie."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Brak uprawnień aby usunąć wystąpienia."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Musisz być zalogowany."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Brak uprawnień do zmiany hasła."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Musisz podać stare hasło"

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Wprowadzone hasło jest niezgodne ze starym hasłem."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Musisz podać hasło"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Niezgodność haseł"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Hasło uaktualnione."

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Brak tytułu)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Błąd w get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Błąd w get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Wydarzenie nie istnieje"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Błąd w get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Wydarzenie nie istnieje z tym oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Błąd w get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Kategoria z podanym ID nie istnieje"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Błąd w get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Grupa z podanym ID nie istnieje"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Błąd w get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Błąd w get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Błąd w get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Błąd w get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Błąd w get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Błąd w get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Błąd usuwania wydarzenia."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Błąd usuwania wystąpienia"

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Błąd usuwania kalendarza"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Błąd usuwania kategorii."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Błąd usuwania grupy."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Błąd usuwania."

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Nie można odczytać praw dostępu."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Nie można uzyskać kalendarzy."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Nie można otrzymać użytkownika."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Błąd."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Błąd tworzenia użytkownika."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Błąd odczytu opcji"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Błąd tworzenia opcji"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Błąd uaktualnienia hasła."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Błąd uaktualnienia strefy czasowej."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Błąd uaktualnienia języka."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Błąd tworzenia wydarzenia."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Błąd tworzenia wystąpienia."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Błąd modyfikacji wystąpienia."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Błąd modyfikacji wydarzenia."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Błąd tworzenia kategorii."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Błąd tworzenia grupy."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Błąd modyfikacji kategorii."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Błąd modyfikacji grupy."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Błąd wyszukiwania"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Błąd uaktualnienia praw dostępu użytkownika."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Błąd przyznania tokenu logowania."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Błąd dodania tokenu logowania."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Błąd uaktualnienia tokenów logowania."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Błąd usuwania tokenów logowania."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Błąd czyszczenia tokenów logowania."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "zapytanie SQL"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonimowy"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "nieznany"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Brak tematu)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "BD zwróciła nieprawidłową datę"

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "Do ogłoszenia"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "do"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Nieprawidłowa opcja sortowania"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Nieprawidłowa opcja kolejności"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Brak wydarzeń spełniających warunki wyszukiwania"

#: includes/search.php:87
msgid "Search Results"
msgstr "Wyniki wyszukiwania"

#: includes/search.php:91
msgid "Date Time"
msgstr "Data"

#: includes/search.php:107
msgid "Phrase"
msgstr "Fraza"

#: includes/search.php:115
msgid "Sort By"
msgstr "Sortuj po"

#: includes/search.php:118
msgid "Order"
msgstr "Kolejność"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Zmień hasło"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Stare hasło"

#: includes/settings.php:64
msgid "New Password"
msgstr "Nowe hasło"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Potwierdź nowe hasło"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Ustawienia uaktualniono."

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Prawdopodobnie ktoś próbował włamać się na Twoje konto."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Miesiąc poza zasięgiem."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Nieprawidłowy rok"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Przetłumaczono \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Potwierdź Hasło"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Dodaj administratora"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Musisz podać nazwę użytkownika"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Użytkownik już istnieje."

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Musisz mieć prawa administratora by usuwać użytkowników"

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Brak wybranego użytkownika"

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Brak użytkowników"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Brak zmian."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Uaktualniono użytkownika/ów:"

#: includes/util.php:75
msgid "continue"
msgstr "kontynuuj"

#: includes/util.php:157
msgid "Software Error"
msgstr "Błąd aplikacji"

#: includes/util.php:158
msgid "Message:"
msgstr "Wiadomość:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Portuguese (http://www.transifex.com/sproctor/php-calendar/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr ""

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr ""

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr ""

#: includes/admin.php:74
msgid "Calendar List"
msgstr ""

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr ""

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr ""

#: includes/admin.php:110
msgid "User List"
msgstr ""

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr ""

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr ""

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr ""

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr ""

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr ""

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr ""

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr ""

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr ""

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr ""

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr ""

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr ""

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr ""

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr ""

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr ""

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr ""

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr ""

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr ""

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr ""

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr ""

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr ""

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr ""

#: includes/calendar.php:475
msgid "Add Event"
msgstr ""

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr ""

#: includes/calendar.php:483
msgid "View Month"
msgstr ""

#: includes/calendar.php:488
msgid "View date"
msgstr ""

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr ""

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr ""

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr ""

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr ""

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr ""

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr ""

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr ""

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr ""

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr ""

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr ""

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr ""

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr ""

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr ""

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr ""

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr ""

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr ""

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr ""

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr ""

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr ""

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr ""

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr ""

#: includes/category_delete.php:29
msgid "No category selected."
msgstr ""

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr ""

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr ""

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr ""

#: includes/category_form.php:27
msgid "Category Form"
msgstr ""

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr ""

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr ""

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr ""

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr ""

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr ""

#: includes/display_day.php:111
msgid "No events on this day."
msgstr ""

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr ""

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr ""

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr ""

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr ""

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr ""

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr ""

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr ""

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr ""

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr ""

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr ""

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr ""

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr ""

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr ""

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr ""

#: includes/event_form.php:72
msgid "Weekly"
msgstr ""

#: includes/event_form.php:74
msgid "Monthly"
msgstr ""

#: includes/event_form.php:76
msgid "Yearly"
msgstr ""

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr ""

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr ""

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr ""

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr ""

#: includes/event_form.php:129
msgid "Submit Event"
msgstr ""

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr ""

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr ""

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr ""

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr ""

#: includes/globals.php:24
msgid "February"
msgstr ""

#: includes/globals.php:25
msgid "March"
msgstr ""

#: includes/globals.php:26
msgid "April"
msgstr ""

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr ""

#: includes/globals.php:28
msgid "June"
msgstr ""

#: includes/globals.php:29
msgid "July"
msgstr ""

#: includes/globals.php:30
msgid "August"
msgstr ""

#: includes/globals.php:31
msgid "September"
msgstr ""

#: includes/globals.php:32
msgid "October"
msgstr ""

#: includes/globals.php:33
msgid "November"
msgstr ""

#: includes/globals.php:34
msgid "December"
msgstr ""

#: includes/globals.php:40
msgid "Tuesday"
msgstr ""

#: includes/globals.php:41
msgid "Wednesday"
msgstr ""

#: includes/globals.php:42
msgid "Thursday"
msgstr ""

#: includes/globals.php:43
msgid "Friday"
msgstr ""

#: includes/globals.php:48
msgid "Jan"
msgstr ""

#: includes/globals.php:49
msgid "Feb"
msgstr ""

#: includes/globals.php:50
msgid "Mar"
msgstr ""

#: includes/globals.php:51
msgid "Apr"
msgstr ""

#: includes/globals.php:53
msgid "Jun"
msgstr ""

#: includes/globals.php:54
msgid "Jul"
msgstr ""

#: includes/globals.php:55
msgid "Aug"
msgstr ""

#: includes/globals.php:56
msgid "Sep"
msgstr ""

#: includes/globals.php:57
msgid "Oct"
msgstr ""

#: includes/globals.php:58
msgid "Nov"
msgstr ""

#: includes/globals.php:59
msgid "Dec"
msgstr ""

#: includes/globals.php:69
msgid "Start Date"
msgstr ""

#: includes/globals.php:74
msgid "Ascending"
msgstr ""

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr ""

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr ""

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr ""

#: includes/logout.php:29
msgid "Loggin out..."
msgstr ""

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr ""

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr ""

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr ""

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr ""

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr ""

#: includes/search.php:87
msgid "Search Results"
msgstr ""

#: includes/search.php:91
msgid "Date Time"
msgstr ""

#: includes/search.php:107
msgid "Phrase"
msgstr ""

#: includes/search.php:115
msgid "Sort By"
msgstr ""

#: includes/search.php:118
msgid "Order"
msgstr ""

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr ""

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr ""

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr ""

#: includes/user_create.php:103
msgid "User already exists."
msgstr ""

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr ""

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr ""

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr ""

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Ernesto Niklaus <ernesto@ernesto.niklaus.nom.br>, 2021
# Hebert Porto <hebertporto@gmail.com>, 2013
# Jefferson Greick <jgr@live.in>, 2016
# Rodrigo Tschope <tschope@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/sproctor/php-calendar/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Você deve estar logado como Administrador"

#: includes/admin.php:33
msgid "Calendars"
msgstr "Calendários"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "Usuários"

#: includes/admin.php:37
msgid "Import"
msgstr "Importar"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Tradução"

#: includes/admin.php:42
msgid "Version"
msgstr "Versão"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Calendário"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Ação"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Editar"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Deletar"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Novo Calendário"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Listar Calendários"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Nome de Usuário"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "Grupos"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "Editar grupos"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Criar Usuário"

#: includes/admin.php:110
msgid "User List"
msgstr "Lista de Usuários"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Formulário de Importação"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL - Nome do Servidor"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL - Nome do Banco de Dados "

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL - Porta "

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Deixe em branco para padrão"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL - Nome do Usuário"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL - Senha do Usuário"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar Table Prefix"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "Importar calendário"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "Esse scrip precisa de permissão de leitura ao diretório do calendário para gravação dos arquivos de tradução. Alternativamente você pode executar o arquivo \"translate.php\" na linha de comando, usar \"msgfmt\" ou outro aplicativo que faça a edição de arquivos .mo a partir de arquivos .po."

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "Gerar traduções"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "Configuração do Calendário"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "Categorias"

#: includes/cadmin.php:68
msgid "Options"
msgstr "Opções"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Enviar"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Ler"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Escrever"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Somente Leitura"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Modificar"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Administrador "

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Permissões de Usuário"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Nome de Usuário"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Pode Criar Somente Leitura"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Sem Nome"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Nenhuma"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Criar Categoria"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Categorias de Calendários"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Nome"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Cor do Texto"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Cor do Plano de Fundo"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Visível para usuários do grupo"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Ações"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Criar Grupo"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Grupos de Calendários"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Permissão Negada"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "Não definido"

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Atualizar Opções"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Idioma"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Fuso Horário"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Bem Vindo"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Configurações"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Sair"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Entrar"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Adicionar Agendamento"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Procurar"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Visualizar Mês"

#: includes/calendar.php:488
msgid "View date"
msgstr "Visualizar Dia Atual"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Administração do Calendário"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Padrão"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Começo da Semana"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Domingo"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Segunda"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Sábado"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24 horas"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Nome do Calendário"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Tamanho máximo do Título"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Quantidade Máxima de Eventos Exibidos Diariamente"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Permissões Públicas "

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Não permitir visualizar ou editar agendamentos"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Permitir acesso a visualizar agendamentos e não editar"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Permitir Adicionar Agendamentos mas não editar"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Permitir visualizar e editar agendamentos"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Fuso Horário Padrão"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Idioma Padrão"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Formato de Data"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Tema"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Mês Dia Ano"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Ano Mês Dia"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Dia Mês Ano"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Você não possuí permissão para realizar essa ação"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Erro"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Retorno"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Ação Inválida"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Token secreto inválido. Possivelmente tentativa de falsificação"

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Tipo de configuração não suportado."

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "Campo Mandatório \"%s\" não foi preenchido."

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "Malformado \"%s\" Hora: \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Período não reconhecido: "

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "Malformado \"%s\" Data: \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "Formato da data não é válido."

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Nenhum calendário selecionado"

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Confirma solicitação de exclusão"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Confirmar"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Negado"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Você não tem permissão para excluir esse calendário"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Calendário Removido"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Não foi possível excluir o canlendário"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Calendário criado"

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Nenhuma categoria Selecionada"

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Você não possuí permissão para excluir essa categoria"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Categoria excluída: "

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Não foi possível remover a categoria: "

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Formulário de Categoria"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Visualizado pelos grupos"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "Enviar categoria"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Cor não especificada"

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Cor inválida"

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Você não possuí permissão para adicionar categoria para todos os calendários"

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Você não possuí permissão para adicionar categoria para esse calendário"

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Você não possui permissão para alterar essa categoria"

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Categoria alterada"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Categoria criada"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Erro ao enviar categoria"

#: includes/display_day.php:45
msgid "Title"
msgstr "Título"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Tempo"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Descrição"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Exclusão Selecionada"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Nenhum agendamento nesta data"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Parâmetro Inválido"

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Você não possui permissão para visualizar esse agendamento"

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "por"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Categoria"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Quando"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Criado em"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Última modificação realizada em:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Editar Ocorrência"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Excluir Ocorrência"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Ocorrência Prévia em"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Próxima ocorrência em"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Visualizar toda as ocorrências"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Adicionar Ocorrência"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "em"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Remover"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Ocorrências"

#: includes/display_event.php:228
msgid "from"
msgstr "de"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "S"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Visualizar Agendamentos Adicionais"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "Continuado"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "Data inválida."

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Nenhuma Agendamento Selecionado"

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Agendamento Removido"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Agendamentos Removidos"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Não foi possível remover o agendamento"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Não foi possível remover os agendamentos"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Você não possui permissão para remover esse agendamento"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Você não possui permissão para remover esses agendamentos"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Agendamento de"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Assunto"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Alterar data e hora do agendamento"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "De"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Para"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Tipo de Hora"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normal"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Dia Completo"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "A ser confirmado"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Repetir"

#: includes/event_form.php:68
msgid "Never"
msgstr "Nunca"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Diariamente"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Semanalmente"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Mensalmente"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Anualmente"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Sempre"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Repetir a cada quantos dias ?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Até"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Repetir a cada quantas semanas ?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Repetir a cada quantos meses ?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Repetir a cada quantos anos ?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Enviar Agendamento"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Tipo de hora não reconhecido"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "O Agendamento não pode terminar antes de começar."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Você não possuí permissão para editar esse calendário"

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Opção requerida \"todos os dias\" não está selecionada"

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "Todos os dias devem ser maior que 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Opção requerida \"todas as semanas\" não está selecionada"

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "Toda semana precisa ser maior que 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Opção requerida \"todos os meses\" não está selecionada"

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "Todos os meses precisam ser maior que 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Opção obrigatória \"todos anos\" não está selecionada"

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Tipo de agendamento inválido."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Agendamento alterado:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Agendamento Criado"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Erro ao enviar agendamento"

#: includes/form.php:32
msgid "required"
msgstr "obrigatório"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Não é possível adicionar um não-formulário ao formulário"

#: includes/form.php:428
msgid "Date"
msgstr "Data"

#: includes/globals.php:23
msgid "January"
msgstr "Janeiro"

#: includes/globals.php:24
msgid "February"
msgstr "Fevereiro"

#: includes/globals.php:25
msgid "March"
msgstr "Março"

#: includes/globals.php:26
msgid "April"
msgstr "Abril"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Maio"

#: includes/globals.php:28
msgid "June"
msgstr "Junho"

#: includes/globals.php:29
msgid "July"
msgstr "Julho"

#: includes/globals.php:30
msgid "August"
msgstr "Agosto"

#: includes/globals.php:31
msgid "September"
msgstr "Setembro"

#: includes/globals.php:32
msgid "October"
msgstr "Outubro"

#: includes/globals.php:33
msgid "November"
msgstr "Novembro"

#: includes/globals.php:34
msgid "December"
msgstr "Dezembro"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Terça"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Quarta"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Quinta"

#: includes/globals.php:43
msgid "Friday"
msgstr "Sexta"

#: includes/globals.php:48
msgid "Jan"
msgstr "Jan"

#: includes/globals.php:49
msgid "Feb"
msgstr "Fev"

#: includes/globals.php:50
msgid "Mar"
msgstr "Mar"

#: includes/globals.php:51
msgid "Apr"
msgstr "Abr"

#: includes/globals.php:53
msgid "Jun"
msgstr "Jun"

#: includes/globals.php:54
msgid "Jul"
msgstr "Jul"

#: includes/globals.php:55
msgid "Aug"
msgstr "Ago"

#: includes/globals.php:56
msgid "Sep"
msgstr "Set"

#: includes/globals.php:57
msgid "Oct"
msgstr "Out"

#: includes/globals.php:58
msgid "Nov"
msgstr "Nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "Dez"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Data Início"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Crescente"

#: includes/globals.php:75
msgid "Descending"
msgstr "Decrescente"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Nenhum grupo selecionado"

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Você não possuí permissão para excluir o grupo:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Grupo excluído: "

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Não foi possível remover o grupo: "

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Grupo de"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "Enviar grupo"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Você não possuí permissão para adicionar um grupo global"

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Você não tem permissão para adicionar grupo neste calendário"

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Você não possui permissão para alterar este grupo."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Grupo modificado:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Grupo criado:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Erro ao enviar grupo:"

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Precisa de nível de administrador"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Erro ao importar agendamentos"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Criado %s agendamentos com %s ocorrências"

#: includes/login.php:39
msgid "Logged in."
msgstr "Logado"

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Desculpe, Login Inválido"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Você precisa habilitar os cookies para logar"

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Senha"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Saindo..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Formulário de ocorrência"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Enviar ocorrência"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Foi não possível ler visualizar "

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID não informado."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Ocorrência Modificada:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Ocorrência criada"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Erro ao enviar ocorrência"

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Nenhum ocorrência selecionada"

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Ocorrência Removida"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Ocorrências Removidas"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Não foi possível remover ocorrência."

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Não foi possível remover as ocorrências"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Você não tem permissão para remover a ocorrência."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Você não tem permissão para remover ocorrências."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Você precisa estar logado."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Você não possui permissão para alterar sua senha"

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Você deve especificar a última senha."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "A senha está incorreta"

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Você deve especificar sua senha"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "As senhas estão diferentes"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Senha atualizada"

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(sem título)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Erro ao selecionar ocorrências neste período"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Erro ao selecionar agendamento pelo id"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Agendamento inexistente "

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Erro ao selecionar agendamentos antigos"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Não existe agendamento por iod"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Erro em get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "A categoria não existem com catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Erro em get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "O grupo não existem com este gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Erro em get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Erro em get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Erro em get_visible_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Erro em get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Erro em get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Erro em get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Erro ao remover um agendamento."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Erro durante remoção de uma ocorrência"

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Erro durante remoção do calendário"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Erro ao excluir categoria"

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Erro ao excluir grupo"

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Erro ao excluir"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Não foi possível ler permissões"

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Não foi possível selecionar calendários"

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Não foi possível selecionar o usuário"

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Erro ao selecionar usuário"

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Erro ao criar usuário"

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Erro ao ler opções"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Erro ao criar opções"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Erro ao atualizar a senha."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Erro ao atualizar fuso horário"

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Erro ao atualizar idioma"

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "Erro ao adicionar grupo ao usuário."

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "Erro ao remover grupo do usuário."

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Erro ao criar agendamento"

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Erro ao criar ocorrência"

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Erro ao alterar ocorrência"

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Erro ao alterar agendamento"

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Erro ao criar categoria"

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Erro ao criar grupo"

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Erro ao alterar categoria"

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Erro ao alterar grupo."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Erro durante a pesquisa"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Erro ao atualizar permissões de usuário"

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Erro ao receber token do login"

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Erro ao adicionar token do login"

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Erro ao atualizar token do login"

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Erro ao remover token de login"

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Erro ao limpar token do login"

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL Query"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "Visitante"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "desconhecido"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Sem Assunto)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB retornou um data inválidad"

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "Para"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Opção de ordem inválida."

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Opção de "

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Nenhum resultado encontrado"

#: includes/search.php:87
msgid "Search Results"
msgstr "Resultado das Pesquisas"

#: includes/search.php:91
msgid "Date Time"
msgstr "Data e hora"

#: includes/search.php:107
msgid "Phrase"
msgstr "Frase"

#: includes/search.php:115
msgid "Sort By"
msgstr "Classificar por"

#: includes/search.php:118
msgid "Order"
msgstr "Ordem"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Mudar Senha"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Senha Antiga"

#: includes/settings.php:64
msgid "New Password"
msgstr "Nova Senha"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Repetir nova senha"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Configurações Atualizadas"

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Possível tentativa de invasão da sua conta"

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Mês incorreto"

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Ano Inválido"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Traduzido \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Confirmar Senha"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Promover a Administrador"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Você deve digitar um nome de usuario"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Usuário já cadastrado"

#: includes/user_create.php:113
msgid "Added user."
msgstr "Usuário adicionado."

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Você precisa ser Administrador para excluir usuários"

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Nenhum usuário selecionado"

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "Editar Grupo de Usuários"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "Grupos atualizados."

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Sem usuários"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Não há alterações para realizar"

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Usuários atualizado(s)"

#: includes/util.php:75
msgid "continue"
msgstr "Continuar"

#: includes/util.php:157
msgid "Software Error"
msgstr "Erro no Aplicativo"

#: includes/util.php:158
msgid "Message:"
msgstr "Mensagem:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# ded_Pihto <ded_Pihto@bk.ru>, 2013
# ded_Pihto <ded_Pihto@bk.ru>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Russian (http://www.transifex.com/sproctor/php-calendar/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Необходимо зарегистрироваться как администратор"

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "перевод"

#: includes/admin.php:42
msgid "Version"
msgstr "Версия"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Календарь"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Действие"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Изменить"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Удалить"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Создать календарь"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Список календарей"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Пользователь"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "Создать пользователя"

#: includes/admin.php:110
msgid "User List"
msgstr "Список пользователей"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Импорт формы"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL хост"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL база данных"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL порт"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "оставьте пустым для значения по-умолчанию"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL имя пользователя"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL пароль"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "Префикс таблиц для PHP-Calendar"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "Настройки"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Подтвердить"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Чтение"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Запись"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Только чтение"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Изменение"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Администратор"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Права пользователя"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Имя пользователя"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Возможно создать только для чтения"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Без имени"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Нет"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Создать категорию"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Категории календарей"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Название"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Цвет текста"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Цвет фона"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Видимость для группы"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Действие"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Создать группу"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Группы календарей"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "В доступе отказано"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "не установлено"

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "Настройки обновлены"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Язык"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Часовая зона"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Привет, "

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Настройки"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Выход"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Вход"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Добавить событие"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Поиск"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Месяц"

#: includes/calendar.php:488
msgid "View date"
msgstr "Дата"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Админстрирование"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "по-умолчанию"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Начало недели"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "Воскресенье"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "Понедельник"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Суббота"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24х часовой формат"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Заголовок календаря"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Максимальная длина темы"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Максимальная длина события дня"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Публичный доступ"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Нельзя читать и записывать событие"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Событие можно прочитать, нельзя записывать"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "Возможно создать событие без права редактирования"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Возможно чтение и запись события"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Зона времени по-умолчанию"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Язык по-умолчанию"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Формат даты"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Тема"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Месяц/День/Год"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "Год/Месяц/День"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "День/Месяц/Год"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Нет прав для выполнения:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Ошибка"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Отслеживание"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Неверное действие"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Несовпадение секретного токена. Возможно потребуется перезапрос."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Недопустимый тип конфигурации"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "Недопустимый период:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Не выбран календарь"

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Подтвердите удаление:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Да"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Нет"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "У Вас нет прав на удаление календаря"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Календарь удален"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Календарь не удален"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Календарь создан"

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Не выбрано категории"

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Нет прав на удаление категории"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Удаление категории:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Не удалена категория"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Форма категории"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Видимые для групп"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Цвет не определен"

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Неверный цвет"

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Нет прав на добавление категории во все календари"

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Нет прав на добавление категории в этот календарь"

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Нет прав на изменение этой категории"

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Изменена категория:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Создана категория:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Ошибка подтверждения категории"

#: includes/display_day.php:45
msgid "Title"
msgstr "Заголовок"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Время"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Описание"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Удалить выделенное"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Нет события за этот день"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Неверный аргумент"

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Нет прав для чтения этого события"

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "by"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Категория"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "Когда"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Создано:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Последнее изменение:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Изменить раписание"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Удалить раписание"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Предидущее раписание на"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Следующее раписание на"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Просмотр всех расписаний"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Добавить расписание"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "от"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Удалить"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Расписания"

#: includes/display_event.php:228
msgid "from"
msgstr "от"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Просмотр дополнительных событий"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "продолжить"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Не выделено событий"

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Событие удалено"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "События удалены"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Событие не удалено"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Не удалены события"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Нет прав для удаления события"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "Нет прав для удаления событий"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Форма события"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Тема"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Изменить дату и время события"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "От"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "До"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Тип времени"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Нормальный"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Целый день"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Будет объявлено"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Повтор"

#: includes/event_form.php:68
msgid "Never"
msgstr "Никогда"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Ежедневно"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Еженедельно"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Ежемесячно"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Ежегодно"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Всегда"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Сколько дней повторять всегда?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Вплоть до"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Сколько недель повторять всегда?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Сколько месяцев повторять всегда?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Сколько лет повторять всегда?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Подтвердетить событие"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Неверный формат времени"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "Событие не может заканчиваться раньше чем началось"

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Нет прав на запись в этот календарь"

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Обязательно поле \"ежедневно\" не задано"

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "\"ежедневно\" должно быть больше, чем 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Обязательно поле \"еженедельно\" не задано"

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "\"еженедельно\" должно быть больше, чем 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Обязательно поле \"ежемесячно\" не задано"

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "\"ежемесячно\" должно быть больше, чем 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Обязательно поле \"ежегодно\" не задано"

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Неверный тип события"

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Изменено событие:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Создано событие:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Ошибка подтверждения события"

#: includes/form.php:32
msgid "required"
msgstr "обязательно"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Нельзя добавить элемент в форму"

#: includes/form.php:428
msgid "Date"
msgstr "Дата"

#: includes/globals.php:23
msgid "January"
msgstr "Январь"

#: includes/globals.php:24
msgid "February"
msgstr "Февраль"

#: includes/globals.php:25
msgid "March"
msgstr "Март"

#: includes/globals.php:26
msgid "April"
msgstr "Апрель"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "Май"

#: includes/globals.php:28
msgid "June"
msgstr "Июнь"

#: includes/globals.php:29
msgid "July"
msgstr "Июль"

#: includes/globals.php:30
msgid "August"
msgstr "Август"

#: includes/globals.php:31
msgid "September"
msgstr "Сентябрь"

#: includes/globals.php:32
msgid "October"
msgstr "Октябрь"

#: includes/globals.php:33
msgid "November"
msgstr "Ноябрь"

#: includes/globals.php:34
msgid "December"
msgstr "Декабрь"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "Вторник"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "Среда"

#: includes/globals.php:42
msgid "Thursday"
msgstr "Четверг"

#: includes/globals.php:43
msgid "Friday"
msgstr "Пятница"

#: includes/globals.php:48
msgid "Jan"
msgstr "Янв"

#: includes/globals.php:49
msgid "Feb"
msgstr "Фев"

#: includes/globals.php:50
msgid "Mar"
msgstr "Мар"

#: includes/globals.php:51
msgid "Apr"
msgstr "Апр"

#: includes/globals.php:53
msgid "Jun"
msgstr "Июн"

#: includes/globals.php:54
msgid "Jul"
msgstr "Июл"

#: includes/globals.php:55
msgid "Aug"
msgstr "Авг"

#: includes/globals.php:56
msgid "Sep"
msgstr "Сен"

#: includes/globals.php:57
msgid "Oct"
msgstr "Окт"

#: includes/globals.php:58
msgid "Nov"
msgstr "Ноя"

#: includes/globals.php:59
msgid "Dec"
msgstr "Дек"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Дата начала"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Увеличение"

#: includes/globals.php:75
msgid "Descending"
msgstr "Уменьшение"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Не выбрана группа"

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Нет прав на удаление групы:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Группа удалена"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Группа не удалена"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Форма группы"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Нет прав на добавление глобальной группы"

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Нет прав на добавление группы в этот календарь"

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Нет прав на изменения  в этой группе"

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Изменена группа:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Создана группа"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Ошибка подтверждения группы"

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "Требуется админситратор"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Неверные выбранные события для импорта"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Создано %s событий с %s occurences"

#: includes/login.php:39
msgid "Logged in."
msgstr "В системе."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Ошибочный вход."

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "У вас должен быть включены cookies"

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Пароль"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Выход"

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Форма расписания"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Подтвердить расписание"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Не создано расписание"

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID не установлено"

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Изменено расписание:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Создано расписание:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Ошибка подтверждения расписания"

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Не выбрано раписание"

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Удалено раписание"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Удалены расписания"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Не удалено раписание"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Не удалены раписания"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "Нет прав на удаление раписания"

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Нет прав для удаления расписаний"

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Необходимо войти в систему"

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Нет прав для смены пароля"

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Укажите старый пароль"

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Ваш пароль не совпал с старым паролем"

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Укажите пароль"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Ваш пароль не подошел"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Пароль обновлен"

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(без заголовка)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Ошибка в получении расписания по диапазону дат"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Ошибка в  get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Событие не существует"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Ошибка в get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Нет события с oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Ошибка в категории"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Нет категории с catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Ошибка в get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Нет группы с gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Ошибка в get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Ошибка в  get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Ошибка в get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Ошибка в get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Ошибка в get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Ошибка в get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Ошибка при удалении события"

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Ошибка при удалении раписания"

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Ошибка при удалении календаря"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Ошибка при удалении категории"

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "Ошибка при удалении группы"

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Ошибка при удалении"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Нет прав на чтение"

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Не получены календари"

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Не получен пользователь"

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Ошибка получения пользователя"

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Ошибка создания пользователя"

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Ошибка чтения настроек"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Ошибка создания настроек"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Ошибка обновления пароля"

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Ошибка обновления зоны времени"

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Ошибка обновления языка"

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Ошибка создания события"

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Ошибка создания расписания"

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Ошибка изменения расписания"

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Ошибка изменения события"

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Ошибка создания категории"

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Ошибка создания группы"

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Ошибка изменения категории"

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Ошибка изменения группы"

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Ошибка при поиске"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Ошибка обновления прав доступа"

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Ошибка получения токена"

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Ошибка при создании токена логина"

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Ошибка обновления токена логина"

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "Ошибка удаления токена логина"

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Ошибка очистки токена"

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL запрос"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonymous"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "неизвестно"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(без темы)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "БД вернула неверную дату"

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "до"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Неверные параметры сортировки"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Неверный порядок сортировки"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Нет совпадений с заданными криетриями"

#: includes/search.php:87
msgid "Search Results"
msgstr "Результат поиска"

#: includes/search.php:91
msgid "Date Time"
msgstr "Дата и время"

#: includes/search.php:107
msgid "Phrase"
msgstr "Фраза"

#: includes/search.php:115
msgid "Sort By"
msgstr "Сортировать по"

#: includes/search.php:118
msgid "Order"
msgstr "Сортировка"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Изменить пароль"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Старый пароль"

#: includes/settings.php:64
msgid "New Password"
msgstr "Новый пароль"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Подтвердить пароль"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "настройки обновлены"

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Возможно попытка взлома вашего аккаунта"

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "неверный месяц"

#: includes/setup.php:195
msgid "Invalid year"
msgstr "неверный год"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Перевод \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Подтвердите пароль"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Сделать администратором"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Укажите имя пользователя"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Пользователь уже существует"

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Нужен администратор для удаления пользователя"

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Не выбран пользователь"

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Нет пользователя"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Нет изменений"

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Обновлены пользователь(и)"

#: includes/util.php:75
msgid "continue"
msgstr "продолжить"

#: includes/util.php:157
msgid "Software Error"
msgstr "Програмная ошибка"

#: includes/util.php:158
msgid "Message:"
msgstr "Сообщение:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Slovenian (http://www.transifex.com/sproctor/php-calendar/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr ""

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr ""

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr ""

#: includes/admin.php:74
msgid "Calendar List"
msgstr ""

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr ""

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr ""

#: includes/admin.php:110
msgid "User List"
msgstr ""

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr ""

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr ""

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr ""

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr ""

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr ""

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr ""

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr ""

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr ""

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr ""

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr ""

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr ""

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr ""

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr ""

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr ""

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr ""

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr ""

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr ""

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr ""

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr ""

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr ""

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr ""

#: includes/calendar.php:475
msgid "Add Event"
msgstr ""

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr ""

#: includes/calendar.php:483
msgid "View Month"
msgstr ""

#: includes/calendar.php:488
msgid "View date"
msgstr ""

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr ""

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr ""

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr ""

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr ""

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr ""

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr ""

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr ""

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr ""

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr ""

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr ""

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr ""

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr ""

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr ""

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr ""

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr ""

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr ""

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr ""

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr ""

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr ""

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr ""

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr ""

#: includes/category_delete.php:29
msgid "No category selected."
msgstr ""

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr ""

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr ""

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr ""

#: includes/category_form.php:27
msgid "Category Form"
msgstr ""

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr ""

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr ""

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr ""

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr ""

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr ""

#: includes/display_day.php:111
msgid "No events on this day."
msgstr ""

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr ""

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr ""

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr ""

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr ""

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr ""

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr ""

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr ""

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr ""

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr ""

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr ""

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr ""

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr ""

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr ""

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr ""

#: includes/event_form.php:72
msgid "Weekly"
msgstr ""

#: includes/event_form.php:74
msgid "Monthly"
msgstr ""

#: includes/event_form.php:76
msgid "Yearly"
msgstr ""

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr ""

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr ""

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr ""

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr ""

#: includes/event_form.php:129
msgid "Submit Event"
msgstr ""

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr ""

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr ""

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr ""

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr ""

#: includes/globals.php:24
msgid "February"
msgstr ""

#: includes/globals.php:25
msgid "March"
msgstr ""

#: includes/globals.php:26
msgid "April"
msgstr ""

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr ""

#: includes/globals.php:28
msgid "June"
msgstr ""

#: includes/globals.php:29
msgid "July"
msgstr ""

#: includes/globals.php:30
msgid "August"
msgstr ""

#: includes/globals.php:31
msgid "September"
msgstr ""

#: includes/globals.php:32
msgid "October"
msgstr ""

#: includes/globals.php:33
msgid "November"
msgstr ""

#: includes/globals.php:34
msgid "December"
msgstr ""

#: includes/globals.php:40
msgid "Tuesday"
msgstr ""

#: includes/globals.php:41
msgid "Wednesday"
msgstr ""

#: includes/globals.php:42
msgid "Thursday"
msgstr ""

#: includes/globals.php:43
msgid "Friday"
msgstr ""

#: includes/globals.php:48
msgid "Jan"
msgstr ""

#: includes/globals.php:49
msgid "Feb"
msgstr ""

#: includes/globals.php:50
msgid "Mar"
msgstr ""

#: includes/globals.php:51
msgid "Apr"
msgstr ""

#: includes/globals.php:53
msgid "Jun"
msgstr ""

#: includes/globals.php:54
msgid "Jul"
msgstr ""

#: includes/globals.php:55
msgid "Aug"
msgstr ""

#: includes/globals.php:56
msgid "Sep"
msgstr ""

#: includes/globals.php:57
msgid "Oct"
msgstr ""

#: includes/globals.php:58
msgid "Nov"
msgstr ""

#: includes/globals.php:59
msgid "Dec"
msgstr ""

#: includes/globals.php:69
msgid "Start Date"
msgstr ""

#: includes/globals.php:74
msgid "Ascending"
msgstr ""

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr ""

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr ""

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr ""

#: includes/logout.php:29
msgid "Loggin out..."
msgstr ""

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr ""

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr ""

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr ""

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr ""

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr ""

#: includes/search.php:87
msgid "Search Results"
msgstr ""

#: includes/search.php:91
msgid "Date Time"
msgstr ""

#: includes/search.php:107
msgid "Phrase"
msgstr ""

#: includes/search.php:115
msgid "Sort By"
msgstr ""

#: includes/search.php:118
msgid "Order"
msgstr ""

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr ""

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr ""

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr ""

#: includes/user_create.php:103
msgid "User already exists."
msgstr ""

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr ""

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr ""

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr ""

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Christer Sagman <ches.serr@gmail.com>, 2013
# Christer Sagman <ches.serr@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Swedish (http://www.transifex.com/sproctor/php-calendar/language/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "Du måste logga in som admin"

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "Översätt"

#: includes/admin.php:42
msgid "Version"
msgstr "Version"

#: includes/admin.php:55
msgid "Calendar"
msgstr "Kalender"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "Åtgärd"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "Redigera"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "Radera"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "Skapa kalender"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "Kalender-lista"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "Användarnamn"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr " Skapa användare"

#: includes/admin.php:110
msgid "User List"
msgstr "Användarförteckning"

#: includes/admin.php:121
msgid "Import Form"
msgstr "Importformulär"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL Värd-namn"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL databasnamn"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL Port-nummer"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "Lämnas blankt pga förval"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL användarnamn"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL användar-lösenord"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar tabell-prefix"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr "Alternativ"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "Skicka"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "Läs"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "Skriv"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "Read-only"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "Ändra"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "Admin"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "Användar-behörighet"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "Användarnamn"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "Kan skapa Read-Only"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "Inget namn"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "Inget"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "Skapa kategori"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "Kalender kategorier"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "Namn"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "Textfärg"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "Bakgrundsfärg"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "Synlig för användargrupp"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "Åtgärder"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "Skapa grupp"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "Kalendergrupp"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "Tillstånd nekades"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr " blev inte inställd"

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr " uppdaterade alternativ"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "Språk"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "Tidszon"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "Välkommen"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "Inställningar"

#: includes/calendar.php:453
msgid "Log out"
msgstr "Logga ut"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "Logga in"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "Lägg till händelse"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "Sök"

#: includes/calendar.php:483
msgid "View Month"
msgstr "Visa månad"

#: includes/calendar.php:488
msgid "View date"
msgstr "Visa datum"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "Kalender-admin"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "Förvalt"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "Veckans början"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "söndag"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "måndag"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "Lördag"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24 timmars visning"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "Kalenderns namn"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "Rubrikens max-längd"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "Max-visning av händelser"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "Allmänna behörigheter"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "Kan varken läsa eller skriva händelser"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "Kan läsa men inte skriva händelser"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr " Kan skapa men inte ändra händelser"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "Kan skapa och ändra händelser"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "Förvald tidszon"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "Förvalt språk"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "Datumformat"

#: includes/calendar.php:556
msgid "Theme"
msgstr "Tema"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "Månad Dag År"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "År Månad Dag"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "Dag Månad År"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "Du har inte behörighet att göra det:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "Fel"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "Backtrace"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "Ogiltig åtgärd"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "Hemliga tecken ihopblandade. Ett möjligt försök till intrång."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "Konfigurationstyp stöds ej"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr " Okänd period:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "Ingen kalender vald"

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "Bekräfta att du vill radera:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "Bekräfta"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "Neka"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "Du har inte behörighet att ta bort kalendern"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "Borttagen kalender"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "Kunde inte ta bort kalender"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "Kalender skapad."

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "Ingen kategori vald"

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "Du har inte behörigheten att radera kategori"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "Borttagen kategori:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "Kunde inte ta bort kategori:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "Kategoriform"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "Synlig för gruppen"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "Färg är inte specifierad."

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "Ogiltig färg."

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "Du har inte behörighet att lägga till kategorier för alla kalendrar."

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "Du har inte behörighet att lägga till kategorier för den här kalendern."

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "Du har inte behörighet att ändra denna kategori."

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "Ändrad kategori:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "Skapad kategori:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "Fel vid begäran om kategori."

#: includes/display_day.php:45
msgid "Title"
msgstr "Titel"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "Tid"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "Beskrivning"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "Radera vald"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "Inga evenemang denna dag."

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "Ogiltiga argument."

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "Du har inte behörighet att läsa om denna händelse."

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "av"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "Kategori"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "När"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "Skapad:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "Senast ändrad:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "Ändrad händelse"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "Ta bort händelse"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "Föregående händelse"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "Nästa händelse"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "Visa alla händelser"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "Lägg till händelse"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "på"

#: includes/display_event.php:194
msgid "Remove"
msgstr "Ta bort"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "Händelser"

#: includes/display_event.php:228
msgid "from"
msgstr "från"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "Se ytterligare evenemang"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "fortsatt"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "Inget  evenemang valt"

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "Raderat evenemang"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "Raderade evenemang"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "Kunde inte ta bort evenemang"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "Kunde inte ta bort evenemangen"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "Du har inte behörighet att ta bort ett evenemang"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr " Du har inte behörighet att ta bort  evenemang"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "Händelseformulär"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "Ämne"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "Ändra evenemangets datum och tid "

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "Från"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "Till"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "Tidstyp"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "Normal"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "Heldag"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "Kommer att meddelas"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "Upprepas"

#: includes/event_form.php:68
msgid "Never"
msgstr "Aldrig"

#: includes/event_form.php:70
msgid "Daily"
msgstr "Dagligen"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "Veckovis"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "Månadsvis"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "Årligen"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "Varje"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "Upprepa varje så många dagar?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "Tills"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "Upprepa varje så många veckor?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "Upprepa varje så många månader?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "Upprepa varje så många år?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "Bekräfta händelse"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "Okänd tidstyp."

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "En händelse kan inte ha ett slut tidigare än starten."

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "Du har inte behörighet att skriva till den här kalendern."

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "Obligatoriska fält \"varje-dag\" är inte inställd."

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "varje dag måste vara mer än 1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "Obligatoriska fält \"varje-vecka\" är inte inställd."

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "varje vecka måste vara mer än 1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "Obligatoriska fält \"varje månad\" är inte inställd."

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "varje månad måste vara mer än 1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "Obligatoriska fält \"varje år\" är inte inställd."

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "Ogiltig händelsetyp."

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "Ändrat evenemang:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "Skapat evenemang:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "Fel vid bekräftelse av evenemang."

#: includes/form.php:32
msgid "required"
msgstr "krävs"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "Det går inte att lägga till ett icke-formelement till ett formulär."

#: includes/form.php:428
msgid "Date"
msgstr "Datum"

#: includes/globals.php:23
msgid "January"
msgstr "januari"

#: includes/globals.php:24
msgid "February"
msgstr "februari"

#: includes/globals.php:25
msgid "March"
msgstr "mars"

#: includes/globals.php:26
msgid "April"
msgstr "april"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "maj"

#: includes/globals.php:28
msgid "June"
msgstr "juni"

#: includes/globals.php:29
msgid "July"
msgstr "juli"

#: includes/globals.php:30
msgid "August"
msgstr "augusti"

#: includes/globals.php:31
msgid "September"
msgstr "september"

#: includes/globals.php:32
msgid "October"
msgstr "oktober"

#: includes/globals.php:33
msgid "November"
msgstr "november"

#: includes/globals.php:34
msgid "December"
msgstr "december"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "tisdag"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "onsdag"

#: includes/globals.php:42
msgid "Thursday"
msgstr "torsdag"

#: includes/globals.php:43
msgid "Friday"
msgstr "fredag"

#: includes/globals.php:48
msgid "Jan"
msgstr "jan"

#: includes/globals.php:49
msgid "Feb"
msgstr "feb"

#: includes/globals.php:50
msgid "Mar"
msgstr "mars"

#: includes/globals.php:51
msgid "Apr"
msgstr "apr"

#: includes/globals.php:53
msgid "Jun"
msgstr "jun"

#: includes/globals.php:54
msgid "Jul"
msgstr "jul"

#: includes/globals.php:55
msgid "Aug"
msgstr "aug"

#: includes/globals.php:56
msgid "Sep"
msgstr "sep"

#: includes/globals.php:57
msgid "Oct"
msgstr "okt"

#: includes/globals.php:58
msgid "Nov"
msgstr "nov"

#: includes/globals.php:59
msgid "Dec"
msgstr "dec"

#: includes/globals.php:69
msgid "Start Date"
msgstr "Startdatum"

#: includes/globals.php:74
msgid "Ascending"
msgstr "Stigande"

#: includes/globals.php:75
msgid "Descending"
msgstr "Fallande"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "Ingen grupp vald"

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "Du har inte behörighet att ta bort gruppen:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "Raderad grupp:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "Kunde inte ta bort grupp:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "Gruppformulär"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "Du har inte behörighet att lägga till en global grupp."

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "Du har inte behörighet att lägga till en grupp till den här kalendern."

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "Du har inte behörighet att ändra denna grupp."

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "Ändrad grupp:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "Skapad grupp:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "Fel vid bekräftelse av grupp."

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr " Du måste vara admin"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "Fel vid val av händelser i import"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "Skapad %s evenemang med %s förekomster"

#: includes/login.php:39
msgid "Logged in."
msgstr "Inloggad."

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "Felaktig inloggning"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "Du måste ge tillåtelse för cookies för att kunna logga in."

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "Lösenord"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "Loggar ut..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "Händelseformulär"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "Bekräfta händelse"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "Kan inte skapa händelse"

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID är inte inställt."

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "Ändrad händelse:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "Skapad händelse:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "Fel vi bekräftelse av händelse."

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "Ingen händelse vald."

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "Raderad händelse"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "Raderade händelser"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "Kunde inte radera händelse"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "Kunde inte radera händelser"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr " Du har inte behörighet att ta bort händelsen."

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "Du har inte behörighet att ta bort händelser."

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "Du måste vara inloggad."

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "Du har inte behörighet att ändra ditt lösenord."

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "Du måste ange ditt gamla lösenord."

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "Lösenordet matchade inte ditt gamla lösenord."

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "Du måste ange ett lösenord"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "Dina lösenord matchar inte"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "Lösenordet har ändrats"

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(Ingen titel)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "Fel i get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "Fel i get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "Evenemanget finns inte"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "Fel i get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "Evenemanget finns inte med oid"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "Fel i get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "Kategori finns inte med catid"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "Fel i get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "Gruppen finns inte med gid"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "Fel i get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "Fel i get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "Fel i get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "Fel i get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "Fel i get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "Fel i  get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "Fel uppstår när du tar bort ett evenemang."

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "Fel uppstår när du tar bort en händelse."

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "Fel uppstår när du tar bort en kalender"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "Fel uppstår när du tar bort en kategori."

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr " Fel uppstår när du tar bort en grupp."

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "Fel uppstår när du tar bort "

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "Det gick inte att läsa behörigheter."

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "Det gick inte att få fram kalendrar."

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "Kunde inte få fram användare."

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "Fel vid att få tag i användare."

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "Fel uppstår vid skapandet av användare."

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "Fel vid läsning av alternativ"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "Fel vid skapande av alternativ"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "Fel vid ändring av lösenord."

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "Fel vid ändring av tidszon."

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "Fel vid ändring av språk."

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "Fel vid skapandet av evenemang."

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "Fel vid skapandet av händelse."

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "Fel vid ändring av händelse."

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "Fel vid ändring av evenemang."

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "Fel vid skapandet av kategori."

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "Fel när du skapade grupp."

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "Fel vid ändring av kategori."

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "Fel vid ändring av grupp."

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "Fel under sökning"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "Fel vid uppdatering av användarbehörigheter."

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "Fel vid inmatning av tecken vid inloggning."

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "Fel när tecken skulle läggas till vid inloggning."

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "Fel vid uppdatering av logintecken."

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr " Fel vid borttagande av logintecken."

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "Fel vid rensning av logintecken."

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL fråga"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "anonym"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "okänd"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(Inget ämne)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB svarade med ett felaktigt datum."

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "TBA"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "till"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "Ogiltigt sorteringsalternativ"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "Ogiltigt ordningsalternativ"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "Inga evenemang hittades för dina sökkriteria."

#: includes/search.php:87
msgid "Search Results"
msgstr "Sökresultat"

#: includes/search.php:91
msgid "Date Time"
msgstr "Datum Tid"

#: includes/search.php:107
msgid "Phrase"
msgstr "Fras"

#: includes/search.php:115
msgid "Sort By"
msgstr "Sortera efter"

#: includes/search.php:118
msgid "Order"
msgstr "Ordning"

#: includes/settings.php:52
msgid "Change Password"
msgstr "Ändra lösenord"

#: includes/settings.php:61
msgid "Old Password"
msgstr "Gammalt lösenord"

#: includes/settings.php:64
msgid "New Password"
msgstr "Nytt lösenord"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "Bekräfta nytt lösenord"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "Inställningarna sparades"

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "Möjlig intrångsförsök på ditt konto."

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "Månad är utanför intervallet."

#: includes/setup.php:195
msgid "Invalid year"
msgstr "Ogiltigt år"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "Översatt \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "Bekräfta lösenord"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "Skapa admin"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "Du måste ange ett användarnamn"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "Användaren finns redan."

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "Du måste vara admin för att kunna radera användare."

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "Ingen användare vald."

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "Ingen användare"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "Inga ändringar att utföra."

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "Uppdaterade användare(-arna):"

#: includes/util.php:75
msgid "continue"
msgstr "fortsätt"

#: includes/util.php:157
msgid "Software Error"
msgstr "Programfel"

#: includes/util.php:158
msgid "Message:"
msgstr "Meddelande:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# leosoft yupp <yuparat_ouy@hotmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Thai (http://www.transifex.com/sproctor/php-calendar/language/th/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: th\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "คุณต้องเข้าสู่ระบบในฐานะผู้ดูแลระบบ"

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "แปลความ"

#: includes/admin.php:42
msgid "Version"
msgstr "เวอร์ชั่น"

#: includes/admin.php:55
msgid "Calendar"
msgstr "ปฏิทิน"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "ดำเนินการ"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "แก้ไข"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "ลบ"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "สร้างปฏิทิน"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "รายการปฏิทิน"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "ชื่อผู้ใช้"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "สร้างผู้ใช้"

#: includes/admin.php:110
msgid "User List"
msgstr ""

#: includes/admin.php:121
msgid "Import Form"
msgstr "นำเข้าจาก"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "mysql เซอร์เวอร์"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "ชื่อฐานข้อมูล"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "หมายเลข port"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "ปล่อยว่างไว้สำหรับค่าตั้งต้น"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "ชื่อผุ้ใช้ฐานข้อมูล"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "รหัสผ่านฐานข้อมูล"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr ""

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "ตกลง"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "อ่าน"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "เขียน"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "อ่านอย่างเดียว"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "แก้ไข"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "ผู้ดูแลระบบ"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "สิทธิ์ของผู้ใช้"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "ชื่อผู้ใช้"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr ""

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "ไม่ระบุชื่อ"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr "สร้างหมวดหมู่"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "หมวดหมู่ปฏิทิน"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "ชื่อ"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "สีตัวอักษร"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "สีพื้นหลัง"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "การดำเนินการ"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "สร้างกลุ่ม"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "กลุ่มปฏิทิน"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "ไม่อนุญาตให้ใช้"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "ไม่ได้ตั้งค่า"

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr ""

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "ภาษา"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "เขตเวลา"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "ยินดีต้อนรับ"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "ตั้งค่า"

#: includes/calendar.php:453
msgid "Log out"
msgstr "ออกจากระบบ"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr ""

#: includes/calendar.php:475
msgid "Add Event"
msgstr "เพิ่มเหตุการณ์"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "ค้นหา"

#: includes/calendar.php:483
msgid "View Month"
msgstr "ดูรายเดือน"

#: includes/calendar.php:488
msgid "View date"
msgstr "ดูรายวัน"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr ""

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "ค่าตั้งต้น"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "เริ่มสัปดาห์"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "อาทิตย์"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "จันทร์"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "เสาร์"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24 ชั่วโมง"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "หัวข้อปฏิทิน"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "ความยาวสูงสุดหัวเรื่อง"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "เหตุการณ์ที่เกิดขึ้นแสดงสูงสุดประจำวัน"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "การอนุญาตสาธารณะ"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "ไม่สามารถอ่านหรือเขียนเหตุการณ์"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "สามารถอ่าน แต่ไม่สามารถเขียนเหตุการณ์"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "สามารถสร้าง แต่ไม่สามาถแก้ไขเหตุการณ์"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "สามารถสร้างและแก้ไขเหตุการณ์"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "โซนเริ่มต้น"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "ภาษาเริ่มต้น"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "รูปแบบวันที่"

#: includes/calendar.php:556
msgid "Theme"
msgstr "รูปแบบ"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "เดือน วัน ปี"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "ปี เดือน วัน"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "วัน เดือน ปี"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "คุณไม่ได้รับสิทธิ์ที่จะกระทำ"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "ผิดพลาด"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "การกระทำที่ไม่ถูกต้อง"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr ""

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "ยืนยัน คุณต้องการลบ"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "ยืนยัน"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "ปฎิเสธ"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "คุณไม่ได้รับสิทธิ์ในการลบปฏิทิน"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "ลบปฏิทิน"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "ไม่สามารถลบปฏิทิน"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "สร้างปฏิทิน"

#: includes/category_delete.php:29
msgid "No category selected."
msgstr ""

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr ""

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr ""

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr ""

#: includes/category_form.php:27
msgid "Category Form"
msgstr ""

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "สีไม่ถูกต้อง"

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "แก้ไขหมวดหมู่"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr "หัวข้อ"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "เวลา"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "รายละเอียด"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "ลบรายการที่เลือก"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "ไม่มีกิจกรรมในวันนี้"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "โดย"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "หมวดหมุ่"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "เมื่อ"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "สร้างเมื่อ"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "ปรับปรุงครั้งล่าสุด"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "การปรับปรุงที่เกิดขึ้น"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "การลบที่เกิดขึ้น"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "ปรากฏการณ์ที่เกิดขึ้นก่อนหน้านี้"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "การเปลี่ยนแปลที่จะเกิดขึ้น"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "ดูที่เกิดขึ้นทั้งหมด"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "ที่"

#: includes/display_event.php:194
msgid "Remove"
msgstr "เอาออก"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr "จาก"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "ดูเหตุการณ์เพิ่มเติม"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "ต่อเนื่อง"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "ไม่ได้เลือกเหตุการณ์"

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "เอาเหตุการณ์ออก"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "ยกเลิกเหตุการณ์ทั้งหมด"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "ไม่สามารถยกเลิกเหตุการณ์ได้"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "ไม่สามารถลบเหตุการณ์"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "คุณไม่มีสิทธิ์ยกเลิกเหตุการณ์"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "คุณไม่มีสิทธิ์ยกเลิกเหตุการณ์ทั้งหมด"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "ฟอร์มเหตุการณ์"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "เรื่อง"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "เปลี่ยนวันที่และเวลาเหตุการณ์"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "จาก"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "ถึง"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "ประเภทเวลา"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "ปกติ"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "เต็มวัน"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr "ทำซ้ำ"

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr "ทุกวัน"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "ทุกสัปดาห์"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "ทุกเดือน"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "ทุกปี"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "จนถึง"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "ทำซ้ำทุกกี่สัปดาห์?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "ทำซ้ำทุกกี่เดือน?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "ทำซ้ำทุกกี่ปี?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "ส่งกิจกรรม"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "ไม่รู้จักประเภทเวลา"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "ไม่สามารถเพิ่มเหตุกาณ์ที่สิ้นสุดก่อนเริ่มต้น"

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "คุณไม่มีสิทธิ์ที่จะเขียนปฏิทินนี้"

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "ฟิลด์ที่จำเป็น \"ทุกวัน\" ไม่ได้ตั้งค่า"

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "แก้ไขเหตุการณ์"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "สร้างเหตุการณ์:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "ส่งเหตุการณ์ผิดพลาด"

#: includes/form.php:32
msgid "required"
msgstr "จำเป็นต้องมี"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr "วันที่"

#: includes/globals.php:23
msgid "January"
msgstr "มกราคม"

#: includes/globals.php:24
msgid "February"
msgstr "กุมภาพันธ์"

#: includes/globals.php:25
msgid "March"
msgstr "มีนาคม"

#: includes/globals.php:26
msgid "April"
msgstr "เมษายน"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "พฤษภาคม"

#: includes/globals.php:28
msgid "June"
msgstr "มิถุนายน"

#: includes/globals.php:29
msgid "July"
msgstr "กรกฎาคม"

#: includes/globals.php:30
msgid "August"
msgstr "สิงหาคม"

#: includes/globals.php:31
msgid "September"
msgstr "กันยายน"

#: includes/globals.php:32
msgid "October"
msgstr "ตุลาคม"

#: includes/globals.php:33
msgid "November"
msgstr "พศจิกายน"

#: includes/globals.php:34
msgid "December"
msgstr "ธันวาคม"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "อังคาร"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "พุธ"

#: includes/globals.php:42
msgid "Thursday"
msgstr "พฤหัสบดี"

#: includes/globals.php:43
msgid "Friday"
msgstr "ศูกร์"

#: includes/globals.php:48
msgid "Jan"
msgstr "ม.ค."

#: includes/globals.php:49
msgid "Feb"
msgstr "ก.พ."

#: includes/globals.php:50
msgid "Mar"
msgstr "มี.ค."

#: includes/globals.php:51
msgid "Apr"
msgstr "เม.ย."

#: includes/globals.php:53
msgid "Jun"
msgstr "พ.ค."

#: includes/globals.php:54
msgid "Jul"
msgstr "ก.ค."

#: includes/globals.php:55
msgid "Aug"
msgstr "ส.ค."

#: includes/globals.php:56
msgid "Sep"
msgstr "ก.ย."

#: includes/globals.php:57
msgid "Oct"
msgstr "ต.ค."

#: includes/globals.php:58
msgid "Nov"
msgstr "พ.ย."

#: includes/globals.php:59
msgid "Dec"
msgstr "ธ.ค."

#: includes/globals.php:69
msgid "Start Date"
msgstr "เริ่มวันที่"

#: includes/globals.php:74
msgid "Ascending"
msgstr "น้อยไปมาก"

#: includes/globals.php:75
msgid "Descending"
msgstr "มากไปน้อย"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "ไม่ได้เลือกกลุ่ม"

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "คุณไม่มีสิทธิ์ลบกลุ่ม"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "ลบกลุ่ม"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "ไม่สามารถลบกลุ่ม"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "รูปแบบกลุ่ม"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "แก้ไขกลุ่ม"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr "เข้าใช้งานอยู่"

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "ขออภัย, ไม่ถูกต้อง"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "รหัสผ่าน"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "ออกจากระบบ..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(ไม่มีหัวข้อ)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "ไม่มีเหตุการณ์"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "บุคคลทั่วไป"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "ไม่ทราบ"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(ไม่มีหัวเรื่อง)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "ถึง"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr ""

#: includes/search.php:87
msgid "Search Results"
msgstr "ผลการค้นหา"

#: includes/search.php:91
msgid "Date Time"
msgstr "วัน เวลา"

#: includes/search.php:107
msgid "Phrase"
msgstr ""

#: includes/search.php:115
msgid "Sort By"
msgstr "เรียงโดย"

#: includes/search.php:118
msgid "Order"
msgstr ""

#: includes/settings.php:52
msgid "Change Password"
msgstr "เปลี่ยนรหัสผ่าน"

#: includes/settings.php:61
msgid "Old Password"
msgstr "รหัสผ่านเดิม"

#: includes/settings.php:64
msgid "New Password"
msgstr "รหัสผ่านใหม่"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "ยืนยันรหัสผ่านใหม่"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "ปรับปรุงการตั้งค่า"

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr ""

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "ยืนยันรหัสผ่าน"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "คุณต้องระบบผู้ใช้งาน"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "ผู้ใช้งานมีอยู่แล้ว"

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "ไม่ได้เลือกผู้ใช้งาน"

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "ไม่มีผู้ใช้"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "ไม่สามารถทำการเปลี่ยนแปลง"

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr "ต่อเนื่อง"

#: includes/util.php:157
msgid "Software Error"
msgstr "โปรแกรมผิดพลาด"

#: includes/util.php:158
msgid "Message:"
msgstr "ข้อความ:"
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Vietnamese (http://www.transifex.com/sproctor/php-calendar/language/vi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: vi\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr ""

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr ""

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr ""

#: includes/admin.php:74
msgid "Calendar List"
msgstr ""

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr ""

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr ""

#: includes/admin.php:110
msgid "User List"
msgstr ""

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr ""

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr ""

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr ""

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr ""

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr ""

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr ""

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr ""

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr ""

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr ""

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr ""

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr ""

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr ""

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr ""

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr ""

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr ""

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr ""

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr ""

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr ""

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr ""

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr ""

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr ""

#: includes/calendar.php:475
msgid "Add Event"
msgstr ""

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr ""

#: includes/calendar.php:483
msgid "View Month"
msgstr ""

#: includes/calendar.php:488
msgid "View date"
msgstr ""

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr ""

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr ""

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr ""

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr ""

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr ""

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr ""

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr ""

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr ""

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr ""

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr ""

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr ""

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr ""

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr ""

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr ""

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr ""

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr ""

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr ""

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr ""

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr ""

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr ""

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr ""

#: includes/category_delete.php:29
msgid "No category selected."
msgstr ""

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr ""

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr ""

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr ""

#: includes/category_form.php:27
msgid "Category Form"
msgstr ""

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr ""

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr ""

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr ""

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr ""

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr ""

#: includes/display_day.php:111
msgid "No events on this day."
msgstr ""

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr ""

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr ""

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr ""

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr ""

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr ""

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr ""

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr ""

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr ""

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr ""

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr ""

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr ""

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr ""

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr ""

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr ""

#: includes/event_form.php:72
msgid "Weekly"
msgstr ""

#: includes/event_form.php:74
msgid "Monthly"
msgstr ""

#: includes/event_form.php:76
msgid "Yearly"
msgstr ""

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr ""

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr ""

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr ""

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr ""

#: includes/event_form.php:129
msgid "Submit Event"
msgstr ""

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr ""

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr ""

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr ""

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr ""

#: includes/globals.php:24
msgid "February"
msgstr ""

#: includes/globals.php:25
msgid "March"
msgstr ""

#: includes/globals.php:26
msgid "April"
msgstr ""

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr ""

#: includes/globals.php:28
msgid "June"
msgstr ""

#: includes/globals.php:29
msgid "July"
msgstr ""

#: includes/globals.php:30
msgid "August"
msgstr ""

#: includes/globals.php:31
msgid "September"
msgstr ""

#: includes/globals.php:32
msgid "October"
msgstr ""

#: includes/globals.php:33
msgid "November"
msgstr ""

#: includes/globals.php:34
msgid "December"
msgstr ""

#: includes/globals.php:40
msgid "Tuesday"
msgstr ""

#: includes/globals.php:41
msgid "Wednesday"
msgstr ""

#: includes/globals.php:42
msgid "Thursday"
msgstr ""

#: includes/globals.php:43
msgid "Friday"
msgstr ""

#: includes/globals.php:48
msgid "Jan"
msgstr ""

#: includes/globals.php:49
msgid "Feb"
msgstr ""

#: includes/globals.php:50
msgid "Mar"
msgstr ""

#: includes/globals.php:51
msgid "Apr"
msgstr ""

#: includes/globals.php:53
msgid "Jun"
msgstr ""

#: includes/globals.php:54
msgid "Jul"
msgstr ""

#: includes/globals.php:55
msgid "Aug"
msgstr ""

#: includes/globals.php:56
msgid "Sep"
msgstr ""

#: includes/globals.php:57
msgid "Oct"
msgstr ""

#: includes/globals.php:58
msgid "Nov"
msgstr ""

#: includes/globals.php:59
msgid "Dec"
msgstr ""

#: includes/globals.php:69
msgid "Start Date"
msgstr ""

#: includes/globals.php:74
msgid "Ascending"
msgstr ""

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr ""

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr ""

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr ""

#: includes/logout.php:29
msgid "Loggin out..."
msgstr ""

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr ""

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr ""

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr ""

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr ""

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr ""

#: includes/search.php:87
msgid "Search Results"
msgstr ""

#: includes/search.php:91
msgid "Date Time"
msgstr ""

#: includes/search.php:107
msgid "Phrase"
msgstr ""

#: includes/search.php:115
msgid "Sort By"
msgstr ""

#: includes/search.php:118
msgid "Order"
msgstr ""

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr ""

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr ""

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr ""

#: includes/user_create.php:103
msgid "User already exists."
msgstr ""

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr ""

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr ""

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr ""

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# xinmate <DISLONGJIALU@126.com>, 2013
# strangesheep <strangesheep@gmail.com>, 2018
# xinmate <DISLONGJIALU@126.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Chinese (http://www.transifex.com/sproctor/php-calendar/language/zh/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "您必须登录为管理员"

#: includes/admin.php:33
msgid "Calendars"
msgstr "日程表组"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "用户"

#: includes/admin.php:37
msgid "Import"
msgstr "导入"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "翻译"

#: includes/admin.php:42
msgid "Version"
msgstr "版本"

#: includes/admin.php:55
msgid "Calendar"
msgstr "日程表"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "行为"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "修改"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "删除"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "创建日程表"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "日程表"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "用户名"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "组"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "编辑组"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "新用户"

#: includes/admin.php:110
msgid "User List"
msgstr "用户列表"

#: includes/admin.php:121
msgid "Import Form"
msgstr "导入表单"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL主机名"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL 数据库名"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL 端口"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "默认为空"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL用户名"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL用户密码"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar表前缀"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "导入日程表"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "这个脚本需要访问你的php-calendar所在的目录来写入译文。除此之外，你还可以在命令行运行translate.php,或者通过其它可以从.po文件生成.mo文件的工具，比如msgfmt以及其它的获取文本工具。"

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "生成译文"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "日程表配置"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "类别组"

#: includes/cadmin.php:68
msgid "Options"
msgstr "选项组"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "提交"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "读取"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "写入"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "只读"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "修改"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "管理员"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "用户权限"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "用户名"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "可以创建只读"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "没有名称"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "无"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "创建分类"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "日历分类组"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "名称"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "文字颜色"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "背景颜色"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "在用户组中可见"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "行为组"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "创建用户组"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "日程表群组"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "没有权限"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "未设置"

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "更新选项。"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "语言"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "时区"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "欢迎"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "设置"

#: includes/calendar.php:453
msgid "Log out"
msgstr "注销"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "登录"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "新增日程"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "搜索"

#: includes/calendar.php:483
msgid "View Month"
msgstr "月视图"

#: includes/calendar.php:488
msgid "View date"
msgstr "日视图"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "日程表管理"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "默认"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "每周从周几开始"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "星期日"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "星期一"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "星期六"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24小时制"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "日程表标题"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "最大标题字数限制"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "每天日程数最多显示"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "公共权限"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "不能读取或写入日程"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "可以读取但不能写入日程"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "可以创建但不能修改日程"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "可以创建和修改日程"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "默认时区"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "默认语言"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "日期格式"

#: includes/calendar.php:556
msgid "Theme"
msgstr "主题"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "月日年"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "年月日"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "日月年"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "你没有权限执行："

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "错误"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "回溯"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "无效行为"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "秘钥不匹配，可能有伪造企图。"

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "不支持的配置类型"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "必须填写必填项 \"%s\"。"

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "异常\"%s\" 时间： \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "无法识别的时间段："

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "异常\"%s\" 日期： \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "日期格式无效。"

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "没有日程表被选择。"

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "确认删除："

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "确认"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "拒绝"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "你没有权限删除日程表"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "删除日程表"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "无法删除日程表"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "日程表创建成功。"

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "没有选择类别。"

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "你没有权限删除类别："

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "删除类别："

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "无法删除类别："

#: includes/category_form.php:27
msgid "Category Form"
msgstr "类别表单"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "对组可见"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "提交类别"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "没有指定颜色。"

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "颜色无效。"

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "你没有权限在所有的日程表中添加类别。"

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "你没有权限在这个日程表中添加类别。"

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "您没有权限修改此类别。"

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "更改类别："

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "建立类别："

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "提交类别出错。"

#: includes/display_day.php:45
msgid "Title"
msgstr "标题"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "时间"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "描述"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "删除已选定"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "今日无日程。"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "无效参数。"

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "您没有权限读取此日程。"

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "申请人"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "类别"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "时限"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "创建："

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "最后修改："

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "修改记录"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "删除记录"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "上次记录"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "下次记录"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "查看所有记录"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "添加记录"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "在"

#: includes/display_event.php:194
msgid "Remove"
msgstr "删除"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "记录"

#: includes/display_event.php:228
msgid "from"
msgstr "从"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "W"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "日程显示"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "继续"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "无效日期"

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "没有选取日程"

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "删除日程"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "批量删除日程"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "不能删除日程"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "不能批量删除日程"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "你没有权限删除日程"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "你没有权限批量删除日程"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "日程表单"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "主题"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "改变日程的日期和时间"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "从"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "到"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "时间类型"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "普通"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "全天"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "公告"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "重复"

#: includes/event_form.php:68
msgid "Never"
msgstr "永不"

#: includes/event_form.php:70
msgid "Daily"
msgstr "日度"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "周度"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "月度"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "年度"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "每"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "重复周期（天）？"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "直到"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "重复周期（周）？"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "重复周期（月）？"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "重复周期（年）？"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "提交日程"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "无法识别的时间类型。"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "一个日程不能在开始前结束。"

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "您没有权限写入该日程。"

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "必填字段 \"every-day（每天）\"未设置。"

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "每天必须大于1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "必填字段 \"every-week（每周）\"未设置。"

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "每周必须大于1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "必填字段 \"every-month（每月）\"未设置。"

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "每月必须大于1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "必填字段 \"every-year（每年）\"未设置。"

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "无效日程类型。"

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "修改日程："

#: includes/event_form.php:425
msgid "Created event: "
msgstr "建立日程："

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "提交日程时发生错误。"

#: includes/form.php:32
msgid "required"
msgstr "必填项"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "不能给一个表单添加非表单元素。"

#: includes/form.php:428
msgid "Date"
msgstr "日期"

#: includes/globals.php:23
msgid "January"
msgstr "一月"

#: includes/globals.php:24
msgid "February"
msgstr "二月"

#: includes/globals.php:25
msgid "March"
msgstr "三月"

#: includes/globals.php:26
msgid "April"
msgstr "四月"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "五月"

#: includes/globals.php:28
msgid "June"
msgstr "六月"

#: includes/globals.php:29
msgid "July"
msgstr "七月"

#: includes/globals.php:30
msgid "August"
msgstr "八月"

#: includes/globals.php:31
msgid "September"
msgstr "九月"

#: includes/globals.php:32
msgid "October"
msgstr "十月"

#: includes/globals.php:33
msgid "November"
msgstr "十一月"

#: includes/globals.php:34
msgid "December"
msgstr "十二月"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "星期二"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "星期三"

#: includes/globals.php:42
msgid "Thursday"
msgstr "星期四"

#: includes/globals.php:43
msgid "Friday"
msgstr "星期五"

#: includes/globals.php:48
msgid "Jan"
msgstr "一月"

#: includes/globals.php:49
msgid "Feb"
msgstr "二月"

#: includes/globals.php:50
msgid "Mar"
msgstr "三月"

#: includes/globals.php:51
msgid "Apr"
msgstr "四月"

#: includes/globals.php:53
msgid "Jun"
msgstr "六月"

#: includes/globals.php:54
msgid "Jul"
msgstr "七月"

#: includes/globals.php:55
msgid "Aug"
msgstr "八月"

#: includes/globals.php:56
msgid "Sep"
msgstr "九月"

#: includes/globals.php:57
msgid "Oct"
msgstr "十月"

#: includes/globals.php:58
msgid "Nov"
msgstr "十一月"

#: includes/globals.php:59
msgid "Dec"
msgstr "十二月"

#: includes/globals.php:69
msgid "Start Date"
msgstr "开始日期"

#: includes/globals.php:74
msgid "Ascending"
msgstr "升序"

#: includes/globals.php:75
msgid "Descending"
msgstr "降序"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "没有选择组。"

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "你没有权限删除组："

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "删除组："

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "无法删除组："

#: includes/group_form.php:27
msgid "Group Form"
msgstr "从组"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "提交组"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "你没有权限添加全局组。"

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "你没有权限在这个日程表中添加组。"

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "你没有权限修改此组。"

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "更改组："

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "新增群组："

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "提交组时发生错误。"

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "需要管理员权限"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "导入日程过程中选择日程错误"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "创建包含突发事件%s的日程%s成功"

#: includes/login.php:39
msgid "Logged in."
msgstr "登录成功。"

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "对不起，登录无效。"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "您必须启用Cookies才能登录。"

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "密码"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "注销..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "突发事件表单"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "确认突发事件"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "不能创建突发事件。"

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "未设置EID。"

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "修改突发事件："

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "创建突发事件："

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "提交突发事件时发生错误。"

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "没有突发事件被选择。"

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "删除突发事件"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "删除突发事件组"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "无法删除突发事件"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "无法批量删除突发事件组"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "你没有权限删除突发事件。"

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "你没有权限突发事件组。"

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "你必须先登录。"

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "你没有权限修改你的密码。"

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "你必须输入你的旧密码。"

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "您输入的密码和你的旧密码不匹配。"

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "您必须输入一个密码"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "前后输入的密码不匹配。"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "修改密码成功。"

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(无标题)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "在get_occurrences_by_date_range发生错误"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "在get_event_by_eid发生错误"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "日程不存在"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr "在get_event_by_oid发生错误"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "有此oid的日志不存在。"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "在get_category发生错误"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "有此catid的类别不存在。"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "在get_group发生错误"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "有此gid的组不存在"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "在get_groups发生错误"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "在get_user_groups发生错误"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "在get_categories发生错误"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "在get_visible_categories发生错误"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "在get_occurrence_by_oid发生错误"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "在get_occurrences_by_eid发生错误"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "移除日程时发送错误。"

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "移除记录时发生错误。"

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "移除日程表时发生错误。"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "移除分类时发生错误。"

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "删除群组时发生错误。"

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "删除时发生错误。"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "无法读取权限。"

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "无法批量取得日程表。"

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "无法获得用户。"

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "获得用户时发生错误。"

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "添加用户时发生错误。"

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "读取选项时发生错误。"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "创建选项时发生错误。"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "更新密码时发生错误。"

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "更新时区时发生错误。"

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "更新语言时发生错误。"

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "用户设置组时发生错误。"

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "用户移除组时发生错误。"

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "创建日程时发生错误。"

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "创建突发事件时发生错误。"

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "修改突发事件时发生错误。"

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "修改日程时发生错误。"

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "创建分类时发生错误。"

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "添加群组时发生错误"

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "修改分类时发生错误。"

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "修改群组时发生错误。"

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "搜索时发生错误"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "更新用户权限时发生错误。"

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "获取登录令牌时发生错误。"

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "添加登录令牌时发生错误。"

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "更新登录令牌时发生错误。"

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "修改登录令牌时发生错误。"

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "清除登录令牌时发生错误。"

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL查询"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "匿名"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "未知"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "（无主题）"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB（数据库）返回一个无效的日期。"

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "公告"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "到"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "无效的分类选项"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "无效的排序选项"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "没有符合搜索条件的事件"

#: includes/search.php:87
msgid "Search Results"
msgstr "搜寻结果"

#: includes/search.php:91
msgid "Date Time"
msgstr "日期时间"

#: includes/search.php:107
msgid "Phrase"
msgstr "习惯用法"

#: includes/search.php:115
msgid "Sort By"
msgstr "分类"

#: includes/search.php:118
msgid "Order"
msgstr "排序"

#: includes/settings.php:52
msgid "Change Password"
msgstr "更改密码"

#: includes/settings.php:61
msgid "Old Password"
msgstr "旧密码"

#: includes/settings.php:64
msgid "New Password"
msgstr "新密码"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "确认新密码"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "设置更新。"

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "可能通过你的账号进行黑客攻击。"

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "月越界"

#: includes/setup.php:195
msgid "Invalid year"
msgstr "无效年"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "翻译 \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "确认密码"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "创建管理员"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "您必须指定一个用户名"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "此用户已经存在。"

#: includes/user_create.php:113
msgid "Added user."
msgstr "增加用户成功。"

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "你必须是管理员才能删除用户。"

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "没有选择任何用户。"

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "编辑用户组"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "组更新成功。"

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "没有用户"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "没有改变。"

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr "更新用户："

#: includes/util.php:75
msgid "continue"
msgstr "继续"

#: includes/util.php:157
msgid "Software Error"
msgstr "软件错误"

#: includes/util.php:158
msgid "Message:"
msgstr "信息："
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2022-01-28 15:21+0000\n"
"Last-Translator: Transifex Bot <>\n"
"Language-Team: Chinese (China) (http://www.transifex.com/sproctor/php-calendar/language/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr ""

#: includes/admin.php:33
msgid "Calendars"
msgstr ""

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr ""

#: includes/admin.php:37
msgid "Import"
msgstr ""

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr ""

#: includes/admin.php:42
msgid "Version"
msgstr ""

#: includes/admin.php:55
msgid "Calendar"
msgstr ""

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr ""

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr ""

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr ""

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr ""

#: includes/admin.php:74
msgid "Calendar List"
msgstr ""

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr ""

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr ""

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr ""

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr ""

#: includes/admin.php:110
msgid "User List"
msgstr ""

#: includes/admin.php:121
msgid "Import Form"
msgstr ""

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr ""

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr ""

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr ""

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr ""

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr ""

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr ""

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: includes/admin.php:134
msgid "Import Calendar"
msgstr ""

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: includes/admin.php:153
msgid "Generate Translations"
msgstr ""

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr ""

#: includes/cadmin.php:35
msgid "Categories"
msgstr ""

#: includes/cadmin.php:68
msgid "Options"
msgstr ""

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr ""

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr ""

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr ""

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr ""

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr ""

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr ""

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr ""

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr ""

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr ""

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr ""

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr ""

#: includes/cadmin.php:168
msgid "Create category"
msgstr ""

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr ""

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr ""

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr ""

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr ""

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr ""

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr ""

#: includes/cadmin.php:212
msgid "Create group"
msgstr ""

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr ""

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr ""

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr ""

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr ""

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr ""

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr ""

#: includes/calendar.php:443
msgid "Welcome"
msgstr ""

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr ""

#: includes/calendar.php:453
msgid "Log out"
msgstr ""

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr ""

#: includes/calendar.php:475
msgid "Add Event"
msgstr ""

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr ""

#: includes/calendar.php:483
msgid "View Month"
msgstr ""

#: includes/calendar.php:488
msgid "View date"
msgstr ""

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr ""

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr ""

#: includes/calendar.php:533
msgid "Week Start"
msgstr ""

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr ""

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr ""

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr ""

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr ""

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr ""

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr ""

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr ""

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr ""

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr ""

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr ""

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr ""

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr ""

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr ""

#: includes/calendar.php:552
msgid "Default Language"
msgstr ""

#: includes/calendar.php:554
msgid "Date Format"
msgstr ""

#: includes/calendar.php:556
msgid "Theme"
msgstr ""

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr ""

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr ""

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr ""

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr ""

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr ""

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr ""

#: includes/calendar.php:676
msgid "Invalid action"
msgstr ""

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr ""

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr ""

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr ""

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr ""

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr ""

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr ""

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr ""

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr ""

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr ""

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr ""

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr ""

#: includes/category_delete.php:29
msgid "No category selected."
msgstr ""

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr ""

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr ""

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr ""

#: includes/category_form.php:27
msgid "Category Form"
msgstr ""

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr ""

#: includes/category_form.php:49
msgid "Submit Category"
msgstr ""

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr ""

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr ""

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr ""

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr ""

#: includes/category_submit.php:86
msgid "Created category: "
msgstr ""

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr ""

#: includes/display_day.php:45
msgid "Title"
msgstr ""

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr ""

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr ""

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr ""

#: includes/display_day.php:111
msgid "No events on this day."
msgstr ""

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr ""

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr ""

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr ""

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr ""

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr ""

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr ""

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr ""

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr ""

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr ""

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr ""

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr ""

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr ""

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr ""

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr ""

#: includes/display_event.php:194
msgid "Remove"
msgstr ""

#: includes/display_event.php:201
msgid "Occurrences"
msgstr ""

#: includes/display_event.php:228
msgid "from"
msgstr ""

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr ""

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr ""

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr ""

#: includes/display_week.php:39
msgid "Invalid date."
msgstr ""

#: includes/event_delete.php:29
msgid "No event selected."
msgstr ""

#: includes/event_delete.php:75
msgid "Removed event"
msgstr ""

#: includes/event_delete.php:77
msgid "Removed events"
msgstr ""

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr ""

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr ""

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr ""

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr ""

#: includes/event_form.php:40
msgid "Event Form"
msgstr ""

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr ""

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr ""

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr ""

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr ""

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr ""

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr ""

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr ""

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr ""

#: includes/event_form.php:66
msgid "Repeats"
msgstr ""

#: includes/event_form.php:68
msgid "Never"
msgstr ""

#: includes/event_form.php:70
msgid "Daily"
msgstr ""

#: includes/event_form.php:72
msgid "Weekly"
msgstr ""

#: includes/event_form.php:74
msgid "Monthly"
msgstr ""

#: includes/event_form.php:76
msgid "Yearly"
msgstr ""

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr ""

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr ""

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr ""

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr ""

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr ""

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr ""

#: includes/event_form.php:129
msgid "Submit Event"
msgstr ""

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr ""

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr ""

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr ""

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr ""

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr ""

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr ""

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr ""

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr ""

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr ""

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr ""

#: includes/event_form.php:423
msgid "Modified event: "
msgstr ""

#: includes/event_form.php:425
msgid "Created event: "
msgstr ""

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr ""

#: includes/form.php:32
msgid "required"
msgstr ""

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr ""

#: includes/form.php:428
msgid "Date"
msgstr ""

#: includes/globals.php:23
msgid "January"
msgstr ""

#: includes/globals.php:24
msgid "February"
msgstr ""

#: includes/globals.php:25
msgid "March"
msgstr ""

#: includes/globals.php:26
msgid "April"
msgstr ""

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr ""

#: includes/globals.php:28
msgid "June"
msgstr ""

#: includes/globals.php:29
msgid "July"
msgstr ""

#: includes/globals.php:30
msgid "August"
msgstr ""

#: includes/globals.php:31
msgid "September"
msgstr ""

#: includes/globals.php:32
msgid "October"
msgstr ""

#: includes/globals.php:33
msgid "November"
msgstr ""

#: includes/globals.php:34
msgid "December"
msgstr ""

#: includes/globals.php:40
msgid "Tuesday"
msgstr ""

#: includes/globals.php:41
msgid "Wednesday"
msgstr ""

#: includes/globals.php:42
msgid "Thursday"
msgstr ""

#: includes/globals.php:43
msgid "Friday"
msgstr ""

#: includes/globals.php:48
msgid "Jan"
msgstr ""

#: includes/globals.php:49
msgid "Feb"
msgstr ""

#: includes/globals.php:50
msgid "Mar"
msgstr ""

#: includes/globals.php:51
msgid "Apr"
msgstr ""

#: includes/globals.php:53
msgid "Jun"
msgstr ""

#: includes/globals.php:54
msgid "Jul"
msgstr ""

#: includes/globals.php:55
msgid "Aug"
msgstr ""

#: includes/globals.php:56
msgid "Sep"
msgstr ""

#: includes/globals.php:57
msgid "Oct"
msgstr ""

#: includes/globals.php:58
msgid "Nov"
msgstr ""

#: includes/globals.php:59
msgid "Dec"
msgstr ""

#: includes/globals.php:69
msgid "Start Date"
msgstr ""

#: includes/globals.php:74
msgid "Ascending"
msgstr ""

#: includes/globals.php:75
msgid "Descending"
msgstr ""

#: includes/group_delete.php:29
msgid "No group selected."
msgstr ""

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr ""

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr ""

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr ""

#: includes/group_form.php:27
msgid "Group Form"
msgstr ""

#: includes/group_form.php:34
msgid "Submit Group"
msgstr ""

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr ""

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr ""

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr ""

#: includes/group_submit.php:61
msgid "Created group: "
msgstr ""

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr ""

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr ""

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr ""

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: includes/login.php:39
msgid "Logged in."
msgstr ""

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr ""

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr ""

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr ""

#: includes/logout.php:29
msgid "Loggin out..."
msgstr ""

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr ""

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr ""

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr ""

#: includes/occur_form.php:149
msgid "EID not set."
msgstr ""

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr ""

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr ""

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr ""

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr ""

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr ""

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr ""

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr ""

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr ""

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr ""

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr ""

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr ""

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr ""

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr ""

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr ""

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr ""

#: includes/password_submit.php:58
msgid "Password updated."
msgstr ""

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr ""

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr ""

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr ""

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr ""

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr ""

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr ""

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr ""

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr ""

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr ""

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr ""

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr ""

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr ""

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr ""

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr ""

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr ""

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr ""

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr ""

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr ""

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr ""

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr ""

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr ""

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr ""

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr ""

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr ""

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr ""

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr ""

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr ""

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr ""

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr ""

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr ""

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr ""

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr ""

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr ""

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr ""

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr ""

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr ""

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr ""

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr ""

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr ""

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr ""

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr ""

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr ""

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr ""

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr ""

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr ""

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr ""

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr ""

#: includes/search.php:43
msgid "Invalid sort option"
msgstr ""

#: includes/search.php:49
msgid "Invalid order option"
msgstr ""

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr ""

#: includes/search.php:87
msgid "Search Results"
msgstr ""

#: includes/search.php:91
msgid "Date Time"
msgstr ""

#: includes/search.php:107
msgid "Phrase"
msgstr ""

#: includes/search.php:115
msgid "Sort By"
msgstr ""

#: includes/search.php:118
msgid "Order"
msgstr ""

#: includes/settings.php:52
msgid "Change Password"
msgstr ""

#: includes/settings.php:61
msgid "Old Password"
msgstr ""

#: includes/settings.php:64
msgid "New Password"
msgstr ""

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr ""

#: includes/settings.php:139
msgid "Settings updated."
msgstr ""

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr ""

#: includes/setup.php:187
msgid "Month is out of range."
msgstr ""

#: includes/setup.php:195
msgid "Invalid year"
msgstr ""

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr ""

#: includes/user_create.php:70
msgid "Make Admin"
msgstr ""

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr ""

#: includes/user_create.php:103
msgid "User already exists."
msgstr ""

#: includes/user_create.php:113
msgid "Added user."
msgstr ""

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr ""

#: includes/user_delete.php:34
msgid "No user selected."
msgstr ""

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr ""

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr ""

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr ""

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr ""

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr ""

#: includes/util.php:75
msgid "continue"
msgstr ""

#: includes/util.php:157
msgid "Software Error"
msgstr ""

#: includes/util.php:158
msgid "Message:"
msgstr ""
# PHP-Calendar.
# Copyright (C) 2014 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# 
# Translators:
# Wayne <wayne.cw.kao@gmail.com>, 2014
# Wayne <wayne.cw.kao@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: php-calendar\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2014-02-18 09:54-0500\n"
"PO-Revision-Date: 2017-09-23 19:34+0000\n"
"Last-Translator: Wayne <wayne.cw.kao@gmail.com>\n"
"Language-Team: Chinese (Taiwan) (http://www.transifex.com/sproctor/php-calendar/language/zh_TW/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: includes/admin.php:28 includes/cadmin.php:26
msgid "You must be logged in as an admin."
msgstr "您必須以一個管理員登入"

#: includes/admin.php:33
msgid "Calendars"
msgstr "行事曆"

#: includes/admin.php:35 includes/cadmin.php:33
msgid "Users"
msgstr "使用者"

#: includes/admin.php:37
msgid "Import"
msgstr "匯入"

#: includes/admin.php:39 includes/translate.php:38
msgid "Translate"
msgstr "翻譯"

#: includes/admin.php:42
msgid "Version"
msgstr "版本"

#: includes/admin.php:55
msgid "Calendar"
msgstr "行事曆"

#: includes/admin.php:56 includes/admin.php:91
msgid "Action"
msgstr "動作"

#: includes/admin.php:63 includes/cadmin.php:156 includes/cadmin.php:202
#: includes/display_event.php:193
msgid "Edit"
msgstr "編輯"

#: includes/admin.php:65 includes/admin.php:101 includes/cadmin.php:161
#: includes/cadmin.php:206 includes/display_event.php:78
#: includes/display_event.php:166
msgid "Delete"
msgstr "刪除"

#: includes/admin.php:70 includes/calendar_form.php:85
msgid "Create Calendar"
msgstr "建立行事曆"

#: includes/admin.php:74
msgid "Calendar List"
msgstr "行事曆清單"

#: includes/admin.php:88 includes/login.php:77
msgid "Username"
msgstr "使用者名稱"

#: includes/admin.php:89 includes/cadmin.php:37 includes/cadmin.php:130
#: includes/user_create.php:73
msgid "Groups"
msgstr "群組"

#: includes/admin.php:90 includes/admin.php:100 includes/cadmin.php:104
#: includes/cadmin.php:131
msgid "Edit Groups"
msgstr "編輯群組"

#: includes/admin.php:106 includes/user_create.php:51
msgid "Create User"
msgstr "建立使用者"

#: includes/admin.php:110
msgid "User List"
msgstr "使用者清單"

#: includes/admin.php:121
msgid "Import Form"
msgstr "匯入表單"

#: includes/admin.php:122
msgid "MySQL Host Name"
msgstr "MySQL 主機名稱"

#: includes/admin.php:123
msgid "MySQL Database Name"
msgstr "MySQL 資料庫名稱"

#: includes/admin.php:124
msgid "MySQL Port Number"
msgstr "MySQL 連接埠數字"

#: includes/admin.php:124
msgid "Leave blank for default"
msgstr "留下空白為預設"

#: includes/admin.php:125
msgid "MySQL User Name"
msgstr "MySQL 使用者名稱"

#: includes/admin.php:126
msgid "MySQL User Password"
msgstr "MySQL 使用者密碼"

#: includes/admin.php:129
msgid "PHP-Calendar Table Prefix"
msgstr "PHP-Calendar 表格字首"

#: includes/admin.php:134
msgid "Import Calendar"
msgstr "匯入行事曆"

#: includes/admin.php:150
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr "為了寫入翻譯檔案此腳本需要讀取存取您的行事曆目錄. 或者, 您能從命令列執行 translate.php 或是使用 msgfmt 或任何其它 gettext 工具可以產生 .mo 檔案從 .po 檔案."

#: includes/admin.php:153
msgid "Generate Translations"
msgstr "產生翻譯"

#: includes/cadmin.php:31
msgid "Calendar Configuration"
msgstr "行事曆組態"

#: includes/cadmin.php:35
msgid "Categories"
msgstr "類別"

#: includes/cadmin.php:68
msgid "Options"
msgstr "選項"

#: includes/cadmin.php:72 includes/cadmin.php:121
#: includes/calendar_form.php:92 includes/settings.php:58
#: includes/settings.php:98 includes/user_create.php:58
#: includes/user_groups.php:70
msgid "Submit"
msgstr "提出"

#: includes/cadmin.php:98 includes/cadmin.php:125
msgid "Read"
msgstr "讀取"

#: includes/cadmin.php:99 includes/cadmin.php:126
msgid "Write"
msgstr "寫入"

#: includes/cadmin.php:100 includes/event_form.php:110
msgid "Read-only"
msgstr "唯讀"

#: includes/cadmin.php:101 includes/cadmin.php:128 includes/display_day.php:89
#: includes/display_event.php:76 includes/display_event.php:162
msgid "Modify"
msgstr "修改"

#: includes/cadmin.php:102 includes/cadmin.php:129 includes/calendar.php:496
#: includes/user_create.php:71
msgid "Admin"
msgstr "管理員"

#: includes/cadmin.php:117
msgid "User Permissions"
msgstr "使用者權限"

#: includes/cadmin.php:124 includes/user_create.php:61
msgid "User Name"
msgstr "使用者名稱"

#: includes/cadmin.php:127
msgid "Can Create Read-Only"
msgstr "可建立唯讀"

#: includes/cadmin.php:146 includes/cadmin.php:197
msgid "No Name"
msgstr "沒有名稱"

#: includes/cadmin.php:149 includes/category_form.php:44
#: includes/event_form.php:113
msgid "None"
msgstr "無"

#: includes/cadmin.php:168
msgid "Create category"
msgstr "建立類別"

#: includes/cadmin.php:171
msgid "Calendar Categories"
msgstr "行事曆類別"

#: includes/cadmin.php:174 includes/cadmin.php:218
#: includes/category_form.php:28 includes/group_form.php:28
msgid "Name"
msgstr "名稱"

#: includes/cadmin.php:175 includes/category_form.php:40
msgid "Text Color"
msgstr "文字顏色"

#: includes/cadmin.php:176 includes/category_form.php:41
msgid "Background Color"
msgstr "背景顏色"

#: includes/cadmin.php:177
msgid "Visible to User Group"
msgstr "可檢視於使用者群組"

#: includes/cadmin.php:178 includes/cadmin.php:219
msgid "Actions"
msgstr "動作"

#: includes/cadmin.php:212
msgid "Create group"
msgstr "建立群組"

#: includes/cadmin.php:215
msgid "Calendar Groups"
msgstr "行事曆群組"

#: includes/cadmin_submit.php:26 includes/calendar_form.php:26
#: includes/user_create.php:26 includes/user_groups.php:26
#: includes/user_permissions_submit.php:27
msgid "Permission denied"
msgstr "權限被拒絕"

#: includes/cadmin_submit.php:39
msgid " was not set."
msgstr "並未設定"

#: includes/cadmin_submit.php:46
msgid "Updated options"
msgstr "已更新選項"

#: includes/calendar.php:118 includes/settings.php:104
msgid "Language"
msgstr "語言"

#: includes/calendar.php:119 includes/settings.php:101
msgid "Timezone"
msgstr "時區"

#: includes/calendar.php:443
msgid "Welcome"
msgstr "歡迎"

#: includes/calendar.php:450 includes/settings.php:31 includes/settings.php:91
msgid "Settings"
msgstr "設定值"

#: includes/calendar.php:453
msgid "Log out"
msgstr "登出"

#: includes/calendar.php:457 includes/login.php:57 includes/login.php:68
msgid "Log in"
msgstr "登入"

#: includes/calendar.php:475
msgid "Add Event"
msgstr "加入事件"

#: includes/calendar.php:479 includes/search.php:106 includes/search.php:121
msgid "Search"
msgstr "搜尋"

#: includes/calendar.php:483
msgid "View Month"
msgstr "檢視月份"

#: includes/calendar.php:488
msgid "View date"
msgstr "檢視日期"

#: includes/calendar.php:492
msgid "Calendar Admin"
msgstr "行事曆管理員"

#: includes/calendar.php:527 includes/calendar.php:588
#: includes/calendar.php:597 includes/settings.php:81
msgid "Default"
msgstr "預設"

#: includes/calendar.php:533
msgid "Week Start"
msgstr "週開始於"

#: includes/calendar.php:535 includes/globals.php:38
msgid "Sunday"
msgstr "週日"

#: includes/calendar.php:536 includes/globals.php:39
msgid "Monday"
msgstr "週一"

#: includes/calendar.php:537 includes/globals.php:44
msgid "Saturday"
msgstr "週六"

#: includes/calendar.php:539
msgid "24 Hour Time"
msgstr "24 小時時制"

#: includes/calendar.php:540
msgid "Calendar Title"
msgstr "行事曆標題"

#: includes/calendar.php:541
msgid "Maximum Subject Length"
msgstr "最大主題長度"

#: includes/calendar.php:542
msgid "Events Display Daily Maximum"
msgstr "每日事件顯示最大數"

#: includes/calendar.php:543
msgid "Public Permissions"
msgstr "公眾權限"

#: includes/calendar.php:545
msgid "Cannot read nor write events"
msgstr "無法讀取和寫入事件"

#: includes/calendar.php:546
msgid "Can read but not write events"
msgstr "可以讀取但無法寫入事件"

#: includes/calendar.php:547
msgid "Can create but not modify events"
msgstr "可以建立但不能修改事件"

#: includes/calendar.php:548
msgid "Can create and modify events"
msgstr "可以建立和修改事件"

#: includes/calendar.php:551
msgid "Default Timezone"
msgstr "預設時區"

#: includes/calendar.php:552
msgid "Default Language"
msgstr "預設語言"

#: includes/calendar.php:554
msgid "Date Format"
msgstr "日期格式"

#: includes/calendar.php:556
msgid "Theme"
msgstr "主題"

#: includes/calendar.php:615
msgid "Month Day Year"
msgstr "月 日 年"

#: includes/calendar.php:616
msgid "Year Month Day"
msgstr "年 月 日"

#: includes/calendar.php:617
msgid "Day Month Year"
msgstr "日 月 年"

#: includes/calendar.php:649
msgid "You do not have permission to do that: "
msgstr "您沒有權限去做那個:"

#: includes/calendar.php:662 includes/util.php:156
msgid "Error"
msgstr "錯誤"

#: includes/calendar.php:664 includes/util.php:160
msgid "Backtrace"
msgstr "回溯"

#: includes/calendar.php:676
msgid "Invalid action"
msgstr "無效的動作"

#: includes/calendar.php:721
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr "秘密記號不相符. 可能要求偽造嘗試."

#: includes/calendar.php:800
msgid "Unsupported config type"
msgstr "不支援的組態類型"

#: includes/calendar.php:810
#, php-format
msgid "Required field \"%s\" was not set."
msgstr "要求的欄位 \"%s\" 沒有設定"

#: includes/calendar.php:819
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr "畸形的 \"%s\" 時間: \"%s\""

#: includes/calendar.php:834
msgid "Unrecognized period: "
msgstr "無法辨識的時段:"

#: includes/calendar.php:842
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr "畸形的 \"%s\" 日期: \"%s\""

#: includes/calendar.php:863
msgid "Invalid date_format."
msgstr "無效的 date_format"

#: includes/calendar_delete.php:29
msgid "No calendar selected."
msgstr "沒有行事曆被選取"

#: includes/calendar_delete.php:45 includes/category_delete.php:49
#: includes/event_delete.php:46 includes/group_delete.php:49
#: includes/occurrence_delete.php:48 includes/user_delete.php:50
msgid "Confirm you want to delete:"
msgstr "確定您要刪除:"

#: includes/calendar_delete.php:47 includes/category_delete.php:51
#: includes/event_delete.php:48 includes/group_delete.php:51
#: includes/occurrence_delete.php:50 includes/user_delete.php:52
msgid "Confirm"
msgstr "確定"

#: includes/calendar_delete.php:50 includes/category_delete.php:54
#: includes/event_delete.php:51 includes/group_delete.php:54
#: includes/occurrence_delete.php:53 includes/user_delete.php:55
msgid "Deny"
msgstr "拒絕"

#: includes/calendar_delete.php:58
msgid "You do not have permission to remove calendar"
msgstr "您沒有權限移除行事曆"

#: includes/calendar_delete.php:63
msgid "Removed calendar"
msgstr "已移除的行事曆"

#: includes/calendar_delete.php:65
msgid "Could not remove calendar"
msgstr "不能移除行事曆"

#: includes/calendar_form.php:64
msgid "Calendar created."
msgstr "行事曆已建立"

#: includes/category_delete.php:29
msgid "No category selected."
msgstr "沒有類別被選取"

#: includes/category_delete.php:63
msgid "You do not have permission to delete category: "
msgstr "您沒有權限刪除類別:"

#: includes/category_delete.php:68
msgid "Removed category: "
msgstr "已移除的類別:"

#: includes/category_delete.php:71
msgid "Could not remove category: "
msgstr "無法移除類別:"

#: includes/category_form.php:27
msgid "Category Form"
msgstr "類別表單"

#: includes/category_form.php:43
msgid "Visible to groups"
msgstr "可檢視於群組"

#: includes/category_form.php:49
msgid "Submit Category"
msgstr "提出類別"

#: includes/category_submit.php:33
msgid "Color not specified."
msgstr "顏色未指定"

#: includes/category_submit.php:47
msgid "Invalid color."
msgstr "無效的顏色"

#: includes/category_submit.php:55
msgid "You do not have permission to add categories to all calendars."
msgstr "您沒有權限加入類別到所有行事曆"

#: includes/category_submit.php:60
msgid "You do not have permission to add categories to this calendar."
msgstr "您沒有權限加入類別到此行事曆"

#: includes/category_submit.php:73
msgid "You do not have permission to modify this category."
msgstr "您沒有權限修改此類別"

#: includes/category_submit.php:82
msgid "Modified category: "
msgstr "已修改的類別:"

#: includes/category_submit.php:86
msgid "Created category: "
msgstr "已建立的類別:"

#: includes/category_submit.php:90
msgid "Error submitting category."
msgstr "提出類別時錯誤"

#: includes/display_day.php:45
msgid "Title"
msgstr "標題"

#: includes/display_day.php:46 includes/form.php:431
msgid "Time"
msgstr "時間"

#: includes/display_day.php:47 includes/display_event.php:127
#: includes/display_event.php:171 includes/event_form.php:44
#: includes/search.php:92
msgid "Description"
msgstr "描述"

#: includes/display_day.php:58
msgid "Delete Selected"
msgstr "刪除已選取的"

#: includes/display_day.php:111
msgid "No events on this day."
msgstr "沒有事件於此日"

#: includes/display_event.php:41
msgid "Invalid arguments."
msgstr "無效的引數"

#: includes/display_event.php:53 includes/display_event.php:142
msgid "You do not have permission to read this event."
msgstr "您沒有權限讀取此事件"

#: includes/display_event.php:57 includes/display_event.php:146
#: includes/display_event.php:218
msgid "by"
msgstr "由"

#: includes/display_event.php:62 includes/display_event.php:156
#: includes/display_event.php:226 includes/event_form.php:112
msgid "Category"
msgstr "類別"

#: includes/display_event.php:66 includes/event_form.php:46
#: includes/occur_form.php:42
msgid "When"
msgstr "何時"

#: includes/display_event.php:68 includes/display_event.php:149
msgid "Created at: "
msgstr "已建立於:"

#: includes/display_event.php:70 includes/display_event.php:151
msgid "Last modified at: "
msgstr "最後修改於:"

#: includes/display_event.php:80
msgid "Modify Occurrence"
msgstr "修改發生事件"

#: includes/display_event.php:82
msgid "Remove Occurrence"
msgstr "移除發生事件"

#: includes/display_event.php:101
msgid "Previous occurrence on"
msgstr "前次發生事件於"

#: includes/display_event.php:111
msgid "Next occurrence on"
msgstr "下次事件發生於"

#: includes/display_event.php:117
msgid "View All Occurrences"
msgstr "檢視所有發生事件"

#: includes/display_event.php:164
msgid "Add Occurrence"
msgstr "加入發生事件"

#: includes/display_event.php:187 includes/occurrence_delete.php:45
#: includes/phpcoccurrence.class.php:244 includes/phpcoccurrence.class.php:253
#: includes/phpcoccurrence.class.php:255
msgid "at"
msgstr "於"

#: includes/display_event.php:194
msgid "Remove"
msgstr "移除"

#: includes/display_event.php:201
msgid "Occurrences"
msgstr "發生事件"

#: includes/display_event.php:228
msgid "from"
msgstr "從"

#: includes/display_month.php:32 includes/display_week.php:32
msgctxt "Week"
msgid "W"
msgstr "W"

#: includes/display_month.php:231 includes/display_week.php:215
msgid "View Additional Events"
msgstr "檢視額外的事件"

#: includes/display_month.php:245 includes/display_week.php:229
msgid "continued"
msgstr "已繼續"

#: includes/display_week.php:39
msgid "Invalid date."
msgstr "無效的日期"

#: includes/event_delete.php:29
msgid "No event selected."
msgstr "沒有事件被選取"

#: includes/event_delete.php:75
msgid "Removed event"
msgstr "已移除的事件"

#: includes/event_delete.php:77
msgid "Removed events"
msgstr "已移除的事件"

#: includes/event_delete.php:84
msgid "Could not remove event"
msgstr "無法移除事件"

#: includes/event_delete.php:86
msgid "Could not remove events"
msgstr "無法移除事件"

#: includes/event_delete.php:93
msgid "You do not have permission to remove event"
msgstr "您沒有權限移除事件"

#: includes/event_delete.php:95
msgid "You do not have permission to remove events"
msgstr "您沒有權限移除事件"

#: includes/event_form.php:40
msgid "Event Form"
msgstr "事件表單"

#: includes/event_form.php:41 includes/globals.php:70 includes/search.php:90
msgid "Subject"
msgstr "主題"

#: includes/event_form.php:50
msgid "Change the event date and time"
msgstr "變更事件日期和時間"

#: includes/event_form.php:53 includes/occur_form.php:44
#: includes/phpcoccurrence.class.php:252 includes/search.php:111
msgid "From"
msgstr "從"

#: includes/event_form.php:54 includes/occur_form.php:45
#: includes/search.php:113
msgid "To"
msgstr "到"

#: includes/event_form.php:57 includes/occur_form.php:48
msgid "Time Type"
msgstr "時間類型"

#: includes/event_form.php:58 includes/occur_form.php:49
msgid "Normal"
msgstr "正常"

#: includes/event_form.php:59 includes/occur_form.php:50
msgid "Full Day"
msgstr "全日"

#: includes/event_form.php:60 includes/occur_form.php:51
msgid "To Be Announced"
msgstr "將被公布"

#: includes/event_form.php:66
msgid "Repeats"
msgstr "重複"

#: includes/event_form.php:68
msgid "Never"
msgstr "絕不"

#: includes/event_form.php:70
msgid "Daily"
msgstr "每日的"

#: includes/event_form.php:72
msgid "Weekly"
msgstr "每週的"

#: includes/event_form.php:74
msgid "Monthly"
msgstr "每月的"

#: includes/event_form.php:76
msgid "Yearly"
msgstr "年度的"

#: includes/event_form.php:78 includes/event_form.php:85
#: includes/event_form.php:92 includes/event_form.php:99
msgid "Every"
msgstr "每一"

#: includes/event_form.php:79
msgid "Repeat every how many days?"
msgstr "重複每多少日?"

#: includes/event_form.php:82 includes/event_form.php:90
#: includes/event_form.php:97 includes/event_form.php:104
msgid "Until"
msgstr "直到"

#: includes/event_form.php:86
msgid "Repeat every how many weeks?"
msgstr "重複每多少週?"

#: includes/event_form.php:93
msgid "Repeat every how many months?"
msgstr "重複每多少月?"

#: includes/event_form.php:100
msgid "Repeat every how many years?"
msgstr "重複每多少年?"

#: includes/event_form.php:129
msgid "Submit Event"
msgstr "提出事件"

#: includes/event_form.php:296 includes/occur_form.php:134
msgid "Unrecognized Time Type."
msgstr "無法辨識的時間類型"

#: includes/event_form.php:301 includes/occur_form.php:139
msgid "An event cannot have an end earlier than its start."
msgstr "一件事件不能終於比它開始更早"

#: includes/event_form.php:309 includes/occur_form.php:144
msgid "You do not have permission to write to this calendar."
msgstr "您沒有權限寫入此行事曆"

#: includes/event_form.php:342
msgid "Required field \"every-day\" is not set."
msgstr "要求的欄位 \"每一日\" 沒有設定"

#: includes/event_form.php:345
msgid "every-day must be greater than 1"
msgstr "每一日必須大於1"

#: includes/event_form.php:361
msgid "Required field \"every-week\" is not set."
msgstr "要求的欄位 \"每一週\" 沒有設定"

#: includes/event_form.php:363
msgid "every-week must be greater than 1"
msgstr "每一週必須大於1"

#: includes/event_form.php:380
msgid "Required field \"every-month\" is not set."
msgstr "要求的欄位 \"每一月\" 沒有設定"

#: includes/event_form.php:382 includes/event_form.php:401
msgid "every-month must be greater than 1"
msgstr "每一月必須大於1"

#: includes/event_form.php:399
msgid "Required field \"every-year\" is not set."
msgstr "要求的欄位 \"每一年\" 沒有設定"

#: includes/event_form.php:417
msgid "Invalid event type."
msgstr "無效的事件類型"

#: includes/event_form.php:423
msgid "Modified event: "
msgstr "已修改的事件:"

#: includes/event_form.php:425
msgid "Created event: "
msgstr "已建立的事件:"

#: includes/event_form.php:432
msgid "Error submitting event."
msgstr "提出事件時錯誤"

#: includes/form.php:32
msgid "required"
msgstr "被要求的"

#: includes/form.php:102
msgid "Cannot add a non-form element to a form."
msgstr "無法加入一個非表單的元素到一個表單"

#: includes/form.php:428
msgid "Date"
msgstr "日期"

#: includes/globals.php:23
msgid "January"
msgstr "一月"

#: includes/globals.php:24
msgid "February"
msgstr "二月"

#: includes/globals.php:25
msgid "March"
msgstr "三月"

#: includes/globals.php:26
msgid "April"
msgstr "四月"

#: includes/globals.php:27 includes/globals.php:52
msgid "May"
msgstr "五月"

#: includes/globals.php:28
msgid "June"
msgstr "六月"

#: includes/globals.php:29
msgid "July"
msgstr "七月"

#: includes/globals.php:30
msgid "August"
msgstr "八月"

#: includes/globals.php:31
msgid "September"
msgstr "九月"

#: includes/globals.php:32
msgid "October"
msgstr "十月"

#: includes/globals.php:33
msgid "November"
msgstr "十一月"

#: includes/globals.php:34
msgid "December"
msgstr "十二月"

#: includes/globals.php:40
msgid "Tuesday"
msgstr "週二"

#: includes/globals.php:41
msgid "Wednesday"
msgstr "週三"

#: includes/globals.php:42
msgid "Thursday"
msgstr "週四"

#: includes/globals.php:43
msgid "Friday"
msgstr "週五"

#: includes/globals.php:48
msgid "Jan"
msgstr "一月"

#: includes/globals.php:49
msgid "Feb"
msgstr "二月"

#: includes/globals.php:50
msgid "Mar"
msgstr "三月"

#: includes/globals.php:51
msgid "Apr"
msgstr "四月"

#: includes/globals.php:53
msgid "Jun"
msgstr "六月"

#: includes/globals.php:54
msgid "Jul"
msgstr "七月"

#: includes/globals.php:55
msgid "Aug"
msgstr "八月"

#: includes/globals.php:56
msgid "Sep"
msgstr "九月"

#: includes/globals.php:57
msgid "Oct"
msgstr "十月"

#: includes/globals.php:58
msgid "Nov"
msgstr "十一月"

#: includes/globals.php:59
msgid "Dec"
msgstr "十二月"

#: includes/globals.php:69
msgid "Start Date"
msgstr "開始日期"

#: includes/globals.php:74
msgid "Ascending"
msgstr "升序"

#: includes/globals.php:75
msgid "Descending"
msgstr "降序"

#: includes/group_delete.php:29
msgid "No group selected."
msgstr "沒有群組被選取"

#: includes/group_delete.php:63
msgid "You do not have permission to delete group: "
msgstr "您沒有權限刪除群組:"

#: includes/group_delete.php:68
msgid "Removed group: "
msgstr "已移除的群組:"

#: includes/group_delete.php:71
msgid "Could not remove group: "
msgstr "無法移除群組:"

#: includes/group_form.php:27
msgid "Group Form"
msgstr "群組表單"

#: includes/group_form.php:34
msgid "Submit Group"
msgstr "提出群組"

#: includes/group_submit.php:32
msgid "You do not have permission to add a global group."
msgstr "您沒有權限加入一個全域群組"

#: includes/group_submit.php:37
msgid "You do not have permission to add a group to this calendar."
msgstr "您沒有權限加入一個群組到此行事曆"

#: includes/group_submit.php:49
msgid "You do not have permission to modify this group."
msgstr "您沒有權限修改此群組"

#: includes/group_submit.php:57
msgid "Modified group: "
msgstr "已修改的群組:"

#: includes/group_submit.php:61
msgid "Created group: "
msgstr "已建立的群組:"

#: includes/group_submit.php:65
msgid "Error submitting group."
msgstr "提出群組時錯誤"

#: includes/import.php:26 includes/translate.php:28
msgid "Need to be admin"
msgstr "需要是管理員"

#: includes/import.php:69
msgid "Error selecting events in import"
msgstr "選取事件於匯入時錯誤"

#: includes/import.php:154
#, php-format
msgid "Created %s events with %s occurences"
msgstr "已建立 %s 事件用 %s 發生事件"

#: includes/login.php:39
msgid "Logged in."
msgstr "已登入"

#: includes/login.php:42
msgid "Sorry, Invalid Login"
msgstr "抱歉, 無效的登入"

#: includes/login.php:72
msgid "You must have cookies enabled to login."
msgstr "您必須啟用 cookies 以登入"

#: includes/login.php:80 includes/settings.php:39 includes/user_create.php:64
msgid "Password"
msgstr "密碼"

#: includes/logout.php:29
msgid "Loggin out..."
msgstr "登出..."

#: includes/occur_form.php:40
msgid "Occurrence Form"
msgstr "發生事件表單"

#: includes/occur_form.php:105
msgid "Submit Occurrence"
msgstr "提出發生事件"

#: includes/occur_form.php:115
msgid "Cannot create occurrence."
msgstr "無法建立發生事件"

#: includes/occur_form.php:149
msgid "EID not set."
msgstr "EID 沒有設定"

#: includes/occur_form.php:161
msgid "Modified occurence: "
msgstr "已修改的發生事件:"

#: includes/occur_form.php:163
msgid "Created occurence: "
msgstr "已建立的發生事件:"

#: includes/occur_form.php:170
msgid "Error submitting occurrence."
msgstr "提出發生事件時錯誤"

#: includes/occurrence_delete.php:29
msgid "No occurrence selected."
msgstr "沒有發生事件被選取"

#: includes/occurrence_delete.php:79
msgid "Removed occurrence"
msgstr "已移除的發生事件"

#: includes/occurrence_delete.php:81
msgid "Removed occurrences"
msgstr "已移除的發生事件"

#: includes/occurrence_delete.php:88
msgid "Could not remove occurrence"
msgstr "無法移除發生事件"

#: includes/occurrence_delete.php:90
msgid "Could not remove occurrences"
msgstr "無法移除發生事件"

#: includes/occurrence_delete.php:97
msgid "You do not have permission to remove the occurrence."
msgstr "您沒有權限移除發生事件"

#: includes/occurrence_delete.php:99
msgid "You do not have permission to remove occurrences."
msgstr "您沒有權限移除發生事件"

#: includes/password_submit.php:27
msgid "You must be logged in."
msgstr "您必須是已登入"

#: includes/password_submit.php:33
msgid "You do not have permission to change your password."
msgstr "您沒有權限變更您的密碼"

#: includes/password_submit.php:36
msgid "You must specify your old password."
msgstr "您必須指定您的舊密碼"

#: includes/password_submit.php:42
msgid "The password you entered did not match your old password."
msgstr "您輸入的密碼與您的舊密碼不相符"

#: includes/password_submit.php:46 includes/user_create.php:90
msgid "You must specify a password"
msgstr "您必須指定一組密碼"

#: includes/password_submit.php:51 includes/user_create.php:95
msgid "Your passwords did not match"
msgstr "您的密碼不相符"

#: includes/password_submit.php:58
msgid "Password updated."
msgstr "密碼已更新"

#: includes/phpccalendar.class.php:51
msgid "(No title)"
msgstr "(沒有標題)"

#: includes/phpcdatabase.class.php:93
msgid "Error in get_occurrences_by_date_range"
msgstr "錯誤於 get_occurrences_by_date_range"

#: includes/phpcdatabase.class.php:145
msgid "Error in get_event_by_eid"
msgstr "錯誤於 get_event_by_eid"

#: includes/phpcdatabase.class.php:149
msgid "Event doesn't exist"
msgstr "事件並不存在"

#: includes/phpcdatabase.class.php:171
msgid "Error in get_event_by_oid"
msgstr " 錯誤於 get_event_by_oid"

#: includes/phpcdatabase.class.php:175 includes/phpcdatabase.class.php:340
msgid "Event doesn't exist with oid"
msgstr "用 oid 事件並不存在"

#: includes/phpcdatabase.class.php:195
msgid "Error in get_category"
msgstr "錯誤於 get_category"

#: includes/phpcdatabase.class.php:198
msgid "Category doesn't exist with catid"
msgstr "用 catid 類別並不存在"

#: includes/phpcdatabase.class.php:212
msgid "Error in get_group"
msgstr "錯誤於 get_group"

#: includes/phpcdatabase.class.php:215
msgid "Group doesn't exist with gid"
msgstr "用 gid 群組並不存在"

#: includes/phpcdatabase.class.php:231
msgid "Error in get_groups"
msgstr "錯誤於 get_groups"

#: includes/phpcdatabase.class.php:250
msgid "Error in get_user_groups"
msgstr "錯誤於 get_user_groups"

#: includes/phpcdatabase.class.php:279
msgid "Error in get_categories"
msgstr "錯誤於 get_categories"

#: includes/phpcdatabase.class.php:308
msgid "Error in get_visible_categories"
msgstr "錯誤於 get_visible_categories"

#: includes/phpcdatabase.class.php:336
msgid "Error in get_occurrence_by_oid"
msgstr "錯誤於 get_occurrence_by_oid"

#: includes/phpcdatabase.class.php:362
msgid "Error in get_occurrences_by_eid"
msgstr "錯誤於 get_occurrences_by_eid"

#: includes/phpcdatabase.class.php:379 includes/phpcdatabase.class.php:395
msgid "Error while removing an event."
msgstr "當移除一個事件時錯誤"

#: includes/phpcdatabase.class.php:407
msgid "Error while removing an occurrence."
msgstr "當移除一個發生事件時錯誤"

#: includes/phpcdatabase.class.php:420 includes/phpcdatabase.class.php:461
msgid "Error while removing a calendar"
msgstr "當移除一個行事曆時錯誤"

#: includes/phpcdatabase.class.php:433
msgid "Error while removing category."
msgstr "當移除類別時錯誤"

#: includes/phpcdatabase.class.php:446
msgid "Error while removing group."
msgstr "當移除群組時錯誤"

#: includes/phpcdatabase.class.php:466
msgid "Error while removing "
msgstr "當移除時錯誤"

#: includes/phpcdatabase.class.php:485
msgid "Could not read permissions."
msgstr "無法讀取權限"

#: includes/phpcdatabase.class.php:500
msgid "Could not get calendars."
msgstr "無法獲取行事曆"

#: includes/phpcdatabase.class.php:529 includes/phpcdatabase.class.php:549
msgid "Could not get user."
msgstr "無法獲取使用者"

#: includes/phpcdatabase.class.php:565 includes/phpcdatabase.class.php:581
msgid "Error getting user."
msgstr "獲取使用者時錯誤"

#: includes/phpcdatabase.class.php:597
msgid "Error creating user."
msgstr "建立使用者時錯誤"

#: includes/phpcdatabase.class.php:608 includes/phpcdatabase.class.php:620
msgid "Error reading options"
msgstr "讀取選項時錯誤"

#: includes/phpcdatabase.class.php:631
msgid "Error creating options"
msgstr "建立選項時錯誤"

#: includes/phpcdatabase.class.php:641
msgid "Error updating password."
msgstr "更新密碼時錯誤"

#: includes/phpcdatabase.class.php:652
msgid "Error updating timezone."
msgstr "更新時區時錯誤"

#: includes/phpcdatabase.class.php:663
msgid "Error updating language."
msgstr "更新語言時錯誤"

#: includes/phpcdatabase.class.php:675
msgid "Error adding group to user."
msgstr "加入群組到使用者時錯誤"

#: includes/phpcdatabase.class.php:686
msgid "Error removing group from user."
msgstr "移除群組從使用者時錯誤"

#: includes/phpcdatabase.class.php:706
msgid "Error creating event."
msgstr "建立事件時錯誤"

#: includes/phpcdatabase.class.php:733
msgid "Error creating occurrence."
msgstr "建立發生事件時錯誤"

#: includes/phpcdatabase.class.php:758
msgid "Error modifying occurrence."
msgstr "修改發生事件時錯誤"

#: includes/phpcdatabase.class.php:780
msgid "Error modifying event."
msgstr "修改事件時錯誤"

#: includes/phpcdatabase.class.php:794
msgid "Error creating category."
msgstr "建立類別時錯誤"

#: includes/phpcdatabase.class.php:807
msgid "Error creating group."
msgstr "建立群組時錯誤"

#: includes/phpcdatabase.class.php:823
msgid "Error modifying category."
msgstr "修改類別時錯誤"

#: includes/phpcdatabase.class.php:836
msgid "Error modifying group."
msgstr "修改群組時錯誤"

#: includes/phpcdatabase.class.php:871
msgid "Error during searching"
msgstr "搜尋時錯誤"

#: includes/phpcdatabase.class.php:897
msgid "Error updating user permissions."
msgstr "更新使用者權限時錯誤"

#: includes/phpcdatabase.class.php:906
msgid "Error getting login token."
msgstr "獲取登入記號時錯誤"

#: includes/phpcdatabase.class.php:921
msgid "Error adding login token."
msgstr "加入登入記號時錯誤"

#: includes/phpcdatabase.class.php:931
msgid "Error updating login token."
msgstr "更新登入記號時錯誤"

#: includes/phpcdatabase.class.php:940
msgid "Error removing login tokens."
msgstr "移除登入記號時錯誤"

#: includes/phpcdatabase.class.php:949
msgid "Error cleaning login tokens."
msgstr "清除登入記號時錯誤"

#: includes/phpcdatabase.class.php:959
msgid "SQL query"
msgstr "SQL 查詢"

#: includes/phpcevent.class.php:43
msgid "anonymous"
msgstr "匿名者"

#: includes/phpcevent.class.php:45
msgid "unknown"
msgstr "未知的"

#: includes/phpcevent.class.php:72
msgid "(No subject)"
msgstr "(沒有主題)"

#: includes/phpcoccurrence.class.php:53 includes/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr "DB 已返回一個無效的日期"

#: includes/phpcoccurrence.class.php:105 includes/phpcoccurrence.class.php:121
msgid "TBA"
msgstr "將被公布"

#: includes/phpcoccurrence.class.php:116 includes/phpcoccurrence.class.php:254
msgid "to"
msgstr "到"

#: includes/search.php:43
msgid "Invalid sort option"
msgstr "無效的排序選項"

#: includes/search.php:49
msgid "Invalid order option"
msgstr "無效的順序選項"

#: includes/search.php:83
msgid "No events matched your search criteria."
msgstr "沒有事件與您的搜尋條件相符"

#: includes/search.php:87
msgid "Search Results"
msgstr "搜尋結果"

#: includes/search.php:91
msgid "Date Time"
msgstr "日期時間"

#: includes/search.php:107
msgid "Phrase"
msgstr "片語"

#: includes/search.php:115
msgid "Sort By"
msgstr "排序按照"

#: includes/search.php:118
msgid "Order"
msgstr "順序"

#: includes/settings.php:52
msgid "Change Password"
msgstr "變更密碼"

#: includes/settings.php:61
msgid "Old Password"
msgstr "舊密碼"

#: includes/settings.php:64
msgid "New Password"
msgstr "新密碼"

#: includes/settings.php:67
msgid "Confirm New Password"
msgstr "確定新密碼"

#: includes/settings.php:139
msgid "Settings updated."
msgstr "設定值已更新"

#: includes/setup.php:78
msgid "Possible hacking attempt on your account."
msgstr "可能駭客嘗試於您的帳號"

#: includes/setup.php:187
msgid "Month is out of range."
msgstr "月份超過範圍"

#: includes/setup.php:195
msgid "Invalid year"
msgstr "無效的年份"

#: includes/translate.php:52
#, php-format
msgid "Translated \"%s\""
msgstr "已翻譯 \"%s\""

#: includes/user_create.php:67
msgid "Confirm Password"
msgstr "確定密碼"

#: includes/user_create.php:70
msgid "Make Admin"
msgstr "成為管理員"

#: includes/user_create.php:86
msgid "You must specify a user name"
msgstr "您必須指定一個使用者名稱"

#: includes/user_create.php:103
msgid "User already exists."
msgstr "使用者已存在"

#: includes/user_create.php:113
msgid "Added user."
msgstr "已加入的使用者"

#: includes/user_delete.php:29
msgid "You must be an admin to delete users."
msgstr "您必須是一個管理者以刪除使用者"

#: includes/user_delete.php:34
msgid "No user selected."
msgstr "沒有使用者被選取"

#: includes/user_groups.php:58
msgid "Edit User Groups"
msgstr "編輯使用者群組"

#: includes/user_groups.php:99
msgid "Groups updated."
msgstr "群組已更新"

#: includes/user_permissions_submit.php:31
msgid "No users"
msgstr "沒有使用者"

#: includes/user_permissions_submit.php:59
msgid "No changes to make."
msgstr "沒有變更發生"

#: includes/user_permissions_submit.php:61
msgid "Updated user(s):"
msgstr " 已更新使用者(們):"

#: includes/util.php:75
msgid "continue"
msgstr "繼續"

#: includes/util.php:157
msgid "Software Error"
msgstr "軟體錯誤"

#: includes/util.php:158
msgid "Message:"
msgstr "訊息:"
# PHP-Calendar.
# Copyright (C) 2022 Sean Proctor
# This file is distributed under the same license as the PHP-Calendar package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PHP-Calendar 2.0.13\n"
"Report-Msgid-Bugs-To: sproctor@gmail.com\n"
"POT-Creation-Date: 2022-01-28 09:19-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: src/admin.php:31 src/cadmin.php:30
msgid "You must be logged in as an admin."
msgstr ""

#: src/admin.php:36
msgid "Calendars"
msgstr ""

#: src/admin.php:38 src/cadmin.php:37
msgid "Users"
msgstr ""

#: src/admin.php:40
msgid "Import"
msgstr ""

#: src/admin.php:42 src/translate.php:41
msgid "Translate"
msgstr ""

#: src/admin.php:45
msgid "Version"
msgstr ""

#: src/admin.php:61
msgid "Calendar"
msgstr ""

#: src/admin.php:62 src/admin.php:100
msgid "Action"
msgstr ""

#: src/admin.php:69 src/cadmin.php:161 src/cadmin.php:208
#: src/display_event.php:205
msgid "Edit"
msgstr ""

#: src/admin.php:71 src/admin.php:112 src/cadmin.php:166 src/cadmin.php:212
#: src/display_event.php:85 src/display_event.php:178
msgid "Delete"
msgstr ""

#: src/admin.php:76 src/calendar_form.php:92
msgid "Create Calendar"
msgstr ""

#: src/admin.php:80
msgid "Calendar List"
msgstr ""

#: src/admin.php:97 src/login.php:82
msgid "Username"
msgstr ""

#: src/admin.php:98 src/cadmin.php:41 src/cadmin.php:135 src/user_create.php:79
msgid "Groups"
msgstr ""

#: src/admin.php:99 src/admin.php:110 src/cadmin.php:109 src/cadmin.php:136
msgid "Edit Groups"
msgstr ""

#: src/admin.php:117 src/user_create.php:57
msgid "Create User"
msgstr ""

#: src/admin.php:121
msgid "User List"
msgstr ""

#: src/admin.php:135
msgid "Import Form"
msgstr ""

#: src/admin.php:136
msgid "MySQL Host Name"
msgstr ""

#: src/admin.php:137
msgid "MySQL Database Name"
msgstr ""

#: src/admin.php:138
msgid "MySQL Port Number"
msgstr ""

#: src/admin.php:138
msgid "Leave blank for default"
msgstr ""

#: src/admin.php:139
msgid "MySQL User Name"
msgstr ""

#: src/admin.php:140
msgid "MySQL User Password"
msgstr ""

#: src/admin.php:143
msgid "PHP-Calendar Table Prefix"
msgstr ""

#: src/admin.php:148
msgid "Import Calendar"
msgstr ""

#: src/admin.php:167
msgid ""
"This script needs read access to your calendar directory in order to write "
"the translation files. Alternatively, you could run translate.php from the "
"command line or use msgfmt or any other gettext tool that can generate .mo "
"files from .po files."
msgstr ""

#: src/admin.php:170
msgid "Generate Translations"
msgstr ""

#: src/cadmin.php:35
msgid "Calendar Configuration"
msgstr ""

#: src/cadmin.php:39
msgid "Categories"
msgstr ""

#: src/cadmin.php:73
msgid "Options"
msgstr ""

#: src/cadmin.php:77 src/cadmin.php:126 src/calendar_form.php:99
#: src/settings.php:65 src/settings.php:108 src/user_create.php:64
#: src/user_groups.php:76
msgid "Submit"
msgstr ""

#: src/cadmin.php:103 src/cadmin.php:130
msgid "Read"
msgstr ""

#: src/cadmin.php:104 src/cadmin.php:131
msgid "Write"
msgstr ""

#: src/cadmin.php:105 src/event_form.php:117
msgid "Read-only"
msgstr ""

#: src/cadmin.php:106 src/cadmin.php:133 src/display_day.php:88
#: src/display_event.php:83 src/display_event.php:174
msgid "Modify"
msgstr ""

#: src/cadmin.php:107 src/cadmin.php:134 src/calendar.php:646
#: src/user_create.php:77
msgid "Admin"
msgstr ""

#: src/cadmin.php:122
msgid "User Permissions"
msgstr ""

#: src/cadmin.php:129 src/user_create.php:67
msgid "User Name"
msgstr ""

#: src/cadmin.php:132
msgid "Can Create Read-Only"
msgstr ""

#: src/cadmin.php:151 src/cadmin.php:203
msgid "No Name"
msgstr ""

#: src/cadmin.php:154 src/category_form.php:47 src/event_form.php:120
msgid "None"
msgstr ""

#: src/cadmin.php:173
msgid "Create category"
msgstr ""

#: src/cadmin.php:176
msgid "Calendar Categories"
msgstr ""

#: src/cadmin.php:179 src/cadmin.php:224 src/category_form.php:31
#: src/group_form.php:31
msgid "Name"
msgstr ""

#: src/cadmin.php:180 src/category_form.php:43
msgid "Text Color"
msgstr ""

#: src/cadmin.php:181 src/category_form.php:44
msgid "Background Color"
msgstr ""

#: src/cadmin.php:182
msgid "Visible to User Group"
msgstr ""

#: src/cadmin.php:183 src/cadmin.php:225
msgid "Actions"
msgstr ""

#: src/cadmin.php:218
msgid "Create group"
msgstr ""

#: src/cadmin.php:221
msgid "Calendar Groups"
msgstr ""

#: src/cadmin_submit.php:29 src/calendar_form.php:30 src/user_create.php:29
#: src/user_groups.php:29 src/user_permissions_submit.php:30
msgid "Permission denied"
msgstr ""

#: src/cadmin_submit.php:42
msgid " was not set."
msgstr ""

#: src/cadmin_submit.php:49
msgid "Updated options"
msgstr ""

#: src/calendar.php:147 src/settings.php:114
msgid "Language"
msgstr ""

#: src/calendar.php:148 src/settings.php:111
msgid "Timezone"
msgstr ""

#: src/calendar.php:590
msgid "Welcome"
msgstr ""

#: src/calendar.php:597 src/settings.php:35 src/settings.php:101
msgid "Settings"
msgstr ""

#: src/calendar.php:600
msgid "Log out"
msgstr ""

#: src/calendar.php:604 src/login.php:62 src/login.php:73
msgid "Log in"
msgstr ""

#: src/calendar.php:625
msgid "Add Event"
msgstr ""

#: src/calendar.php:629 src/search.php:110 src/search.php:125
msgid "Search"
msgstr ""

#: src/calendar.php:633
msgid "View Month"
msgstr ""

#: src/calendar.php:638
msgid "View date"
msgstr ""

#: src/calendar.php:642
msgid "Calendar Admin"
msgstr ""

#: src/calendar.php:690 src/calendar.php:754 src/calendar.php:766
#: src/settings.php:91
msgid "Default"
msgstr ""

#: src/calendar.php:696
msgid "Week Start"
msgstr ""

#: src/calendar.php:698 src/globals.php:38
msgid "Sunday"
msgstr ""

#: src/calendar.php:699 src/globals.php:39
msgid "Monday"
msgstr ""

#: src/calendar.php:700 src/globals.php:44
msgid "Saturday"
msgstr ""

#: src/calendar.php:702
msgid "24 Hour Time"
msgstr ""

#: src/calendar.php:703
msgid "Calendar Title"
msgstr ""

#: src/calendar.php:704
msgid "Maximum Subject Length"
msgstr ""

#: src/calendar.php:705
msgid "Events Display Daily Maximum"
msgstr ""

#: src/calendar.php:706
msgid "Public Permissions"
msgstr ""

#: src/calendar.php:708
msgid "Cannot read nor write events"
msgstr ""

#: src/calendar.php:709
msgid "Can read but not write events"
msgstr ""

#: src/calendar.php:710
msgid "Can create but not modify events"
msgstr ""

#: src/calendar.php:711
msgid "Can create and modify events"
msgstr ""

#: src/calendar.php:714
msgid "Default Timezone"
msgstr ""

#: src/calendar.php:715
msgid "Default Language"
msgstr ""

#: src/calendar.php:717
msgid "Date Format"
msgstr ""

#: src/calendar.php:719
msgid "Theme"
msgstr ""

#: src/calendar.php:787
msgid "Month Day Year"
msgstr ""

#: src/calendar.php:788
msgid "Year Month Day"
msgstr ""

#: src/calendar.php:789
msgid "Day Month Year"
msgstr ""

#: src/calendar.php:837
msgid "You do not have permission to do that: "
msgstr ""

#: src/calendar.php:850 src/util.php:229
msgid "Error"
msgstr ""

#: src/calendar.php:852 src/util.php:233
msgid "Backtrace"
msgstr ""

#: src/calendar.php:868
msgid "Invalid action"
msgstr ""

#: src/calendar.php:925
msgid "Secret token mismatch. Possible request forgery attempt."
msgstr ""

#: src/calendar.php:1009
msgid "Unsupported config type"
msgstr ""

#: src/calendar.php:1030
#, php-format
msgid "Required field \"%s\" was not set."
msgstr ""

#: src/calendar.php:1036
#, php-format
msgid "Malformed \"%s\" time: \"%s\""
msgstr ""

#: src/calendar.php:1051
msgid "Unrecognized period: "
msgstr ""

#: src/calendar.php:1059
#, php-format
msgid "Malformed \"%s\" date: \"%s\""
msgstr ""

#: src/calendar.php:1080
msgid "Invalid date_format."
msgstr ""

#: src/calendar_delete.php:32
msgid "No calendar selected."
msgstr ""

#: src/calendar_delete.php:40 src/setup.php:95
msgid "Invalid calendar ID."
msgstr ""

#: src/calendar_delete.php:43
msgid "Confirm you want to delete calendar:"
msgstr ""

#: src/calendar_delete.php:44 src/category_delete.php:54
#: src/event_delete.php:51 src/group_delete.php:54 src/occurrence_delete.php:53
#: src/user_delete.php:55
msgid "Confirm"
msgstr ""

#: src/calendar_delete.php:47 src/category_delete.php:57
#: src/event_delete.php:54 src/group_delete.php:57 src/occurrence_delete.php:56
#: src/user_delete.php:58
msgid "Deny"
msgstr ""

#: src/calendar_delete.php:53
msgid "You do not have permission to remove calendar"
msgstr ""

#: src/calendar_delete.php:58
msgid "Removed calendar"
msgstr ""

#: src/calendar_delete.php:60
msgid "Could not remove calendar"
msgstr ""

#: src/calendar_form.php:68
msgid "Calendar created."
msgstr ""

#: src/category_delete.php:32
msgid "No category selected."
msgstr ""

#: src/category_delete.php:52 src/event_delete.php:49 src/group_delete.php:52
#: src/occurrence_delete.php:51 src/user_delete.php:53
msgid "Confirm you want to delete:"
msgstr ""

#: src/category_delete.php:66
msgid "You do not have permission to delete category: "
msgstr ""

#: src/category_delete.php:71
msgid "Removed category: "
msgstr ""

#: src/category_delete.php:74
msgid "Could not remove category: "
msgstr ""

#: src/category_form.php:30
msgid "Category Form"
msgstr ""

#: src/category_form.php:46
msgid "Visible to groups"
msgstr ""

#: src/category_form.php:52
msgid "Submit Category"
msgstr ""

#: src/category_submit.php:36
msgid "Color not specified."
msgstr ""

#: src/category_submit.php:50 src/category_submit.php:53
msgid "Invalid color: "
msgstr ""

#: src/category_submit.php:62
msgid "You do not have permission to add categories to all calendars."
msgstr ""

#: src/category_submit.php:67
msgid "You do not have permission to add categories to this calendar."
msgstr ""

#: src/category_submit.php:80
msgid "You do not have permission to modify this category."
msgstr ""

#: src/category_submit.php:89
msgid "Modified category: "
msgstr ""

#: src/category_submit.php:93
msgid "Created category: "
msgstr ""

#: src/category_submit.php:97
msgid "Error submitting category."
msgstr ""

#: src/display_day.php:44
msgid "Title"
msgstr ""

#: src/display_day.php:45 src/form.php:365
msgid "Time"
msgstr ""

#: src/display_day.php:46 src/display_event.php:134 src/display_event.php:183
#: src/event_form.php:51 src/search.php:94
msgid "Description"
msgstr ""

#: src/display_day.php:57
msgid "Delete Selected"
msgstr ""

#: src/display_day.php:110
msgid "No events on this day."
msgstr ""

#: src/display_event.php:44
msgid "Invalid arguments."
msgstr ""

#: src/display_event.php:60 src/display_event.php:154
msgid "You do not have permission to read this event."
msgstr ""

#: src/display_event.php:64 src/display_event.php:158 src/display_event.php:233
msgid "by"
msgstr ""

#: src/display_event.php:69 src/display_event.php:168 src/display_event.php:241
#: src/event_form.php:119
msgid "Category"
msgstr ""

#: src/display_event.php:73 src/event_form.php:53 src/occur_form.php:48
msgid "When"
msgstr ""

#: src/display_event.php:75 src/display_event.php:161
msgid "Created at: "
msgstr ""

#: src/display_event.php:77 src/display_event.php:163
msgid "Last modified at: "
msgstr ""

#: src/display_event.php:87
msgid "Modify Occurrence"
msgstr ""

#: src/display_event.php:89
msgid "Remove Occurrence"
msgstr ""

#: src/display_event.php:108
msgid "Previous occurrence on"
msgstr ""

#: src/display_event.php:118
msgid "Next occurrence on"
msgstr ""

#: src/display_event.php:124
msgid "View All Occurrences"
msgstr ""

#: src/display_event.php:176
msgid "Add Occurrence"
msgstr ""

#: src/display_event.php:199 src/occurrence_delete.php:48
#: src/phpcoccurrence.class.php:249 src/phpcoccurrence.class.php:258
#: src/phpcoccurrence.class.php:260 src/util.php:152
msgid "at"
msgstr ""

#: src/display_event.php:206
msgid "Remove"
msgstr ""

#: src/display_event.php:213
msgid "Occurrences"
msgstr ""

#: src/display_event.php:243
msgid "from"
msgstr ""

#: src/display_month.php:35 src/display_week.php:35
msgctxt "Week"
msgid "W"
msgstr ""

#: src/display_month.php:251 src/display_week.php:236
msgid "View Additional Events"
msgstr ""

#: src/display_month.php:265 src/display_week.php:250
msgid "continued"
msgstr ""

#: src/display_week.php:42
msgid "Invalid date."
msgstr ""

#: src/event_delete.php:32
msgid "No event selected."
msgstr ""

#: src/event_delete.php:78
msgid "Removed event"
msgstr ""

#: src/event_delete.php:80
msgid "Removed events"
msgstr ""

#: src/event_delete.php:87
msgid "Could not remove event"
msgstr ""

#: src/event_delete.php:89
msgid "Could not remove events"
msgstr ""

#: src/event_delete.php:96
msgid "You do not have permission to remove event"
msgstr ""

#: src/event_delete.php:98
msgid "You do not have permission to remove events"
msgstr ""

#: src/event_form.php:47
msgid "Event Form"
msgstr ""

#: src/event_form.php:48 src/globals.php:70 src/search.php:92
msgid "Subject"
msgstr ""

#: src/event_form.php:57
msgid "Change the event date and time"
msgstr ""

#: src/event_form.php:60 src/occur_form.php:50 src/phpcoccurrence.class.php:257
#: src/search.php:115
msgid "From"
msgstr ""

#: src/event_form.php:61 src/occur_form.php:51 src/search.php:117
msgid "To"
msgstr ""

#: src/event_form.php:64 src/occur_form.php:54
msgid "Time Type"
msgstr ""

#: src/event_form.php:65 src/occur_form.php:55
msgid "Normal"
msgstr ""

#: src/event_form.php:66 src/occur_form.php:56
msgid "Full Day"
msgstr ""

#: src/event_form.php:67 src/occur_form.php:57
msgid "To Be Announced"
msgstr ""

#: src/event_form.php:73
msgid "Repeats"
msgstr ""

#: src/event_form.php:75
msgid "Never"
msgstr ""

#: src/event_form.php:77
msgid "Daily"
msgstr ""

#: src/event_form.php:79
msgid "Weekly"
msgstr ""

#: src/event_form.php:81
msgid "Monthly"
msgstr ""

#: src/event_form.php:83
msgid "Yearly"
msgstr ""

#: src/event_form.php:85 src/event_form.php:92 src/event_form.php:99
#: src/event_form.php:106
msgid "Every"
msgstr ""

#: src/event_form.php:86
msgid "Repeat every how many days?"
msgstr ""

#: src/event_form.php:89 src/event_form.php:97 src/event_form.php:104
#: src/event_form.php:111
msgid "Until"
msgstr ""

#: src/event_form.php:93
msgid "Repeat every how many weeks?"
msgstr ""

#: src/event_form.php:100
msgid "Repeat every how many months?"
msgstr ""

#: src/event_form.php:107
msgid "Repeat every how many years?"
msgstr ""

#: src/event_form.php:136
msgid "Submit Event"
msgstr ""

#: src/event_form.php:315 src/occur_form.php:146
msgid "Unrecognized Time Type."
msgstr ""

#: src/event_form.php:320 src/occur_form.php:151
msgid "An event cannot have an end earlier than its start."
msgstr ""

#: src/event_form.php:328 src/occur_form.php:156
msgid "You do not have permission to write to this calendar."
msgstr ""

#: src/event_form.php:361
msgid "Required field \"every-day\" is not set."
msgstr ""

#: src/event_form.php:364
msgid "every-day must be greater than 1"
msgstr ""

#: src/event_form.php:380
msgid "Required field \"every-week\" is not set."
msgstr ""

#: src/event_form.php:382
msgid "every-week must be greater than 1"
msgstr ""

#: src/event_form.php:399
msgid "Required field \"every-month\" is not set."
msgstr ""

#: src/event_form.php:401 src/event_form.php:420
msgid "every-month must be greater than 1"
msgstr ""

#: src/event_form.php:418
msgid "Required field \"every-year\" is not set."
msgstr ""

#: src/event_form.php:436
msgid "Invalid event type."
msgstr ""

#: src/event_form.php:442
msgid "Modified event: "
msgstr ""

#: src/event_form.php:444
msgid "Created event: "
msgstr ""

#: src/event_form.php:451
msgid "Error submitting event."
msgstr ""

#: src/form.php:287 src/form.php:362
msgid "Date"
msgstr ""

#: src/globals.php:23
msgid "January"
msgstr ""

#: src/globals.php:24
msgid "February"
msgstr ""

#: src/globals.php:25
msgid "March"
msgstr ""

#: src/globals.php:26
msgid "April"
msgstr ""

#: src/globals.php:27 src/globals.php:52
msgid "May"
msgstr ""

#: src/globals.php:28
msgid "June"
msgstr ""

#: src/globals.php:29
msgid "July"
msgstr ""

#: src/globals.php:30
msgid "August"
msgstr ""

#: src/globals.php:31
msgid "September"
msgstr ""

#: src/globals.php:32
msgid "October"
msgstr ""

#: src/globals.php:33
msgid "November"
msgstr ""

#: src/globals.php:34
msgid "December"
msgstr ""

#: src/globals.php:40
msgid "Tuesday"
msgstr ""

#: src/globals.php:41
msgid "Wednesday"
msgstr ""

#: src/globals.php:42
msgid "Thursday"
msgstr ""

#: src/globals.php:43
msgid "Friday"
msgstr ""

#: src/globals.php:48
msgid "Jan"
msgstr ""

#: src/globals.php:49
msgid "Feb"
msgstr ""

#: src/globals.php:50
msgid "Mar"
msgstr ""

#: src/globals.php:51
msgid "Apr"
msgstr ""

#: src/globals.php:53
msgid "Jun"
msgstr ""

#: src/globals.php:54
msgid "Jul"
msgstr ""

#: src/globals.php:55
msgid "Aug"
msgstr ""

#: src/globals.php:56
msgid "Sep"
msgstr ""

#: src/globals.php:57
msgid "Oct"
msgstr ""

#: src/globals.php:58
msgid "Nov"
msgstr ""

#: src/globals.php:59
msgid "Dec"
msgstr ""

#: src/globals.php:69
msgid "Start Date"
msgstr ""

#: src/globals.php:74
msgid "Ascending"
msgstr ""

#: src/globals.php:75
msgid "Descending"
msgstr ""

#: src/group_delete.php:32
msgid "No group selected."
msgstr ""

#: src/group_delete.php:66
msgid "You do not have permission to delete group: "
msgstr ""

#: src/group_delete.php:71
msgid "Removed group: "
msgstr ""

#: src/group_delete.php:74
msgid "Could not remove group: "
msgstr ""

#: src/group_form.php:30
msgid "Group Form"
msgstr ""

#: src/group_form.php:37
msgid "Submit Group"
msgstr ""

#: src/group_submit.php:35
msgid "You do not have permission to add a global group."
msgstr ""

#: src/group_submit.php:40
msgid "You do not have permission to add a group to this calendar."
msgstr ""

#: src/group_submit.php:52
msgid "You do not have permission to modify this group."
msgstr ""

#: src/group_submit.php:60
msgid "Modified group: "
msgstr ""

#: src/group_submit.php:64
msgid "Created group: "
msgstr ""

#: src/group_submit.php:68
msgid "Error submitting group."
msgstr ""

#: src/import.php:29 src/translate.php:31
msgid "Need to be admin"
msgstr ""

#: src/import.php:72
msgid "Error selecting events in import"
msgstr ""

#: src/import.php:157
#, php-format
msgid "Created %s events with %s occurences"
msgstr ""

#: src/login.php:42
msgid "Logged in."
msgstr ""

#: src/login.php:45
msgid "Sorry, Invalid Login"
msgstr ""

#: src/login.php:77
msgid "You must have cookies enabled to login."
msgstr ""

#: src/login.php:85 src/settings.php:43 src/user_create.php:70
msgid "Password"
msgstr ""

#: src/logout.php:32
msgid "Loggin out..."
msgstr ""

#: src/occur_form.php:46
msgid "Occurrence Form"
msgstr ""

#: src/occur_form.php:117
msgid "Submit Occurrence"
msgstr ""

#: src/occur_form.php:127
msgid "Cannot create occurrence."
msgstr ""

#: src/occur_form.php:161
msgid "EID not set."
msgstr ""

#: src/occur_form.php:173
msgid "Modified occurence: "
msgstr ""

#: src/occur_form.php:175
msgid "Created occurence: "
msgstr ""

#: src/occur_form.php:182
msgid "Error submitting occurrence."
msgstr ""

#: src/occurrence_delete.php:32
msgid "No occurrence selected."
msgstr ""

#: src/occurrence_delete.php:82
msgid "Removed occurrence"
msgstr ""

#: src/occurrence_delete.php:84
msgid "Removed occurrences"
msgstr ""

#: src/occurrence_delete.php:91
msgid "Could not remove occurrence"
msgstr ""

#: src/occurrence_delete.php:93
msgid "Could not remove occurrences"
msgstr ""

#: src/occurrence_delete.php:100
msgid "You do not have permission to remove the occurrence."
msgstr ""

#: src/occurrence_delete.php:102
msgid "You do not have permission to remove occurrences."
msgstr ""

#: src/password_submit.php:31
msgid "You must be logged in."
msgstr ""

#: src/password_submit.php:37
msgid "You do not have permission to change your password."
msgstr ""

#: src/password_submit.php:40
msgid "You must specify your old password."
msgstr ""

#: src/password_submit.php:46
msgid "The password you entered did not match your old password."
msgstr ""

#: src/password_submit.php:50 src/user_create.php:96
msgid "You must specify a password"
msgstr ""

#: src/password_submit.php:55 src/user_create.php:101
msgid "Your passwords did not match"
msgstr ""

#: src/password_submit.php:62
msgid "Password updated."
msgstr ""

#: src/phpccalendar.class.php:73
msgid "(No title)"
msgstr ""

#: src/phpcdatabase.class.php:122
msgid "Error in get_occurrences_by_date_range"
msgstr ""

#: src/phpcdatabase.class.php:192
msgid "Error in get_event_by_eid"
msgstr ""

#: src/phpcdatabase.class.php:196
msgid "Event doesn't exist"
msgstr ""

#: src/phpcdatabase.class.php:223
msgid "Error in get_event_by_oid"
msgstr ""

#: src/phpcdatabase.class.php:227 src/phpcdatabase.class.php:424
msgid "Event doesn't exist with oid"
msgstr ""

#: src/phpcdatabase.class.php:252
msgid "Error in get_category"
msgstr ""

#: src/phpcdatabase.class.php:255
msgid "Category doesn't exist with catid"
msgstr ""

#: src/phpcdatabase.class.php:273
msgid "Error in get_group"
msgstr ""

#: src/phpcdatabase.class.php:276
msgid "Group doesn't exist with gid"
msgstr ""

#: src/phpcdatabase.class.php:296
msgid "Error in get_groups"
msgstr ""

#: src/phpcdatabase.class.php:319
msgid "Error in get_user_groups"
msgstr ""

#: src/phpcdatabase.class.php:353
msgid "Error in get_categories"
msgstr ""

#: src/phpcdatabase.class.php:387
msgid "Error in get_visible_categories"
msgstr ""

#: src/phpcdatabase.class.php:420
msgid "Error in get_occurrence_by_oid"
msgstr ""

#: src/phpcdatabase.class.php:450
msgid "Error in get_occurrences_by_eid"
msgstr ""

#: src/phpcdatabase.class.php:471 src/phpcdatabase.class.php:491
msgid "Error while removing an event."
msgstr ""

#: src/phpcdatabase.class.php:507
msgid "Error while removing an occurrence."
msgstr ""

#: src/phpcdatabase.class.php:524 src/phpcdatabase.class.php:577
msgid "Error while removing a calendar"
msgstr ""

#: src/phpcdatabase.class.php:541
msgid "Error while removing category."
msgstr ""

#: src/phpcdatabase.class.php:558
msgid "Error while removing group."
msgstr ""

#: src/phpcdatabase.class.php:582
msgid "Error while removing "
msgstr ""

#: src/phpcdatabase.class.php:606
msgid "Could not read permissions."
msgstr ""

#: src/phpcdatabase.class.php:624
msgid "Could not get calendars."
msgstr ""

#: src/phpcdatabase.class.php:670 src/phpcdatabase.class.php:694
msgid "Could not get user."
msgstr ""

#: src/phpcdatabase.class.php:714 src/phpcdatabase.class.php:734
msgid "Error getting user."
msgstr ""

#: src/phpcdatabase.class.php:755
msgid "Error creating user."
msgstr ""

#: src/phpcdatabase.class.php:769
msgid "Error reading options"
msgstr ""

#: src/phpcdatabase.class.php:786
msgid "Error updating option"
msgstr ""

#: src/phpcdatabase.class.php:802
msgid "Error creating option"
msgstr ""

#: src/phpcdatabase.class.php:816
msgid "Error updating password."
msgstr ""

#: src/phpcdatabase.class.php:831
msgid "Error updating timezone."
msgstr ""

#: src/phpcdatabase.class.php:846
msgid "Error updating language."
msgstr ""

#: src/phpcdatabase.class.php:862
msgid "Error adding group to user."
msgstr ""

#: src/phpcdatabase.class.php:877
msgid "Error removing group from user."
msgstr ""

#: src/phpcdatabase.class.php:906
msgid "Error creating event."
msgstr ""

#: src/phpcdatabase.class.php:940
msgid "Error creating occurrence."
msgstr ""

#: src/phpcdatabase.class.php:976
msgid "Error modifying occurrence."
msgstr ""

#: src/phpcdatabase.class.php:1006
msgid "Error modifying event."
msgstr ""

#: src/phpcdatabase.class.php:1028
msgid "Error creating category."
msgstr ""

#: src/phpcdatabase.class.php:1046
msgid "Error creating group."
msgstr ""

#: src/phpcdatabase.class.php:1070
msgid "Error modifying category."
msgstr ""

#: src/phpcdatabase.class.php:1088
msgid "Error modifying group."
msgstr ""

#: src/phpcdatabase.class.php:1134
msgid "Error during searching"
msgstr ""

#: src/phpcdatabase.class.php:1165
msgid "Error updating user permissions."
msgstr ""

#: src/phpcdatabase.class.php:1179
msgid "Error getting login token."
msgstr ""

#: src/phpcdatabase.class.php:1199
msgid "Error adding login token."
msgstr ""

#: src/phpcdatabase.class.php:1214
msgid "Error updating login token."
msgstr ""

#: src/phpcdatabase.class.php:1226
msgid "Error removing login tokens."
msgstr ""

#: src/phpcdatabase.class.php:1235
msgid "Error cleaning login tokens."
msgstr ""

#: src/phpcdatabase.class.php:1251
msgid "SQL query"
msgstr ""

#: src/phpcevent.class.php:60
msgid "anonymous"
msgstr ""

#: src/phpcevent.class.php:62
msgid "unknown"
msgstr ""

#: src/phpcevent.class.php:91
msgid "(No subject)"
msgstr ""

#: src/phpcoccurrence.class.php:55 src/phpcoccurrence.class.php:76
msgid "DB returned an invalid date."
msgstr ""

#: src/phpcoccurrence.class.php:103 src/phpcoccurrence.class.php:118
msgid "TBA"
msgstr ""

#: src/phpcoccurrence.class.php:113 src/phpcoccurrence.class.php:259
msgid "to"
msgstr ""

#: src/search.php:46
msgid "Invalid sort option"
msgstr ""

#: src/search.php:52
msgid "Invalid order option"
msgstr ""

#: src/search.php:85
msgid "No events matched your search criteria."
msgstr ""

#: src/search.php:89
msgid "Search Results"
msgstr ""

#: src/search.php:93
msgid "Date Time"
msgstr ""

#: src/search.php:111
msgid "Phrase"
msgstr ""

#: src/search.php:119
msgid "Sort By"
msgstr ""

#: src/search.php:122
msgid "Order"
msgstr ""

#: src/settings.php:59
msgid "Change Password"
msgstr ""

#: src/settings.php:68
msgid "Old Password"
msgstr ""

#: src/settings.php:71
msgid "New Password"
msgstr ""

#: src/settings.php:74
msgid "Confirm New Password"
msgstr ""

#: src/settings.php:150
msgid "Settings updated."
msgstr ""

#: src/setup.php:76
msgid "Possible hacking attempt on your account."
msgstr ""

#: src/setup.php:106
msgid "Could not find a calendar."
msgstr ""

#: src/setup.php:188
msgid "Month is out of range."
msgstr ""

#: src/setup.php:196
msgid "Invalid year"
msgstr ""

#: src/translate.php:55
#, php-format
msgid "Translated \"%s\""
msgstr ""

#: src/user_create.php:73
msgid "Confirm Password"
msgstr ""

#: src/user_create.php:76
msgid "Make Admin"
msgstr ""

#: src/user_create.php:92
msgid "You must specify a user name"
msgstr ""

#: src/user_create.php:109
msgid "User already exists."
msgstr ""

#: src/user_create.php:119
msgid "Added user."
msgstr ""

#: src/user_delete.php:32
msgid "You must be an admin to delete users."
msgstr ""

#: src/user_delete.php:37
msgid "No user selected."
msgstr ""

#: src/user_groups.php:64
msgid "Edit User Groups"
msgstr ""

#: src/user_groups.php:105
msgid "Groups updated."
msgstr ""

#: src/user_permissions_submit.php:34
msgid "No users"
msgstr ""

#: src/user_permissions_submit.php:62
msgid "No changes to make."
msgstr ""

#: src/user_permissions_submit.php:64
msgid "Updated user(s):"
msgstr ""

#: src/util.php:93
msgid "continue"
msgstr ""

#: src/util.php:230
msgid "Software Error"
msgstr ""

#: src/util.php:231
msgid "Message:"
msgstr ""
<?php
/*
 * Copyright (c) 2009 David Soria Parra
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */


/**
 * Gettext implementation in PHP
 *
 * @copyright (c) 2009 David Soria Parra <sn_@gmx.net>
 * @author David Soria Parra <sn_@gmx.net>
 *
 * Changes:
 *   04/25/2013 sproctor - Changed unpack format in parseHeader to unsigned
 *   09/07/2013 sproctor - Added pgettext
 */
class Gettext_PHP //extends Gettext
{
    /**
     * First magic word in the MO header
     */
    const MAGIC1 = 0xde120495;

    /**
     * First magic word in the MO header
     */
    const MAGIC2 = 0x950412de;

    protected $mofile;
    protected $translationTable = array();
    protected $parsed = false;

    /**
     * Initialize a new gettext class
     *
     * @param string $directory
     * @param string $domain
     * @param string $locale
     */
    public function __construct($directory, $domain, $locale)
    {
        $this->mofile = sprintf("%s/%s/LC_MESSAGES/%s.mo", $directory,
                            $locale, $domain);
    }

    /**
     * Parse the MO file header and returns the table
     * offsets as described in the file header.
     *
     * If an exception occured, null is returned. This is intentionally
     * as we need to get close to ext/gettexts beahvior.
     *
     * @param resource $fp The open file handler to the MO file
     *
     * @return array of offset
     */
    private function parseHeader($fp)
    {
        $data   = fread($fp, 8);
        $header = unpack("Lmagic/Lrevision", $data);

        if ((int) self::MAGIC1 != $header['magic']
           && (int) self::MAGIC2 != $header['magic']) {
            return null;
        }

        if (0 != $header['revision']) {
            return null;
        }

        $data    = fread($fp, 4 * 5);
        $offsets = unpack("lnum_strings/lorig_offset/"
                          . "ltrans_offset/lhash_size/lhash_offset", $data);
        return $offsets;
    }

    /**
     * Parse and reutnrs the string offsets in a a table. Two table can be found in
     * a mo file. The table with the translations and the table with the original
     * strings. Both contain offsets to the strings in the file.
     *
     * If an exception occured, null is returned. This is intentionally
     * as we need to get close to ext/gettexts beahvior.
     *
     * @param resource $fp The open file handler to the MO file
     * @param Integer   $offset The offset to the table that should be parsed
     * @param Integer   $num    The number of strings to parse
     *
     * @return array of offsets
     */
    private function parseOffsetTable($fp, $offset, $num)
    {
        if (fseek($fp, $offset, SEEK_SET) < 0) {
            return null;
        }

        $table = array();
        for ($i = 0; $i < $num; $i++) {
            $data    = fread($fp, 8);
            $table[] = unpack("lsize/loffset", $data);
        }

        return $table;
    }

    /**
     * Parse a string as referenced by an table. Returns an
     * array with the actual string.
     *
     * @param resource $fp The open file handler to the MO fie
     * @param array $entry The entry as parsed by parseOffsetTable()
     *
     * @return string
     */
    private function parseEntry($fp, $entry)
    {
        if (fseek($fp, $entry['offset'], SEEK_SET) < 0) {
            return null;
        }
        if ($entry['size'] > 0) {
            return fread($fp, $entry['size']);
        }

       return '';
    }


    /**
     * Parse the MO file
     */
    private function parse()
    {
        $this->translationTable = array();

        if (!file_exists($this->mofile)) {
            return;
        }

        $filesize = filesize($this->mofile);
        if ($filesize < 4 * 7) {
            return;
        }

        /* check for filesize */
        $fp = fopen($this->mofile, "rb");

        $offsets = $this->parseHeader($fp);
        if (null == $offsets || $filesize < 4 * ($offsets['num_strings'] + 7)) {
            fclose($fp);
            return;
        }

        $transTable = array();
        $table = $this->parseOffsetTable($fp, $offsets['trans_offset'],
                    $offsets['num_strings']);
        if (null == $table) {
            fclose($fp);
            return;
        }

        foreach ($table as $idx => $entry) {
            $transTable[$idx] = $this->parseEntry($fp, $entry);
        }

        $table = $this->parseOffsetTable($fp, $offsets['orig_offset'],
                    $offsets['num_strings']);
        foreach ($table as $idx => $entry) {
            $entry = $this->parseEntry($fp, $entry);

            $formes      = explode(chr(0), $entry);
            $translation = explode(chr(0), $transTable[$idx]);
            foreach($formes as $form) {
                $this->translationTable[$form] = $translation;
            }
        }

        fclose($fp);

        $this->parsed = true;
    }

    /**
     * Return a translated string
     *
     * If the translation is not found, the original passed message
     * will be returned.
     *
     * @param string $msg
     * @return string Translated message
     */
    public function gettext($msg)
    {
        if (!$this->parsed) {
            $this->parse();
        }

        if (array_key_exists($msg, $this->translationTable)) {
            $t = $this->translationTable[$msg][0];
	    if(!empty($t))
                return $t;
        }
        return $msg;
    }

    /**
     * Return a translated string with the given context
     *
     * If the translation is not found, the original passed message
     * will be returned.
     *
     * @param string $context The context of the message to search for
     * @param string $msg The message to search for
     *
     * @return string Translated message
     */
    public function pgettext($context, $msg)
    {
        if (!$this->parsed) {
            $this->parse();
        }

	$key = "{$context}\04{$msg}";
        if (array_key_exists($key, $this->translationTable)) {
            $t = $this->translationTable[$key][0];
            if(!empty($t))
                return $t;
        }
        return $msg;
    }

    /**
     * Return a translated string in it's plural form
     *
     * Returns the given $count (e.g second, third,...) plural form of the
     * given string. If the id is not found and $num == 1 $msg is returned,
     * otherwise $msg_plural
     *
     * @param string $msg The message to search for
     * @param string $msg_plural A fallback plural form
     * @param int $count Which plural form
     *
     * @return string Translated string
     */
    public function ngettext($msg, $msg_plural, $count)
    {
        if (!$this->parsed) {
            $this->parse();
        }

        $msg = (string) $msg;

        if (array_key_exists($msg, $this->translationTable)) {
            $translation = $this->translationTable[$msg];
            /* the gettext api expect an unsigned int, so we just fake 'cast' */
            if ($count <= 0 || count($translation) < $count) {
                $count = count($translation);
            }
            return $translation[$count - 1];
        }

        /* not found, handle count */
        if (1 == $count) {
            return $msg;
        } else {
            return $msg_plural;
        }
    }
}

<?php 
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
    die("Hacking attempt");
}

require_once("$phpc_includes_path/form.php");

/**
 * @return Html
 */
function admin() {
	global $phpc_version;

    if (!is_admin()) {
        permission_error(__('You must be logged in as an admin.'));
    }

	$menu = tag('ul',
			tag('li', tag('a', attrs('href="#phpc-admin-calendars"'),
					__('Calendars'))),
			tag('li', tag('a', attrs('href="#phpc-admin-users"'),
					__('Users'))),
			tag('li', tag('a', attrs('href="#phpc-admin-import"'),
					__('Import'))),
			tag('li', tag('a', attrs('href="#phpc-admin-translate"'),
					__('Translate'))));

	$version = tag('div', attrs('class="phpc-bar ui-widget-content"'),
			__('Version') . ": $phpc_version");

	return tag('', tag('div', attrs('class="phpc-tabs"'), $menu,
				calendar_list(), user_list(), import(),
				translation_link()), $version);
}

/**
 * @return Html
 */
function calendar_list()
{
    global $phpcdb;

    $tbody = tag('tbody');

		$tbody->add(tag('tr', tag('th', __("Calendar")),
					tag('th', __("Action"))));
    foreach ($phpcdb->get_calendars() as $calendar) {
        $title = $calendar->get_title();
        $cid = $calendar->get_cid();

        $tbody->add(tag('tr',
            tag('th', $title),
            tag('td', create_action_link(__("Edit"),
						"cadmin", array("phpcid" => $cid)),
					" ", create_action_link(__("Delete"),
						"calendar_delete",
						array("cid" => $cid)))));
    }

	$create_link = create_action_link(__('Create Calendar'),
			'calendar_form');
    return tag('div', attributes('id="phpc-admin-calendars"'), tag('table',
				attributes('class="phpc-container"'),
			tag('caption', __('Calendar List')), $tbody,
			tag('tfoot',
				tag('tr',
					tag('td', attributes('colspan="2"'),
						$create_link)))));

}

/**
 * @return Html
 */
function user_list()
{
    global $phpcdb;

    $tbody = tag('tbody');

    $tbody->add(tag('tr', tag('th', __("Username")),
        tag('th', __("Groups")),
        tag('th', __("Edit Groups")),
        tag('th', __("Action"))));

    foreach ($phpcdb->get_users() as $user) {
		$group_list = array();
		foreach($user->get_groups() as $group) {
			$group_list[] = $group['name'];
		}
		$groups = implode(', ', $group_list);
		$tbody->add(tag('tr', tag('th', $user->username),
					tag('td', $groups),
            tag('td', create_action_link(__("Edit Groups"), "user_groups",
                array("uid" => $user->uid))),
					tag('td', create_action_link(__("Delete"),
							"user_delete",
							array("uid" => $user->uid)))));
	}

	$create_link = create_action_link(__('Create User'),
			'user_create');
    return tag('div', attributes('id="phpc-admin-users"'), tag('table',
        attributes('class="phpc-container"'),
        tag('caption', __('User List')), $tbody,
        tag('tfoot',
            tag('tr',
                tag('td', attributes('colspan="3"'),
                    $create_link)))));

}

/**
 * @return Html
 */
function import() {
    global $phpc_script;

	$form = new Form($phpc_script, __('Import Form'));
	$form->add_part(new FormFreeQuestion('host', __('MySQL Host Name')));
	$form->add_part(new FormFreeQuestion('dbname', __('MySQL Database Name')));
	$form->add_part(new FormFreeQuestion('port', __('MySQL Port Number'), __('Leave blank for default')));
	$form->add_part(new FormFreeQuestion('username', __('MySQL User Name')));
	$pwq = new FormFreeQuestion('passwd', __('MySQL User Password'));
	$pwq->type = 'password';
	$form->add_part($pwq);
	$form->add_part(new FormFreeQuestion('prefix', __('PHP-Calendar Table Prefix')));

	$form->add_hidden('action', 'import');
	$form->add_hidden('submit_form', 'submit_form');

	$form->add_part(new FormSubmitButton(__("Import Calendar")));

	$defaults = array(
			'host' => 'localhost',
			'dbname' => 'calendar',
			'prefix' => 'phpc_',
			);

	return tag('div', attrs('id="phpc-admin-import"'),
			$form->get_form($defaults));
}

/**
 * @return Html
 */
function translation_link() {
	global $phpc_script;

	return tag('div', attrs('id="phpc-admin-translate"'),
			tag('p', __('This script needs read access to your calendar directory in order to write the translation files. Alternatively, you could run translate.php from the command line or use msgfmt or any other gettext tool that can generate .mo files from .po files.')),
			tag('a', attrs('class="phpc-button"',
					"href=\"$phpc_script?action=translate\""),
				__('Generate Translations')));
}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if (!defined('IN_PHPC')) {
    die("Hacking attempt");
}

/**
 * @return Html
 */
function cadmin()
{
	global $phpc_cal;

    if (!$phpc_cal->can_admin()) {
        permission_error(__('You must be logged in as an admin.'));
    }

	$index = tag('ul',
        tag('li', tag('a', attrs('href="#phpc-config"'),
            __('Calendar Configuration'))),
        tag('li', tag('a', attrs('href="#phpc-users"'),
            __('Users'))),
        tag('li', tag('a', attrs('href="#phpc-categories"'),
            __('Categories'))),
        tag('li', tag('a', attrs('href="#phpc-groups"'),
            __('Groups'))));

	return tag('div', attrs("class=\"phpc-tabs\""), $index, config_form(),
        user_list(), category_list(), group_list());
}

function config_form()
{
	global $phpc_cal, $phpc_script, $vars;

    $tbody = tag('tbody');

    foreach (get_config_options() as $element) {
        $name = $element[0];
        $text = $element[1];
		$default = $phpc_cal->$name;
		$input = create_config_input($element, $default);

        $tbody->add(tag('tr',
            tag('th', $text),
            tag('td', $input)));
    }

	$hidden_div = tag('div',
        create_hidden('action', 'cadmin_submit'));
    if (isset($vars['phpcid']))
		$hidden_div->add(create_hidden('phpcid', $vars['phpcid']));

    $form = tag('form', attributes("action=\"$phpc_script\"",
        'method="post"'),
        $hidden_div,
        tag('table', attributes("class=\"phpc-container\""),
            tag('caption', __('Options')),
            tag('tfoot',
                tag('tr',
                    tag('td', attributes('colspan="2"'),
                        create_submit(__('Submit'))))),
            $tbody));

	return tag('div', attrs('id="phpc-config"'), $form);
}

function user_list()
{
	global $phpc_script, $phpcid, $phpcdb, $vars;

	$users = $phpcdb->get_users_with_permissions($phpcid);

	$tbody = tag('tbody');

	foreach ($users as $user) {
		$phpc_user = new PhpcUser($user);
		$group_list = array();
        foreach ($phpc_user->get_groups() as $group) {
            if ($group['cid'] == $phpcid)
				$group_list[] = $group['name'];
		}
		$groups = implode(', ', $group_list);
		$tbody->add(tag('tr',
            tag('th', $user['username'],
                create_hidden('uid[]',
                    $user['uid'])),
            tag('td', create_checkbox("read{$user['uid']}", "1", !empty($user['read']), __('Read'))),
            tag('td', create_checkbox("write{$user['uid']}", "1", !empty($user['write']), __('Write'))),
            tag('td', create_checkbox("readonly{$user['uid']}", "1", !empty($user['readonly']), __('Read-only'))),
            tag('td', create_checkbox("modify{$user['uid']}", "1", !empty($user['modify']), __('Modify'))),
            tag('td', create_checkbox("admin{$user['uid']}", "1", !empty($user['calendar_admin']), __('Admin'))),
            tag('td', $groups),
            tag('td', create_action_link(__("Edit Groups"), "user_groups", array("uid" => $user["uid"])))
        ));
	}

	$hidden_div = tag('div',
        create_hidden('action', 'user_permissions_submit'));
    if (isset($vars['phpcid']))
		$hidden_div->add(create_hidden('phpcid', $vars['phpcid']));

	$form = tag('form', attributes("action=\"$phpc_script\"",
        'method="post"'),
        $hidden_div,
        tag('table', attributes("class=\"phpc-container\""),
            tag('caption', __('User Permissions')),
            tag('tfoot',
                tag('tr',
                    tag('td', attributes('colspan="8"'),
                        create_submit(__('Submit'))))),
            tag('thead',
                tag('tr',
                    tag('th', __('User Name')),
                    tag('th', __('Read')),
                    tag('th', __('Write')),
                    tag('th', __('Can Create Read-Only')),
                    tag('th', __('Modify')),
                    tag('th', __('Admin')),
                    tag('th', __('Groups')),
                    tag('th', __('Edit Groups'))
                )), $tbody));

	return tag('div', attrs('id="phpc-users"'), $form);
}

function category_list()
{
    global $phpcid, $phpc_cal;

	$categories = $phpc_cal->get_categories();

	$tbody = tag('tbody');

	foreach ($categories as $category) {
		$name = empty($category['name']) ? __('No Name')
			: $category['name'];
		$catid = $category['catid'];
		$group = empty($category['group_name']) ? __('None')
			: $category['group_name'];
		$tbody->add(tag('tr',
            tag('th', $name),
            tag('td', phpc_html_escape($category['text_color'])),
            tag('td', phpc_html_escape($category['bg_color'])),
            tag('td', phpc_html_escape($group)),
            tag('td', create_action_link(__('Edit'),
                'category_form',
                array('catid'
                => $catid)),
                " ",
                create_action_link(__('Delete'),
                    'category_delete',
                    array('catid'
                    => $catid)))
        ));
	}

	$create_link = create_action_link(__('Create category'), 'category_form',
        array('cid' => $phpcid));
	$table = tag('table', attributes("class=\"phpc-container\""),
        tag('caption', __('Calendar Categories')),
        tag('thead',
            tag('tr',
                tag('th', __('Name')),
                tag('th', __('Text Color')),
                tag('th', __('Background Color')),
                tag('th', __('Visible to User Group')),
                tag('th', __('Actions'))
            )),
        $tbody,
        tag('tfoot',
            tag('tr',
                tag('td', attributes('colspan="5"'),
                    $create_link))));

	return tag('div', attributes('id="phpc-categories"'), $table);
}

function group_list()
{
    global $phpcid, $phpc_cal;

	$groups = $phpc_cal->get_groups();

	$tbody = tag('tbody');

	foreach ($groups as $group) {
		$name = empty($group['name']) ? __('No Name')
			: $group['name'];
		$id = $group['gid'];
		$tbody->add(tag('tr',
            tag('th', $name),
            tag('td', create_action_link(__('Edit'),
                'group_form',
                array('gid' => $id)),
                " ",
                create_action_link(__('Delete'),
                    'group_delete',
                    array('gid' => $id)))
        ));
	}

	$create_link = create_action_link(__('Create group'), 'group_form',
        array('cid' => $phpcid));
	$table = tag('table', attributes("class=\"phpc-container\""),
        tag('caption', __('Calendar Groups')),
        tag('thead',
            tag('tr',
                tag('th', __('Name')),
                tag('th', __('Actions'))
            )),
        $tbody,
        tag('tfoot',
            tag('tr',
                tag('td', attributes('colspan="2"'),
                    $create_link))));

	return tag('div', attrs('id="phpc-groups"'), $table);
}

<?php 
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function cadmin_submit() {
	global $phpcid, $phpc_cal, $vars, $phpcdb, $phpc_script;

        if(!$phpc_cal->can_admin()) {
                return tag('div', __('Permission denied'));
        }

	foreach(get_config_options() as $item) {
		if($item[2] == PHPC_CHECK) {
			if(isset($vars[$item[0]]))
				$value = "1";
			else
				$value = "0";
		} else {
			if(isset($vars[$item[0]])) {
				$value = $vars[$item[0]];
			} else {
				soft_error($item[0] . __(" was not set."));
			}
		}

		$phpcdb->update_config($phpcid, $item[0], $value);
	}

        return message_redirect(__('Updated options'),
			"$phpc_script?action=cadmin&phpcid=$phpcid");
}

<?php
/*
 * Copyright 2017 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
   this file contains all the re-usable functions for the calendar
*/

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

require_once("$phpc_includes_path/Gettext_PHP.php");
require_once("$phpc_includes_path/html.php");
require_once("$phpc_includes_path/util.php");

// Displayed in admin
$phpc_version = "2.0.10";

/**
 * @param string $msg
 * @return string
 */
function __($msg) {
	global $phpc_gettext;

	if (empty($phpc_gettext))
		return $msg;

	return $phpc_gettext->gettext($msg);
}

/**
 * @param string $context
 * @param string $msg
 * @return string
 */
function __p($context, $msg) {
	global $phpc_gettext;

	return $phpc_gettext->pgettext($context, $msg);
}

// checks global variables to see if the user is logged in.
/**
 * @return bool
 */
function is_user() {
	global $phpc_user;

	return $phpc_user->uid > 0;
}

/**
 * @return bool
 */
function is_admin() {
	global $phpc_user;

	return $phpc_user->admin;
}

/**
 * @param string $username
 * @param string $password
 * @return bool
 */
function login_user($username, $password)
{
    global $phpcdb;

	$user = $phpcdb->get_user_by_name($username);
	if(!$user || $user->password !== md5($password))
		return false;

	phpc_do_login($user);

	return true;
}

/**
 * @param PhpcUser $user
 * @param bool $series_token
 * @return bool
 */
function phpc_do_login($user, $series_token = false) {
        global $phpcdb, $phpc_prefix;

	$uid = $user->uid;
	$login_token = phpc_get_token();
	$_SESSION["{$phpc_prefix}uid"] = $uid;
	$_SESSION["{$phpc_prefix}login"] = $login_token;

	if(!$series_token) {
		$series_token = phpc_get_token();
		$phpcdb->add_login_token($uid, $series_token,
				$login_token);
	} else {
		$phpcdb->update_login_token($uid, $series_token,
				$login_token);
	}

	// TODO: Add a remember me checkbox to the login form, and have the
	//	cookies expire at the end of the session if it's not checked

	// expire credentials in 30 days.
	$expiration_time = time() + 30 * 24 * 60 * 60;
	phpc_set_cookie("{$phpc_prefix}uid", $uid, $expiration_time);
	phpc_set_cookie("{$phpc_prefix}login", $login_token, $expiration_time);
	phpc_set_cookie("{$phpc_prefix}login_series", $series_token,
			$expiration_time);

	return true;
}

function phpc_do_logout() {
	global $phpc_prefix;
   	session_destroy();
	$past_time = time() - 3600;
	phpc_set_cookie("{$phpc_prefix}uid", "", $past_time);
	phpc_set_cookie("{$phpc_prefix}login", "", $past_time);
	phpc_set_cookie("{$phpc_prefix}login_series", "", $past_time);
}

// returns tag data for the links at the bottom of the calendar
/**
 * @return Html
 */
function footer()
{
	global $phpc_url, $phpc_tz, $phpc_lang;

	$tag = tag('div', attributes('class="phpc-bar ui-widget-content"'),
			"[" . __('Language') . ": $phpc_lang]" .
			" [" . __('Timezone') . ": $phpc_tz]");

	if(defined('PHPC_DEBUG')) {
		$tag->add(tag('a', attributes('href="http://validator.w3.org/check?url='
						. phpc_html_escape(rawurlencode($phpc_url))
						. '"'), 'Validate HTML'));
		$tag->add(tag('a', attributes('href="http://jigsaw.w3.org/css-validator/check/referer"'),
					'Validate CSS'));
	}

	return $tag;
}

/**
 * @return array
 */
function get_languages() {
	global $phpc_locale_path;

    static $langs;

	if(!empty($langs))
		return $langs;

	// create links for each existing language translation
	$handle = opendir($phpc_locale_path);

	if(!$handle)
		soft_error("Error reading locale directory.");

	$langs = array('en');
	while(($filename = readdir($handle)) !== false) {
		$pathname = "$phpc_locale_path/$filename";
		if(strncmp($filename, ".", 1) == 0 || !is_dir($pathname))
			continue;
		if(file_exists("$pathname/LC_MESSAGES/messages.mo"))
			$langs[] = $filename;
	}

	closedir($handle);

	return $langs;
}

/**
 * @return int
 */
function day_of_week_start()
{
	global $phpc_cal;

	return $phpc_cal->week_start;
}

// returns the number of days in the week before the 
//  taking into account whether we start on sunday or monday
/**
 * @param int $month
 * @param int $day
 * @param int $year
 * @return int
 */
function day_of_week($month, $day, $year)
{
	return day_of_week_ts(mktime(0, 0, 0, $month, $day, $year));
}

// returns the number of days in the week before the 
//  taking into account whether we start on sunday or monday
/**
 * @param int $timestamp
 * @return int
 */
function day_of_week_ts($timestamp)
{
	$days = date('w', $timestamp);

	return ($days + 7 - day_of_week_start()) % 7;
}

// returns the number of days in $month
/**
 * @param int $month
 * @param int $year
 * @return false|string
 */
function days_in_month($month, $year)
{
	return date('t', mktime(0, 0, 0, $month, 1, $year));
}

//returns the number of weeks in $month
function weeks_in_month($month, $year)
{
	$days = days_in_month($month, $year);

	// days not in this month in the partial weeks
	$days_before_month = day_of_week($month, 1, $year);
	$days_after_month = 6 - day_of_week($month, $days, $year);

	// add up the days in the month and the outliers in the partial weeks
	// divide by 7 for the weeks in the month
	return ($days_before_month + $days + $days_after_month) / 7;
}

// return the week number corresponding to the $day.
function week_of_year($month, $day, $year)
{
	$timestamp = mktime(0, 0, 0, $month, $day, $year);

	// week_start = 1 uses ISO 8601 and contains the Jan 4th,
	//   Most other places the first week contains Jan 1st
	//   There are a few outliers that start weeks on Monday and use
	//   Jan 1st for the first week. We'll ignore them for now.
	if(day_of_week_start() == 1) {
		$year_contains = 4;
		// if the week is in December and contains Jan 4th, it's a week
		// from next year
		if($month == 12 && $day - 24 >= $year_contains) {
			$year++;
			$month = 1;
			$day -= 31;
		}
	} else {
		$year_contains = 1;
	}

	// $day is the first day of the week relative to the current month,
	// so it can be negative. If it's in the previous year, we want to use
	// that negative value, unless the week is also in the previous year,
	// then we want to switch to using that year.
	if($day < 1 && $month == 1 && $day > $year_contains - 7) {
		$day_of_year = $day - 1;
	} else {
		$day_of_year = date('z', $timestamp);
		$year = date('Y', $timestamp);
	}

	/* Days in the week before Jan 1. */
	$days_before_year = day_of_week(1, $year_contains, $year);

	// Days left in the week
	$days_left = 8 - day_of_week_ts($timestamp) - $year_contains;

	/* find the number of weeks by adding the days in the week before
	 * the start of the year, days up to $day, and the days left in
	 * this week, then divide by 7 */
	return ($days_before_year + $day_of_year + $days_left) / 7;
}

function year_of_week_of_year($month, $day, $year) {
    $timestamp = mktime(0, 0, 0, $month, $day, $year);

    // week_start = 1 uses ISO 8601 and contains the Jan 4th,
    //   Most other places the first week contains Jan 1st
    //   There are a few outliers that start weeks on Monday and use
    //   Jan 1st for the first week. We'll ignore them for now.
    if(day_of_week_start() == 1) {
        $year_contains = 4;
        // if the week is in December and contains Jan 4th, it's a week
        // from next year
        if($month == 12 && $day - 24 >= $year_contains) {
            return $year + 1;
        }
    } else {
        return $year;
    }

    // $day is the first day of the week relative to the current month,
    // so it can be negative. If it's in the previous year, we want to use
    // that negative value, unless the week is also in the previous year,
    // then we want to switch to using that year.
    if($day < 1 && $month == 1 && $day > $year_contains - 7) {
        return $year;
    } else {
        return date('Y', $timestamp);
    }
}

function create_event_link($text, $action, $eid, $attribs = false)
{
	return create_action_link($text, $action, array('eid' => $eid),
			$attribs);
}

function create_occurrence_link($text, $action, $oid, $attribs = false)
{
	return create_action_link($text, $action, array('oid' => $oid),
			$attribs);
}

function create_action_link_with_date($text, $action, $year = false,
		$month = false, $day = false, $attribs = false)
{
	$args = array();
	if($year !== false) $args["year"] = $year;
	if($month !== false) $args["month"] = $month;
	if($day !== false) $args["day"] = $day;

	return create_action_link($text, $action, $args, $attribs);
}

/**
 * @param $action
 * @param bool $year
 * @param bool $month
 * @param bool $day
 * @param array $args
 * @return string
 */
function create_action_url($action, $year = false, $month = false, $day = false, $args = array())
{
	global $phpc_script, $vars;
	if($year !== false) $args["year"] = $year;
	if($month !== false) $args["month"] = $month;
	if($day !== false) $args["day"] = $day;

	$url ="".$phpc_script."?";
	if(isset($vars["phpcid"]))
		$url .= "phpcid=" . phpc_html_escape($vars["phpcid"]) . "&amp;";
	$url .= "action=" . phpc_html_escape($action);


    foreach ($args as $key => $value) {
        if (empty($value))
            continue;
        if (is_array($value)) {
            foreach ($value as $v) {
                $url .= "&amp;"
                    . phpc_html_escape("{$key}[]=$v");
            }
        } else
            $url .= "&amp;" . phpc_html_escape("$key=$value");
	}

	return $url;
}

/**
 * @param string $text
 * @param string $action
 * @param string[] $args
 * @param bool|AttributeList $attribs
 * @return Html
 */
function create_action_link($text, $action, $args = array(), $attribs = false)
{
	global $phpc_script, $vars;

	$url = "href=\"$phpc_script?";
	if(isset($vars["phpcid"]))
		$url .= "phpcid=" . phpc_html_escape($vars["phpcid"]) . "&amp;";
	$url .= "action=" . phpc_html_escape($action);

    foreach ($args as $key => $value) {
        if (empty($value))
            continue;
        if (is_array($value)) {
            foreach ($value as $v) {
                $url .= "&amp;"
                    . phpc_html_escape("{$key}[]=$v");
            }
        } else
            $url .= "&amp;" . phpc_html_escape("$key=$value");
	}
	$url .= '"';

	if($attribs !== false) {
		$as = attributes($url, $attribs);
	} else {
		$as = attributes($url);
	}
	return tag('a', $as, $text);
}

// takes a menu $html and appends an entry
/**
 * @param Html $html
 * @param string $name
 * @param string $action
 * @param string[] $args
 * @param bool|AttributeList $attribs
 */
function menu_item_append(&$html, $name, $action, $args = array(),
		$attribs = false)
{
	$name=str_replace(' ','&nbsp;',$name); /*not breaking space on menus*/

	if(!is_object($html)) {
		soft_error('Html is not a valid Html class.');
	}
	$html->add(create_action_link($name, $action, $args, $attribs));
	$html->add("\n");
}

// takes a menu $html and appends an entry with the date
/**
 * @param Html $html
 * @param string $name
 * @param string $action
 * @param bool|int $year
 * @param bool|int $month
 * @param bool|int $day
 * @param bool|AttributeList $attribs
 */
function menu_item_append_with_date(&$html, $name, $action, $year = false,
		$month = false, $day = false, $attribs = false)
{
	$name = str_replace(' ','&nbsp;',$name);

	if(!is_object($html)) {
		soft_error('Html is not a valid Html class.');
	}
	$html->add(create_action_link_with_date($name, $action, $year, $month,
			$day, $attribs));
	$html->add("\n");
}

// same as above, but prepends the entry
/**
 * @param Html $html
 * @param string $name
 * @param string $action
 * @param string[] $args
 * @param bool|AttributeList $attribs
 */
function menu_item_prepend(&$html, $name, $action, $args = array(),
		$attribs = false)
{
	if(!is_object($html)) {
		soft_error('Html is not a valid Html class.');
	}
	$html->prepend("\n");
	$html->prepend(create_action_link($name, $action, $args, $attribs));
}

// creates a hidden input for a form
// returns tag data for the input
/**
 * @param string $name
 * @param mixed $value
 * @return Html
 */
function create_hidden($name, $value)
{
	return tag('input', attributes("name=\"$name\"", "value=\"$value\"",
				'type="hidden"'));
}

// creates a submit button for a form
// return tag data for the button
/**
 * @param mixed $value
 * @return Html
 */
function create_submit($value)
{
	return tag('input', attributes('name="submit"', "value=\"$value\"",
				'type="submit"'));
}

/**
 * creates a text entry for a form
 * returns tag data for the entry
 *
 * @param string $name
 * @param mixed $value
 * @return Html
 */
function create_text($name, $value = false)
{
	$attributes = attributes("name=\"$name\"", "id=\"$name\"", 'type="text"');
	if($value !== false) {
		$attributes->add("value=\"$value\"");
	}
	return tag('input', $attributes);
}

// creates a password entry for a form
// returns tag data for the entry
/**
 * @param string $name
 * @return Html
 */
function create_password($name)
{
	return tag('input', attributes("name=\"$name\"", "id=\"$name\"", 'type="password"'));
}

// creates a checkbox for a form
// returns tag data for the checkbox
/**
 * @param string $name
 * @param mixed $value
 * @param bool $checked
 * @param bool|string $label
 * @return array|Html
 */
function create_checkbox($name, $value, $checked = false, $label = false)
{
	$attributes = attributes("id=\"$name\"", "name=\"$name\"",
			'type="checkbox"', "value=\"$value\"");
	if(!empty($checked)) $attributes->add('checked="checked"');
	$input = tag('input', $attributes);
	if($label !== false)
		return array($input, tag('label', attributes("for=\"$name\""),
					$label));
	else
		return $input;
}

// $title - string or html element displayed by default
// $values - Array of URL => title
// returns an html structure for a dropdown box that will change the page
//		to the URL from $values when an element is selected
/**
 * @param mixed $title
 * @param mixed $values
 * @return Html
 */
function create_dropdown_list($title, $values)
{
	$list = tag('ul');
	foreach($values as $key => $value) {
		$list->add(tag('li', tag('a', attrs("href=\"$key\""), $value)));
	}
	return tag('span', attrs('class="phpc-dropdown-list"'),
			tag('span', attrs('class="phpc-dropdown-list-header"'),
				tag('span', attrs('class="phpc-dropdown-list-title"'),
				$title)),
			$list);
}

// creates the user menu
// returns tag data for the menu
/**
 * @return Html
 */
function userMenu()
{
	global $action, $phpc_user;

	$welcome = __('Welcome') . '&nbsp;' . $phpc_user->username;
	$span = tag('span');

	$html = tag('div', attributes('class="phpc-logged ui-widget-content"'),
			$welcome, $span);

	if($action != 'settings')
		menu_item_append($span, __('Settings'), 'settings');

	if(is_user()) {
		menu_item_append($span, __('Log out'), 'logout',
				array('lasturl' =>
					phpc_html_escape(rawurlencode($_SERVER['QUERY_STRING']))));
	} else {
		menu_item_append($span, __('Log in'), 'login',
				array('lasturl' =>
					phpc_html_escape(rawurlencode($_SERVER['QUERY_STRING']))));
	}
	return $html;
}

// creates the navbar for the top of the calendar
// returns tag data for the navbar
/**
 * @return Html
 */
function navbar()
{
    global $action, $year, $month, $day, $phpc_cal;

	$html = tag('div', attributes('class="phpc-bar ui-widget-header"'));

	$args = array('year' => $year, 'month' => $month, 'day' => $day);

	if($phpc_cal->can_write() && $action != 'add') {
		menu_item_append($html, __('Add Event'), 'event_form', $args);
	}

	if($action != 'search') {
		menu_item_append($html, __('Search'), 'search', $args);
	}

	if($action != 'display_month') {
		menu_item_append($html, __('View Month'), 'display_month',
			$args);
	}

	if($action == 'display_event') {
		menu_item_append($html, __('View date'), 'display_day', $args);
	}

	if($phpc_cal->can_admin() && $action != 'cadmin') {
		menu_item_append($html, __('Calendar Admin'), 'cadmin');
	}

	if(is_admin() && $action != 'admin') {
		menu_item_append($html, __('Admin'), 'admin');
	}

	return $html;
}

// creates an array from $start to $end, with an $interval
/**
 * @param int $start
 * @param int $end
 * @param int $interval
 * @param mixed $display
 * @return array
 */
function create_sequence($start, $end, $interval = 1, $display = false)
{
	$arr = array();
	for ($i = $start; $i <= $end; $i += $interval){
		if($display) {
			$arr[$i] = call_user_func($display, $i);
		} else {
			$arr[$i] = $i;
		}
	}
	return $arr;
}

/**
 * @return array
 */
function get_config_options()
{
	static $options = NULL;

	if($options === NULL) {
		$options = init_config_options();
	}
	return $options;
}

/**
 * @return array
 */
function init_config_options() {
	$languages = array("" => __("Default"));
	foreach(get_languages() as $language) {
		$languages[$language] = $language;
	}
	// name, text, type, value(s)
	return array(
			array('week_start', __('Week Start'), PHPC_DROPDOWN,
				array(
					0 => __('Sunday'),
					1 => __('Monday'),
					6 => __('Saturday')
				     )),
			array('hours_24', __('24 Hour Time'), PHPC_CHECK),
			array('title', __('Calendar Title'), PHPC_TEXT),
			array('subject_max', __('Maximum Subject Length'), PHPC_TEXT, 50),
			array('events_max', __('Events Display Daily Maximum'), PHPC_TEXT, 8),
			array('anon_permission', __('Public Permissions'), PHPC_DROPDOWN,
				array(
					__('Cannot read nor write events'),
					__('Can read but not write events'),
					__('Can create but not modify events'),
					__('Can create and modify events')
				     )
			     ),
			array('timezone', __('Default Timezone'), PHPC_MULTI_DROPDOWN, get_timezone_list()),
			array('language', __('Default Language'), PHPC_DROPDOWN,
				$languages),
			array('date_format', __('Date Format'), PHPC_DROPDOWN,
					get_date_format_list()),
			array('theme', __('Theme'), PHPC_DROPDOWN,
					get_theme_list()),
	);
}

/**
 * @return array
 */
function get_theme_list() {
	$themes = array('base',
			'black-tie',
			'blitzer',
			'cupertino',
			'dark-hive',
			'dot-luv',
			'eggplant',
			'excite-bike',
			'flick',
			'hot-sneaks',
			'humanity',
			'le-frog',
			'mint-choc',
			'overcast',
			'pepper-grinder',
			'redmond',
			'smoothness',
			'south-street',
			'start',
			'sunny',
			'swanky-purse',
			'trontastic',
			'ui-darkness',
			'ui-lightness',
			'vader');

	$theme_list = array(NULL => __('Default'));
	foreach($themes as $theme) {
		$theme_list[$theme] = $theme;
	}
	return $theme_list;
}

/**
 * @return array
 */
function get_timezone_list() {
	$timezones = array();
	$timezones[__("Default")] = "";
	foreach(timezone_identifiers_list() as $timezone) {
		$sp = explode("/", $timezone, 2);
		$continent = $sp[0];
		if(empty($sp[1])) {
			$timezones[$continent] = $timezone;
		} else {
			$area = $sp[1];
			if(empty($timezones[$continent]))
				$timezones[$continent] = array();
			$timezones[$continent][$timezone] = $area;
		}
	}
	return $timezones;
}

/**
 * @return array
 */
function get_date_format_list()
{
	return array(	__("Month Day Year"),
			__("Year Month Day"),
			__("Day Month Year"));
}

/**
 * @return Html
 */
function display_phpc() {
	global $phpc_messages, $phpc_redirect, $phpc_script, $phpc_prefix, $phpc_home_url, $phpc_cal, $phpcdb;

	$navbar = false;

	try {
		$content = do_action();
		$navbar = navbar();

		if(sizeof($phpc_messages) > 0) {
			$messages = tag('div', attrs('class="phpc-message"'));
			foreach($phpc_messages as $message) {
				$messages->add($message);
			}
			// If we're redirecting, the messages might not get
			//   seen, so don't clear them
			if(empty($phpc_redirect))
				$_SESSION[$phpc_prefix . 'messages'] = null;
		} else {
			$messages = '';
		}

		$list = array();
		foreach($phpcdb->get_calendars() as $calendar) {
            if($calendar->can_read()) {
                $list[$phpc_home_url . '?phpcid=' . $calendar->get_cid()] = $calendar->get_title();
            }
		}

		return tag('div', attributes('class="php-calendar ui-widget"'),
			userMenu(),
			tag('br', attrs('style="clear:both;"')),
			tag('h1', attrs('class="ui-widget-header"'),
			create_dropdown_list(tag('a', attrs("href='$phpc_home_url?phpcid={$phpc_cal->get_cid()}'",
			'class="phpc-dropdown-list-title"'),
			$phpc_cal->get_title()), $list)),
			$navbar, $messages, $content, footer());
	} catch(PermissionException $e) {
		$results = tag('');
		// TODO: make navbar show if there is an error in do_action()
		if($navbar !== false)
			$results->add($navbar);
		$msg = __('You do not have permission to do that: ')
					. $e->getMessage();
		$results->add(tag('div', attrs('class="phpc-message ui-state-error"'), $msg));
		if(is_user())
			return $results;
		else
			return message_redirect($msg,
					"$phpc_script?action=login");
	} catch(Exception $e) {
		$results = tag('');
		if($navbar !== false)
			$results->add($navbar);
		$results->add(tag('div', attrs('class="phpc-main"'),
					tag('h2', __('Error')),
					tag('p', $e->getMessage()),
					tag('h3', __('Backtrace')),
					tag('pre', phpc_html_escape($e->getTraceAsString()))));
		return $results;
	}

}

/**
 * @return mixed
 */
function do_action()
{
    global $action, $phpc_includes_path;

	$action_file = "$phpc_includes_path/$action.php";
	if(!preg_match('/^\w+$/', $action) || !file_exists($action_file))
		soft_error(__('Invalid action'));

	require_once($action_file);

    $action_output = call_user_func($action);

	return $action_output;
}

// takes a number of the month, returns the name
/**
 * @param int $month
 * @return string
 */
function month_name($month)
{
    global $month_names;

	$month = ($month - 1) % 12 + 1;
    return $month_names[$month];
}

//takes a day number of the week, returns a name (0 for the beginning)
/**
 * @param int $day
 * @return string
 */
function day_name($day)
{
	global $day_names;

	$day = $day % 7;

    return $day_names[$day];
}

/**
 * @param int $month
 * @return string
 */
function short_month_name($month)
{
    global $short_month_names;

	$month = ($month - 1) % 12 + 1;
    return $short_month_names[$month];
}

function verify_token() {
    global $vars, $phpc_token;

	if(!is_user())
        return;

	if(empty($vars["phpc_token"]) || $vars["phpc_token"] != $phpc_token) {
		//echo "<pre>real token: $phpc_token\n";
		//echo "form token: {$vars["phpc_token"]}</pre>";
		soft_error(__("Secret token mismatch. Possible request forgery attempt."));
	}
}

/**
 * @param string $path
 * @return array
 */
function get_header_tags($path)
{
	global $phpc_cal;

	if(defined('PHPC_DEBUG'))
		$jq_min = '';
	else
		$jq_min = '.min';

	$theme = $phpc_cal->theme;
	if(empty($theme))
		$theme = 'base';
	$jquery_version = "3.6.0";
	$jqueryui_version = "1.13.1";
	$showdown_version = "1.9.1";

	return array(
			tag('link', attrs('rel="stylesheet"', 'type="text/css"',
					"href=\"$path/phpc.css\"")),
			tag('link', attrs('rel="stylesheet"', 'type="text/css"',
					"href=\"//ajax.googleapis.com/ajax/libs/jqueryui/$jqueryui_version/themes/$theme/jquery-ui$jq_min.css\"")),
			tag('link', attrs('rel="stylesheet"', 'type="text/css"',
					"href=\"$path/jquery-ui-timepicker.css\"")),
			tag("script", attrs("src=\"//ajax.googleapis.com/ajax/libs/jquery/$jquery_version/jquery$jq_min.js\""), ''),
			tag("script", attrs("src=\"//ajax.googleapis.com/ajax/libs/jqueryui/$jqueryui_version/jquery-ui$jq_min.js\""), ''),
			tag('script', attrs("src=\"$path/phpc.js\""), ''),
			tag("script", attrs("src=\"$path/jquery.ui.timepicker.js\""), ''),
			tag("script", attrs("src=\"$path/jquery.hoverIntent.minified.js\""), ''),
			tag("script", attrs("src=\"$path/spectrum.js\""), ''),
			tag('link', attrs('rel="stylesheet"', 'type="text/css"',
					"href=\"$path/spectrum.css\"")),
			tag("script", attrs("src=\"https://cdnjs.cloudflare.com/ajax/libs/showdown/$showdown_version/showdown.min.js\""), ''),
		  );
}

/**
 * @param $path
 */
function embed_header($path)
{
    echo tag('', get_header_tags($path))->toString();
}

// $element: { name, text, type, value(s) }
/**
 * @param array $element
 * @param mixed $default
 * @return array|Html
 */
function create_config_input($element, $default = false)
{
	$name = $element[0];
	$text = $element[1];
	$type = $element[2];
	$value = false;
        if(isset($element[3]))
                $value = $element[3];

	switch($type) {
		case PHPC_CHECK:
			if($default == false)
                                $default = $value;
			$input = create_checkbox($name, '1', $default, $text);
			break;
		case PHPC_TEXT:
			if($default == false)
                                $default = $value;
			$input = create_text($name, $default);
			break;
		case PHPC_DROPDOWN:
			$input = create_select($name, $value, $default);
			break;
		case PHPC_MULTI_DROPDOWN:
			$input = create_multi_select($name, $value, $default);
			break;
		default:
			soft_error(__('Unsupported config type') . ": $type");
	}
	return $input;
}

/* Make a timestamp from the input fields $prefix-time and $prefix-date
   uses $phpc_cal->date_format to determine the format of the date
   if there's no $prefix-time, uses values passed as parameters
*/
/**
 * @param string $prefix
 * @param int $hour
 * @param int $minute
 * @param int $second
 * @return false|int
 */
function get_timestamp($prefix, $hour = 0, $minute = 0, $second = 0)
{
	global $vars, $phpc_cal;

	if(empty($vars["$prefix-date"]))
		soft_error(sprintf(__("Required field \"%s\" was not set."),
					"$prefix-date"));

	if(!empty($vars["$prefix-time"])) {
		if(!preg_match('/(\d+)[:\.](\d+)\s?(\w+)?/', $vars["$prefix-time"],
					$time_matches)) {
			soft_error(sprintf(__("Malformed \"%s\" time: \"%s\""),
						$prefix,
						$vars["$prefix-time"]));
		}
		$hour = $time_matches[1];
		$minute = $time_matches[2];
		if(isset($time_matches[3])) {
			$period = $time_matches[3];
			if($hour == 12)
				$hour = 0;
			if(strcasecmp("am", $period) == 0) {
				// AM
			} else if(strcasecmp("pm", $period) == 0) {
				$hour += 12;
			} else {
				soft_error(__("Unrecognized period: ")
						. $period);
			}
		}
	}

	if(!preg_match('/(\d+)[\.\/\-\ ](\d+)[\.\/\-\ ](\d+)/',
				$vars["$prefix-date"], $date_matches)) {
		soft_error(sprintf(__("Malformed \"%s\" date: \"%s\""),
					$prefix, $vars["$prefix-date"]));
	}

	switch($phpc_cal->date_format) {
		case 0: // Month Day Year
			$month = $date_matches[1];
			$day = $date_matches[2];
			$year = $date_matches[3];
			break;
		case 1: // Year Month Day
			$year = $date_matches[1];
			$month = $date_matches[2];
			$day = $date_matches[3];
			break;
		case 2: // Day Month Year
			$day = $date_matches[1];
			$month = $date_matches[2];
			$year = $date_matches[3];
			break;
		default:
			soft_error(__("Invalid date_format."));
	}

	return mktime($hour, $minute, $second, $month, $day, $year);
}

/**
 * @param string $name
 * @param mixed $value
 * @param int $expire
 * @return bool
 */
function phpc_set_cookie($name, $value, $expire = 0) {
	return setcookie($name, $value, $expire, "", "", false, true);
}

<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function calendar_delete()
{
	global $vars, $phpcdb, $phpc_script;

	$html = tag('div', attributes('class="phpc-container"'));

	if(empty($vars["cid"])) {
		$html->add(tag('p', __('No calendar selected.')));
		return $html;
	}

	$id = $vars["cid"];
	$calendar = $phpcdb->get_calendar($id);

	if(empty($calendar))
		soft_error(__("Invalid calendar ID."));

	if (empty($vars["confirm"])) {
		$html->add(tag('p', __('Confirm you want to delete calendar:'). $calendar->get_title()));
		$html->add(" [ ", create_action_link(__('Confirm'),
					"calendar_delete", array("cid" => $id,
						"confirm" => "1")), " ] ");
		$html->add(" [ ", create_action_link(__('Deny'),
					"display_month"), " ] ");
		return $html;
	}

	if(!$calendar->can_admin()) {
		$html->add(tag('p', __("You do not have permission to remove calendar") . ": $id"));
		return $html;
	}

	if($phpcdb->delete_calendar($id)) {
		$html->add(tag('p', __("Removed calendar") . ": $id"));
	} else {        
		$html->add(tag('p', __("Could not remove calendar")
					. ": $id"));
	}

        return message_redirect($html, "$phpc_script?action=admin");
}

<?php
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if (!defined('IN_PHPC')) {
    die("Hacking attempt");
}

/**
 * @return Html
 */
function calendar_form()
{
    global $vars;

    if (!is_admin()) {
        return tag('div', __('Permission denied'));
    }

    if (!empty($vars['submit_form']))
        process_form();

    return display_form();

}

function process_form()
{
    global $vars, $phpcdb;

    verify_token();

    $cid = $phpcdb->create_calendar();

    foreach (get_config_options() as $item) {
        $name = $item[0];
        $type = $item[2];

        if ($type == PHPC_CHECK) {
            if (isset($vars[$name]))
                $value = "1";
            else
                $value = "0";
        } else {
            if (isset($vars[$name])) {
                $value = $vars[$name];
            } else {
                soft_error(__("$name was not set."));
            }
        }

        $phpcdb->create_config($cid, $name, $value);
    }

    message(__('Calendar created.'));
}

/**
 * @return Html
 */
function display_form()
{
    global $phpc_script, $phpc_token;

    $tbody = tag('tbody');

    foreach (get_config_options() as $element) {
        $text = $element[1];
        $input = create_config_input($element);

        $tbody->add(tag('tr',
            tag('th', $text),
            tag('td', $input)));
    }

    return tag('form', attributes("action=\"$phpc_script\"",
        'method="post"'),
        tag('table', attributes("class=\"phpc-container\""),
            tag('caption', __('Create Calendar')),
            tag('tfoot',
                tag('tr',
                    tag('td', attributes('colspan="2"'),
                        create_hidden('phpc_token', $phpc_token),
                        create_hidden('action', 'calendar_form'),
                        create_hidden('submit_form', 'submit_form'),
                        create_submit(__('Submit'))))),
            $tbody));

}

<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function category_delete()
{
	global $vars, $phpcdb, $phpcid, $phpc_script;

	$html = tag('div', attributes('class="phpc-container"'));

	if(empty($vars["catid"])) {
		return message_redirect(__('No category selected.'),
				"$phpc_script?action=cadmin&phpcid=$phpcid");
	}

	if (is_array($vars["catid"])) {
		$ids = $vars["catid"];
	} else {
		$ids = array($vars["catid"]);
	}

	$categories = array();
	foreach ($ids as $id) {
		$categories[] = $phpcdb->get_category($id);
	}

	if (empty($vars["confirm"])) {
		$list = tag('ul');
		foreach ($categories as $category) {
            $list->add(tag('li', $category['name']));
		}
		$html->add(tag('p', __('Confirm you want to delete:')));
		$html->add($list);
		$html->add(" [ ", create_action_link(__('Confirm'),
					"category_delete", array("catid" => $ids,
						"confirm" => "1")), " ] ");
		$html->add(" [ ", create_action_link(__('Deny'),
					"display_month"), " ] ");
		return $html;
	}

	foreach($categories as $category) {
		if((empty($category['cid']) && !is_admin()) ||
					!$phpcdb->get_calendar($category['cid'])
					->can_admin()) {
			$html->add(tag('p', __("You do not have permission to delete category: ") . $category['catid']));
			continue;
		}

		if($phpcdb->delete_category($category['catid'])) {
			$html->add(tag('p', __("Removed category: ")
					. $category['catid']));
		} else {        
			$html->add(tag('p', __("Could not remove category: ")
						. $category['catid']));
		}
	}

        return message_redirect($html, "$phpc_script?action=cadmin&phpcid=$phpcid");
}
<?php
/*
 * Copyright 2010 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
       die("Hacking attempt");
}

require_once("$phpc_includes_path/form.php");

/**
 * @return Html
 */
function category_form() {
	global $phpc_script, $vars, $phpcdb, $phpcid;

        $form = new Form($phpc_script, __('Category Form'));
        $form->add_part(new FormFreeQuestion('name', __('Name'),
				false, 32, true));

	if(isset($vars['cid'])) {
		$form->add_hidden('cid', $vars['cid']);
		$cid = $vars['cid'];
	} else {
		$cid = $phpcid;
	}

	$form->add_hidden('action', 'category_submit');
	$form->add_hidden('phpcid', $phpcid);
	$form->add_part(new FormColorPicker('text-color',__('Text Color')));
	$form->add_part(new FormColorPicker('bg-color',__('Background Color')));
	$group_question = new FormDropDownQuestion('gid',
			__('Visible to groups'));
	$group_question->add_option('', __('None'));
	foreach($phpcdb->get_groups($cid) as $group) {
		$group_question->add_option($group['gid'], $group['name']);
	}
	$form->add_part($group_question);
	$form->add_part(new FormSubmitButton(__("Submit Category")));

	if(isset($vars['catid'])) {
		$form->add_hidden('catid', $vars['catid']);
		$category = $phpcdb->get_category($vars['catid']);
		$defaults = array(
				'name' => phpc_html_escape($category['name']),
				'text-color' => phpc_html_escape(str_replace('#', '', $category['text_color'])),
				'bg-color' => phpc_html_escape(str_replace('#', '', $category['bg_color'])),
				'gid' => phpc_html_escape($category['gid']),
				);
	} else {
		$defaults = array(
				'text-color' => '#000000',
				'bg-color' => '#FFFFFF',
				);
	}
        return $form->get_form($defaults);
}

<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function category_submit()
{
    global $vars, $phpcdb, $phpc_script;

	if(empty($vars["text-color"]) || empty($vars["bg-color"])) {
		$page = "$phpc_script?action=category_form";
		if(!empty($vars["cid"]))
			$page .= "&cid={$vars["cid"]}";
		if(!empty($vars["catid"]))
			$page .= "&catid={$vars["catid"]}";

		return message_redirect(__("Color not specified."), $page);
	}

	// The current widget produces hex values without the "#".
	//   We may in the future want to allow different input, so store the
	//   values with the "#"
	$text_color = $vars["text-color"];
	$bg_color = $vars["bg-color"];
	if(empty($vars['gid']) || strlen($vars['gid']) == 0)
		$gid = 0;
	else
		$gid = $vars['gid'];

	if(!check_color($text_color)) {
		soft_error(__("Invalid color: ") . "\"$text_color\"");
	}
	if(!check_color($bg_color)) {
		soft_error(__("Invalid color: ") . "\"$bg_color\"");
	}

	if(!isset($vars['catid'])) {
		$modify = false;

		if(!isset($vars['cid'])) {
			$cid = null;
			if(!is_admin())
				permission_error(__('You do not have permission to add categories to all calendars.'));
		} else { 
			$cid = $vars['cid'];
			$calendar = $phpcdb->get_calendar($cid);
			if(!$calendar->can_admin())
				permission_error(__('You do not have permission to add categories to this calendar.'));
		}
		$catid = $phpcdb->create_category($cid, $vars["name"],
				$text_color, $bg_color, $gid);
	} else {
		$modify = true;

		$catid = $vars['catid'];
		$category = $phpcdb->get_category($catid);

		if(!(empty($category['cid']) && is_admin() ||
					$phpcdb->get_calendar($category["cid"])
					->can_admin()))
			soft_error(__("You do not have permission to modify this category."));
			
		$phpcdb->modify_category($catid, $vars['name'],
				$text_color, $bg_color, $gid);
	}

	$page = "$phpc_script?action=cadmin&phpcid=".$vars['phpcid'];

	if($modify)
		return message_redirect(__("Modified category: ") . $catid,
				$page);

	if($catid > 0)
		return message_redirect(__("Created category: ") . $catid,
				$page);

	return tag('div', attributes('class="phpc-error"'),
			__('Error submitting category.'));
}

function check_color($color) {
	return preg_match('/^#[0-9a-fA-F]{6}$/', $color) == 1;
}
<?php
/*
 * Copyright 2014 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
   This file has the functions for the main displays of the calendar
*/

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

// View for a single day
/**
 * @return Html
 */
function display_day()
{
    global $phpcid, $phpc_cal, $phpc_script, $phpcdb, $day, $month, $year;

	$monthname = month_name($month);

    $results = $phpcdb->get_occurrences_by_date($phpcid, $year, $month, $day);

	$have_events = false;

	$html_table = tag('table', attributes('class="phpc-main"'),
			tag('caption', "$day $monthname $year"),
			tag('thead',
				tag('tr',
					tag('th', __('Title')),
					tag('th', __('Time')),
					tag('th', __('Description'))
				   )));
	if($phpc_cal->can_modify()) {
		$html_table->add(tag('tfoot',
					tag('tr',
						tag('td',
							attributes('colspan="4"'),
							create_hidden('action', 'event_delete'),
							create_hidden('day', $day),
							create_hidden('month', $month),
							create_hidden('year', $year),
							create_submit(__('Delete Selected'))))));
	}

	$html_body = tag('tbody');

	while($row = $results->fetch_assoc()) {
	
		$event = new PhpcOccurrence($row);

		if(!$event->can_read())
			continue;

		$have_events = true;

		$eid = $event->get_eid();
		$oid = $event->get_oid();

		$html_subject = tag('td');

		if($event->can_modify()) {
			$html_subject->add(create_checkbox('eid[]',
						$eid));
		}

		$html_subject->add(create_occurrence_link(tag('strong',
						$event->get_subject()),
					'display_event', $oid));

		if($event->can_modify()) {
			$html_subject->add(" (");
			$html_subject->add(create_event_link(
						__('Modify'), 'event_form',
						$eid));
			$html_subject->add(')');
		}

		$html_body->add(tag('tr',
					$html_subject,
					tag('td', $event->get_time_span_string()),
					tag('td', attributes('class="phpc-desc"'), $event->get_desc())));
	}

	$html_table->add($html_body);

	if($phpc_cal->can_modify()) {
		$output = tag('form',
				attributes("action=\"$phpc_script\""),
				$html_table);
	} else {
		$output = $html_table;
	}

	if(!$have_events)
		$output = tag('h2', __('No events on this day.'));

	return tag('', create_day_menu(), $output);
}

/**
 * @return Html
 */
function create_day_menu() {
	global $month, $day, $year;

	$html = tag('div', attrs('class="phpc-bar ui-widget-content"'));

	$lasttime = mktime(0, 0, 0, $month, $day - 1, $year);
	$lastday = date('j', $lasttime);
	$lastmonth = date('n', $lasttime);
	$lastyear = date('Y', $lasttime);
	$lastmonthname = month_name($lastmonth);

	$last_args = array('year' => $lastyear, 'month' => $lastmonth,
			'day' => $lastday);

	menu_item_prepend($html, "$lastmonthname $lastday", 'display_day',
			$last_args);

	$nexttime = mktime(0, 0, 0, $month, $day + 1, $year);
	$nextday = date('j', $nexttime);
	$nextmonth = date('n', $nexttime);
	$nextyear = date('Y', $nexttime);
	$nextmonthname = month_name($nextmonth);

	$next_args = array('year' => $nextyear, 'month' => $nextmonth,
			'day' => $nextday);

	menu_item_append($html, "$nextmonthname $nextday", 'display_day',
			$next_args);

	return $html;
}

<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
   This file has the functions for the main displays of the calendar
*/

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

// Full view for a single event
/**
 * @return Html|string
 */
function display_event()
{
	global $vars;

	if(!empty($vars['contentType']) && $vars['contentType'] == 'json')
		return display_event_json();
	
	if(isset($vars['oid']))
		return display_event_by_oid($vars['oid']);
	
	if(isset($vars['eid']))
		return display_event_by_eid($vars['eid']);

	// If we get here, we did something wrong
	soft_error(__("Invalid arguments."));
}

/**
 * @param int $oid
 * @return Html
 */
function display_event_by_oid($oid)
{
	global $phpcdb, $year, $month, $day;

	$event = $phpcdb->get_occurrence_by_oid($oid);

	$eid = $event->get_eid();

	if(!$event->can_read()) {
		return tag('p', __("You do not have permission to read this event."));
	}

	$event_header = tag('div', attributes('class="phpc-event-header"'),
			tag('div',attributes('class="phpc-event-creator"'), __('by').' ',
				tag('cite', $event->get_author())));

	$category = $event->get_category();
	if(!empty($category))
		$event_header->add(tag('div',attributes('class="phpc-event-cats"'), __('Category') . ': '
					. $category));

	$event_header->add(tag('div',attributes('class="phpc-event-time"'),
				__('When').": ".$event->get_datetime_string()));
	
	$event_header->add(tag('div', __('Created at: '), $event->get_ctime_string()));
	if(!empty($event->mtime))
		$event_header->add(tag('div', __('Last modified at: '),
				$event->get_mtime_string()));
				
	$menu_tag = tag('div', attrs('class="phpc-bar ui-widget-content"')); 
	// Add modify/delete links if this user has access to this event.
        if($event->can_modify()) {
		$menu_tag->add(array(create_event_link(__('Modify'),
						'event_form', $eid), "\n",
					create_event_link(__('Delete'),
						'event_delete', $eid), "\n",
					create_occurrence_link(__('Modify Occurrence'),
						'occur_form', $oid), "\n",
					create_occurrence_link(__('Remove Occurrence'),
						'occurrence_delete', $oid),
					"\n"));
	}


	$occurrences = $phpcdb->get_occurrences_by_eid($eid);
		//$occurrence_div = tag('div', );
	$i = 0;
	while($i < sizeof($occurrences)) {
		if($occurrences[$i]->get_oid() == $oid)
			break;
		$i++;
	}
	// if we have a previous event
	$prev = $i - 1;
	if($prev >= 0) {
		$prev_occur = $occurrences[$prev];
		$menu_tag->add(create_occurrence_link(
					__('Previous occurrence on') . " " .
					$prev_occur->get_date_string(),
					'display_event',
					$prev_occur->get_oid()), ' ');
	}
	// if we have a future event
	$next = $i + 1;
	if($next < sizeof($occurrences)) {
		$next_occur = $occurrences[$next];
		$menu_tag->add(create_occurrence_link(
					__('Next occurrence on') . " " .
					$next_occur->get_date_string(),
					'display_event',
					$next_occur->get_oid()), ' ');
	}

	$menu_tag->add(create_event_link(__('View All Occurrences'),
				'display_event', $eid));

	$event_header->add($menu_tag);

	$year = $event->get_start_year();
	$month = $event->get_start_month();
	$day = $event->get_start_day();

	$desc_tag = tag('div',
			tag('h3', __("Description")),
			tag('p', attributes('class="phpc-desc"'),
				$event->get_desc()));

	return tag('div', attributes('class="phpc-main phpc-event"'),
			tag('h2', $event->get_subject()), $event_header,
			$desc_tag);
}

/**
 * @param int $eid
 * @return Html
 */
function display_event_by_eid($eid)
{
	global $phpcdb, $year, $month, $day;

	$event = new PhpcEvent($phpcdb->get_event_by_eid($eid));

	if(!$event->can_read()) {
		return tag('p', __("You do not have permission to read this event."));
	}

	$event_header = tag('div', attributes('class="phpc-event-header"'),
			tag('div', __('by').' ',
				tag('cite', $event->get_author())));

	$event_header->add(tag('div', __('Created at: '), $event->get_ctime_string()));
	if(!empty($event->mtime))
		$event_header->add(tag('div', __('Last modified at: '),
				$event->get_mtime_string()));

	$category = $event->get_category();
	if(!empty($category))
		$event_header->add(tag('div', __('Category') . ': '
					. $category));

	// Add modify/delete links if this user has access to this event.
        if($event->can_modify()) {
		$event_header->add(tag('div', attrs('class="phpc-bar ui-widget-content"'),
					create_event_link(__('Modify'),
						'event_form', $eid), "\n",
					create_event_link(__('Add Occurrence'),
						'occur_form', $eid), "\n",
					create_event_link(__('Delete'),
						'event_delete', $eid)));
	}

	$desc_tag = tag('div',
			tag('h3', __("Description")),
			tag('p', attributes('class="phpc-desc"'), $event->get_desc()));

	$occurrences_tag = tag('ul');
	$occurrences = $phpcdb->get_occurrences_by_eid($eid);
	$set_date = false;
	foreach($occurrences as $occurrence) {
		if(!$set_date) {
			$year = $occurrence->get_start_year();
			$month = $occurrence->get_start_month();
			$day = $occurrence->get_start_day();
		}
		$oid = $occurrence->get_oid();
		$occ_tag = tag('li', attrs('class="ui-widget-content"'),
				create_occurrence_link(
					$occurrence->get_date_string()
					. ' ' . __('at') . ' '
					. $occurrence->get_time_span_string(),
					'display_event',
					$oid));
		if($event->can_modify()) {
			$occ_tag->add(" ",
					create_occurrence_link(__('Edit'), 'occur_form', $oid), " ",
					create_occurrence_link(__('Remove'), 'occurrence_delete', $oid));
		}
		$occurrences_tag->add($occ_tag);
	}

	return tag('div', attributes('class="phpc-main phpc-event"'),
			tag('h2', $event->get_subject()), $event_header,
			$desc_tag, tag ('div',attributes('class="phpc-occ"'),tag('h3', __('Occurrences')),
			$occurrences_tag));
}

// generates a JSON data structure for a particular event
/**
 * @return string
 */
function display_event_json()
{
	global $phpcdb, $vars;

	if(!isset($vars['oid']))
		return "";

	$event = $phpcdb->get_occurrence_by_oid($vars['oid']);

	if(!$event->can_read())
		return "";

	$author = __("by") . " " . $event->get_author();
	$time_str = $event->get_time_span_string();
	$date_str = $event->get_date_string();

	$category = $event->get_category();
	if(empty($category))
		$category_text = '';
	else
		$category_text = __('Category') . ': ' . $event->get_category();

		if ($time_str!="") $time="$date_str " . __("from") . " $time_str";
		else $time="$date_str ";
		
	return json_encode(array("title" => $event->get_subject(),
				"author" => $author,
				"time" => $time,
				"category" => $category_text,
				"body" => $event->get_desc()));
}

<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
   This file has the functions for the main displays of the calendar
*/

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

// Full display for a month
/**
 * @return Html
 */
function display_month()
{
	global $month, $year, $phpc_home_url, $phpcid;

	$heading_html = tag('tr');
	$heading_html->add(tag('th', __p('Week', 'W')));
	for($i = 0; $i < 7; $i++) {
		$d = ($i + day_of_week_start()) % 7;
		$heading_html->add(tag('th', day_name($d)));
	}

	$months = array();
	for($i = 1; $i <= 12; $i++) {
		$m = month_name($i);
		$months["$phpc_home_url?action=display_month&amp;phpcid=$phpcid&amp;month=$i&amp;year=$year"] = $m;
	}
	$years = array();
	for($i = $year - 5; $i <= $year + 5; $i++) {
		$years["$phpc_home_url?action=display_month&amp;phpcid=$phpcid&amp;month=$month&amp;year=$i"] = $i;
	}
	return tag('',
			tag("div", attributes('id="phpc-summary-view"'), 
				tag("div", attributes('id="phpc-summary-head"'),
					tag("div", attributes('id="phpc-summary-title"'), ''),
					tag("div", attributes('id="phpc-summary-author"'), ''),
					tag("div", attributes('id="phpc-summary-category"'), ''),
					tag("div", attributes('id="phpc-summary-time"'), '')),
				tag("div", attributes('id="phpc-summary-body"'), '')),
                        tag('table',
				attributes('class="phpc-main phpc-calendar"'),
                                tag('caption',
					create_dropdown_list(month_name($month), $months),
					create_dropdown_list($year, $years)),
                                tag('colgroup',
					tag('col', attributes('class="phpc-week"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"'))
				   ),
                                tag('thead', $heading_html),
                                create_month($month, $year)));
}

// creates a display for a particular month to be embedded in a full view
/**
 * @param int $month
 * @param int $year
 * @return Html
 */
function create_month($month, $year)
{
	global $phpcdb, $phpc_cal, $phpcid;

	$wim = weeks_in_month($month, $year);

	$first_day = 1 - day_of_week($month, 1, $year);
	$from_stamp = mktime(0, 0, 0, $month, $first_day, $year);

	$last_day = $wim * 7 - day_of_week($month, 1, $year);
	$to_stamp = mktime(23, 59, 59, $month, $last_day, $year);

	$max_events = $phpc_cal->events_max;

	$results = $phpcdb->get_occurrences_by_date_range($phpcid, $from_stamp,
			$to_stamp);
	$days_events = array();
	while($row = $results->fetch_assoc()) {
		$event = new PhpcOccurrence($row);

		if(!$event->can_read())
			continue;

		$end_stamp = mktime(0, 0, 0, $event->get_end_month(),
				$event->get_end_day(), $event->get_end_year());

		$start_stamp = mktime(0, 0, 0, $event->get_start_month(),
				$event->get_start_day(),
				$event->get_start_year());

		$diff = $from_stamp - $start_stamp;
		if($diff > 0)
			$add_days = floor($diff / 86400);
		else
			$add_days = 0;

		// put the event in every day until the end
		for(; ; $add_days++) {
			$stamp = mktime(0, 0, 0, $event->get_start_month(),
					$event->get_start_day() + $add_days,
					$event->get_start_year());

			if($stamp > $end_stamp || $stamp > $to_stamp)
				break;

			$key = date('Y-m-d', $stamp);
			if(!isset($days_events[$key]))
				$days_events[$key] = array();
			if(sizeof($days_events[$key]) == $max_events)
				$days_events[$key][] = false;
			if(sizeof($days_events[$key]) > $max_events)
				continue;
			$days_events[$key][] = $event;
		}
	}

	$month_table = tag('tbody');
	for($week_of_month = 1; $week_of_month <= $wim; $week_of_month++) {
		$month_table->add(create_week($week_of_month, $month, $year,
					$days_events));
	}

	return $month_table;
}

// creates a display for a particular week to be embedded in a month table
/**
 * @param int $week_of_month
 * @param int $month
 * @param int $year
 * @param PhpcOccurrence[][] $days_events
 * @return Html
 */
function create_week($week_of_month, $month, $year, $days_events)
{
	$start_day = 1 + ($week_of_month - 1) * 7
		- day_of_week($month, 1, $year);
	$week_of_year = week_of_year($month, $start_day, $year);

	$args = array('week' => $week_of_year, 'year' => year_of_week_of_year($month, $start_day, $year));
    $click = create_action_url('display_week', false, false, false, $args);
	$week_html = tag('tr', tag('th', attrs('class="ui-state-default"',
					"onclick=\"window.location.href='$click'\""),
				create_action_link($week_of_year,
					'display_week', $args)));
		
	for($day_of_week = 0; $day_of_week < 7; $day_of_week++) {
		$day = $start_day + $day_of_week;
		$week_html->add(create_day($month, $day, $year, $days_events));
	}

	return $week_html;
}

// displays the day of the week and the following days of the week
/**
 * @param int $month
 * @param int $day
 * @param int $year
 * @param PhpcOccurrence[][] $days_events
 * @return Html
 */
function create_day($month, $day, $year, $days_events)
{
    global $phpc_cal;

	$date_class = 'ui-state-default';
	if($day <= 0) {
		$month--;
		if($month < 1) {
			$month = 12;
			$year--;
		}
		$day += days_in_month($month, $year);
		$date_class .= ' phpc-shadow';
	} elseif($day > days_in_month($month, $year)) {
		$day -= days_in_month($month, $year);
		$month++;
		if($month > 12) {
			$month = 1;
			$year++;
		}
		$date_class .= ' phpc-shadow';
	} else {
		$currentday = date('j');
		$currentmonth = date('n');
		$currentyear = date('Y');

		// set whether the date is in the past or future/present
		if($currentyear == $year && $currentmonth == $month
				&& $currentday == $day) {
			$date_class .= ' ui-state-highlight';
		}
	}

    $click = create_action_url('display_day', $year, $month, $day);
	$date_tag = tag('div', attributes("class=\"phpc-date $date_class\"",
				"onclick=\"window.location.href='$click'\""),
			create_action_link_with_date($day,
				'display_day', $year, $month, $day));

	if($phpc_cal->can_write()) {
		$date_tag->add(create_action_link_with_date('+',
					'event_form', $year, $month,
					$day,
					array('class="phpc-add"')));
	}

	$html_day = tag('td', $date_tag);

	$stamp = mktime(0, 0, 0, $month, $day, $year);

	$can_read = $phpc_cal->can_read(); 
	$key = date('Y-m-d', $stamp);
	if(!$can_read || !array_key_exists($key, $days_events))
		return $html_day;

	$results = $days_events[$key];
	if(empty($results))
		return $html_day;

	$html_events = tag('ul', attrs('class="phpc-event-list"'));
	$html_day->add($html_events);

	// Count the number of events
	foreach($results as $event) {
		if($event == false) {
			$event_html = tag('li',
					create_action_link_with_date(__("View Additional Events"),
						'display_day', $year, $month,
						$day,
						array('class="phpc-date"')));
			$html_events->add($event_html);
			break;
		}

		// TODO - make sure we have permission to read the event

		$subject = $event->get_subject();
		if($event->get_start_timestamp() >= $stamp)
			$event_time = $event->get_time_string();
		else
			$event_time = '(' . __('continued') . ')';
		if(!empty($event_time))
			$title = "$event_time - $subject";
		else
			$title = $subject;

		$style = "";
		if(!empty($event->text_color))
			$style .= "color: {$event->get_text_color()} !important;";
		if(!empty($event->bg_color))
			$style .= "background: ".$event->get_bg_color()
				." !important;";

		$event_html = tag('li',
				create_occurrence_link($title, "display_event",
					$event->get_oid(),
					array("style=\"$style\"")));

		$html_events->add($event_html);
	}

	return $html_day;
}

<?php
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
   This file has the functions for the main displays of the calendar
*/

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

// Full display for a month
/**
 * @return Html
 */
function display_week()
{
	global $vars;

	$heading_html = tag('tr');
	$heading_html->add(tag('th', __p('Week', 'W')));
	for($i = 0; $i < 7; $i++) {
		$d = ($i + day_of_week_start()) % 7;
		$heading_html->add(tag('th', day_name($d)));
	}

	if(!isset($vars['week']) || !isset($vars['year']))
		soft_error(__('Invalid date.'));

	$week_of_year = intval($vars['week']);
	$year = intval($vars['year']);

    $week_of_first = week_of_year(1, 1, $year);
    if($week_of_first != 1) {
        $offset = 0;
    } else {
        $offset = -1;
    }
	$day_of_year = 1 + ($week_of_year + $offset) * 7 - day_of_week(1, 1, $year);
	$from_stamp = mktime(0, 0, 0, 1, $day_of_year, $year);
	$start_month = date("n", $from_stamp);
	$start_year = date("Y", $from_stamp);

	$last_day = $day_of_year + 6;
	$to_stamp = mktime(23, 59, 59, 1, $last_day, $year);
	$end_month = date("n", $to_stamp);
	$end_year = date("Y", $to_stamp);

	$heading = month_name($start_month) .  " $start_year";
	if($end_month != $start_month)
		$heading .= " - " . month_name($end_month) . " $end_year";

	return tag('',
			tag("div", attributes('id="phpc-summary-view"'), 
				tag("div", attributes('id="phpc-summary-head"'),
					tag("div", attributes('id="phpc-summary-title"'), ''),
					tag("div", attributes('id="phpc-summary-author"'), ''),
					tag("div", attributes('id="phpc-summary-category"'), ''),
					tag("div", attributes('id="phpc-summary-time"'), '')),
				tag("div", attributes('id="phpc-summary-body"'), '')),
                        tag('table',
				attributes('class="phpc-main phpc-calendar"'),
                                tag('caption', $heading),
                                tag('colgroup',
					tag('col', attributes('class="phpc-week"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"')),
					tag('col', attributes('class="phpc-day"'))
				   ),
				tag('thead', $heading_html),
                            create_week($week_of_year, $from_stamp, $to_stamp)));
}

// creates a display for a particular week to be embedded in a month table
/**
 * @param int $week_of_year
 * @param int $from_stamp
 * @param int $to_stamp
 * @return Html
 */
function create_week($week_of_year, $from_stamp, $to_stamp)
{
	global $phpcdb, $phpcid, $phpc_cal;

	$start_day = date("j", $from_stamp);
	$start_month = date("n", $from_stamp);
	$start_year = date("Y", $from_stamp);

	$max_events = $phpc_cal->events_max;

	$results = $phpcdb->get_occurrences_by_date_range($phpcid, $from_stamp, $to_stamp);
	$days_events = array();

	while($row = $results->fetch_assoc()) {
		$event = new PhpcOccurrence($row);

		if(!$event->can_read())
			continue;

		$end_stamp = mktime(0, 0, 0, $event->get_end_month(),
				$event->get_end_day(), $event->get_end_year());

		$start_stamp = mktime(0, 0, 0, $event->get_start_month(),
				$event->get_start_day(),
				$event->get_start_year());

		$diff = $from_stamp - $start_stamp;
		if($diff > 0)
			$add_days = floor($diff / 86400);
		else
			$add_days = 0;

		// put the event in every day until the end
		for(; ; $add_days++) {
			$stamp = mktime(0, 0, 0, $event->get_start_month(),
					$event->get_start_day() + $add_days,
					$event->get_start_year());

			if($stamp > $end_stamp || $stamp > $to_stamp)
				break;

			$key = date('Y-m-d', $stamp);
			if(!isset($days_events[$key]))
				$days_events[$key] = array();
			if(sizeof($days_events[$key]) == $max_events)
				$days_events[$key][] = false;
			if(sizeof($days_events[$key]) > $max_events)
				continue;
			$days_events[$key][] = $event;
		}
	}
	$week_table = tag('tbody');
	$week_html = tag('tr', tag('th', $week_of_year));
	$week_table->add($week_html);
		
	for($day_of_week = 0; $day_of_week < 7; $day_of_week++) {
		$day = $start_day + $day_of_week;
		$week_html->add(create_day($start_month, $day, $start_year,
					$days_events));
	}

	return $week_table;
}

// displays the day of the week and the following days of the week
/**
 * @param int $month
 * @param int $day
 * @param int $year
 * @param PhpcOccurrence[][] $days_events
 * @return Html
 */
function create_day($month, $day, $year, $days_events)
{
    global $phpc_cal;

	$date_class = 'ui-state-default';
	if($day <= 0) {
		$month--;
		if($month < 1) {
			$month = 12;
			$year--;
		}
		$day += days_in_month($month, $year);
		$date_class .= ' phpc-shadow';
	} elseif($day > days_in_month($month, $year)) {
		$day -= days_in_month($month, $year);
		$month++;
		if($month > 12) {
			$month = 1;
			$year++;
		}
	} else {
		$currentday = date('j');
		$currentmonth = date('n');
		$currentyear = date('Y');

		// set whether the date is in the past or future/present
		if($currentyear == $year && $currentmonth == $month
				&& $currentday == $day) {
			$date_class .= ' ui-state-highlight';
		}
	}

    $click = create_action_url('display_day', $year, $month, $day);
	$date_tag = tag('div', attributes("class=\"phpc-date $date_class\"",
				"onclick=\"window.location.href='$click'\""),
			create_action_link_with_date($day,
				'display_day', $year, $month, $day));

	if($phpc_cal->can_write()) {
		$date_tag->add(create_action_link_with_date('+',
					'event_form', $year, $month,
					$day,
					array('class="phpc-add"')));
	}

	$html_day = tag('td', $date_tag);

	$stamp = mktime(0, 0, 0, $month, $day, $year);

	$can_read = $phpc_cal->can_read(); 
	$key = date('Y-m-d', $stamp);
	if(!$can_read || !array_key_exists($key, $days_events))
		return $html_day;

	$results = $days_events[$key];
	if(empty($results))
		return $html_day;

	$html_events = tag('ul', attrs('class="phpc-event-list"'));
	$html_day->add($html_events);

	// Count the number of events
	foreach($results as $event) {
		if($event == false) {
			$event_html = tag('li',
					create_action_link_with_date(__("View Additional Events"),
						'display_day', $year, $month,
						$day,
						array('class="phpc-date"')));
			$html_events->add($event_html);
			break;
		}

		// TODO - make sure we have permission to read the event

		$subject = $event->get_subject();
		if($event->get_start_timestamp() >= $stamp)
			$event_time = $event->get_time_string();
		else
			$event_time = '(' . __('continued') . ')';
		if(!empty($event_time))
			$title = "$event_time - $subject";
		else
			$title = $subject;

		$style = "";
		if(!empty($event->text_color))
			$style .= "color: {$event->get_text_color()} !important;";
		if(!empty($event->bg_color))
			$style .= "background: ".$event->get_bg_color()
				." !important;";

		$event_html = tag('li',
				create_occurrence_link($title, "display_event",
					$event->get_oid(),
					array("style=\"$style\"")));

		$html_events->add($event_html);
	}

	return $html_day;
}

<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Invalid setup");
}

try {
	require_once("$phpc_includes_path/calendar.php");
	require_once("$phpc_includes_path/setup.php");

	$calendar_title = $phpc_cal->get_title();
	$content = display_phpc();
} catch(Exception $e) {
	$calendar_title = $e->getMessage();
	$content = tag('div', attributes('class="php-calendar"'),
			$e->getMessage());
}
$head = tag('div', attrs('class="phpc-head"'),
			get_header_tags("static"));
echo $head->toString();
echo $content->toString();
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * The following variables are intended to be modified to fit your
 * setup.
 */

if (!defined('IN_PHPC'))
	define('IN_PHPC', true);

/*
 * If you want different scripts with different default calendars, you can
 * copy this script and modify $default_calendar_id to contain the CID of
 * the calendar you want to be the default
 */
$default_calendar_id = 1;

/*
 * $phpc_root_path gives the location of the base calendar install.
 * if you move this file to a new location, modify $phpc_root_path to point
 * to the location where the support files for the callendar are located.
 */
$phpc_includes_path = dirname(__FILE__);
$phpc_root_path = dirname($phpc_includes_path);
$phpc_config_file = "$phpc_root_path/config.php";
$phpc_locale_path = "$phpc_root_path/locale";
require_once "$phpc_includes_path/util.php";
$phpc_script = phpc_html_escape($_SERVER['PHP_SELF']);

$phpc_server = $_SERVER['SERVER_NAME'];
if(!empty($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"] != 80)
	$phpc_server .= ":{$_SERVER["SERVER_PORT"]}";

// Protcol ex. http or https
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off'
		|| $_SERVER['SERVER_PORT'] == 443
		|| isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
		|| isset($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
    $phpc_proto = "https";
} else {
    $phpc_proto = "http";
}

$phpc_home_url="$phpc_proto://$phpc_server$phpc_script";
$phpc_url = $phpc_home_url
		. (empty($_SERVER['QUERY_STRING']) ? ''
		   : '?' . $_SERVER['QUERY_STRING']);

// Remove this line if you must
ini_set('arg_separator.output', '&amp;');

// Buffer the output until the script ends. Remove this if you must, but it may
//   break things in unexpected ways.
ob_start();


require_once("$phpc_includes_path/setup.php");

<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function event_delete()
{
	global $vars, $phpcdb, $phpc_script;

	$html = tag('div', attributes('class="phpc-container"'));

	if(empty($vars["eid"])) {
		$message = __('No event selected.');
		$html->add(tag('div', $message));
		return $html;
	}

	if (is_array($vars["eid"])) {
		$eids = $vars["eid"];
	} else {
		$eids = array($vars["eid"]);
	}

	if (empty($vars["confirm"])) {
		$list = tag('ul');
		foreach ($eids as $eid) {
			$event = new PhpcEvent($phpcdb->get_event_by_eid($eid));
			$list->add(tag('li', "$eid: ".$event->get_subject()));
		}
		$html->add(tag('div', __('Confirm you want to delete:')));
		$html->add($list);
		$html->add(" [ ", create_action_link(__('Confirm'),
					"event_delete", array("eid" => $eids,
						"confirm" => "1")), " ] ");
		$html->add(" [ ", create_action_link(__('Deny'),
					"display_month"), " ] ");
		return $html;
	}

	$removed_events = array();
	$unremoved_events = array();
	$permission_denied = array();

	foreach($eids as $eid) {
		$event = new PhpcEvent($phpcdb->get_event_by_eid($eid));
		if(!$event->can_modify()) {
			$permission_denied[] = $eid;
		} else {
			if($phpcdb->delete_event($eid)) {
				$removed_events[] = $eid;
			} else {
				$unremoved_events[] = $eid;
			}
		}
	}

	if(sizeof($removed_events) > 0) {
		if(sizeof($removed_events) == 1)
			$text = __("Removed event");
		else
			$text = __("Removed events");
		$text .= ': ' . implode(', ', $removed_events);
		$html->add(tag('div', $text));
	}

	if(sizeof($unremoved_events) > 0) {
		if(sizeof($unremoved_events) == 1)
			$text = __("Could not remove event");
		else
			$text = __("Could not remove events");
		$text .= ': ' . implode(', ', $unremoved_events);
		$html->add(tag('div', $text));
	}

	if(sizeof($permission_denied) > 0) {
		if(sizeof($permission_denied) == 1)
			$text = __("You do not have permission to remove event");
		else
			$text = __("You do not have permission to remove events");
		$text .= ': ' . implode(', ', $permission_denied);
		$html->add(tag('div', $text));
	}
	
        return message_redirect($html, $phpc_script);
}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
	die("Hacking attempt");
}

require_once("$phpc_includes_path/form.php");

/**
 * @return Html
 */
function event_form() {
	global $vars;

	if(empty($vars["submit_form"]))
		return display_form();

	// else
	return process_form();
}

/**
 * @return Html
 */
function display_form() {
    /** @var PhpcUser $phpc_user */
	global $phpc_script, $year, $month, $day, $vars, $phpcdb, $phpc_cal,
	       $phpc_user, $phpc_token;

	$hour24 = $phpc_cal->hours_24;
	$date_format = $phpc_cal->date_format;
	$form = new Form($phpc_script, __('Event Form'));
	$form->add_part(new FormFreeQuestion('subject', __('Subject'),
				false, $phpc_cal->subject_max, true));
	$form->add_part(new FormLongFreeQuestion('description',
				__('Description')));

	$when_group = new FormGroup(__('When'), 'phpc-when');
	if(isset($vars['eid'])) {
		$when_group->add_part(new FormCheckBoxQuestion('phpc-modify',
					false,
					__('Change the event date and time')));
	}
	$when_group->add_part(new FormDateTimeQuestion('start',
				__('From'), $hour24, $date_format));
	$when_group->add_part(new FormDateTimeQuestion('end', __('To'),
				$hour24, $date_format));

	$time_type = new FormDropDownQuestion('time-type', __('Time Type'));
	$time_type->add_option('normal', __('Normal'));
	$time_type->add_option('full', __('Full Day'));
	$time_type->add_option('tba', __('To Be Announced'));

	$when_group->add_part($time_type);

	$form->add_part($when_group);

	$repeat_type = new FormDropdownQuestion('repeats', __('Repeats'),
			array(), true, 'never');
	$repeat_type->add_option('never', __('Never'));
	$daily_group = new FormGroup();
	$repeat_type->add_option('daily', __('Daily'), NULL, $daily_group);
	$weekly_group = new FormGroup();
	$repeat_type->add_option('weekly', __('Weekly'), NULL, $weekly_group);
	$monthly_group = new FormGroup();
	$repeat_type->add_option('monthly', __('Monthly'), NULL, $monthly_group);
	$yearly_group = new FormGroup();
	$repeat_type->add_option('yearly', __('Yearly'), NULL, $yearly_group);

	$every_day = new FormDropdownQuestion('every-day', __('Every'),
			__('Repeat every how many days?'));
	$every_day->add_options(create_sequence(1, 30));
	$daily_group->add_part($every_day);
	$daily_group->add_part(new FormDateQuestion('daily-until', __('Until'),
				$date_format));

	$every_week = new FormDropdownQuestion('every-week', __('Every'),
			__('Repeat every how many weeks?'));
	$every_week->add_options(create_sequence(1, 30));
	$weekly_group->add_part($every_week);
	$weekly_group->add_part(new FormDateQuestion('weekly-until',
				__('Until'), $date_format));

	$every_month = new FormDropdownQuestion('every-month', __('Every'),
			__('Repeat every how many months?'));
	$every_month->add_options(create_sequence(1, 30));
	$monthly_group->add_part($every_month);
	$monthly_group->add_part(new FormDateQuestion('monthly-until',
				__('Until'), $date_format));

	$every_year = new FormDropdownQuestion('every-year', __('Every'),
			__('Repeat every how many years?'));
	$every_year->add_options(create_sequence(1, 30));
	$yearly_group->add_part($every_year);
	$yearly_group->add_part(new FormDateQuestion('yearly-until',
				__('Until'), $date_format));

	$when_group->add_part($repeat_type);

	if($phpc_cal->can_create_readonly())
		$form->add_part(new FormCheckBoxQuestion('readonly', false,
					__('Read-only')));

	$categories = new FormDropdownQuestion('catid', __('Category'));
	$categories->add_option('', __('None'));
	$have_categories = false;
	foreach($phpc_cal->get_visible_categories($phpc_user->get_uid()) as $category) {
		$categories->add_option($category['catid'], $category['name']);
		$have_categories = true;
	}
	if($have_categories)
		$form->add_part($categories);

	if(isset($vars['phpcid']))
		$form->add_hidden('phpcid', $vars['phpcid']);

	$form->add_hidden('phpc_token', $phpc_token);
	$form->add_hidden('action', 'event_form');
	$form->add_hidden('submit_form', 'submit_form');

	$form->add_part(new FormSubmitButton(__("Submit Event")));

	if(isset($vars['eid'])) {
		$form->add_hidden('eid', $vars['eid']);
		$occs = $phpcdb->get_occurrences_by_eid($vars['eid']);
		$event = $occs[0];

		$defaults = array(
				'subject' => $event->get_raw_subject(),
				'description' => $event->get_raw_desc(),
				'start-date' => $event->get_short_start_date(),
				'end-date' => $event->get_short_end_date(),
				'start-time' => $event->get_start_time(),
				'end-time' => $event->get_end_time(),
				'readonly' => $event->is_readonly(),
				);

		if(!empty($event->catid))
			$defaults['catid'] = $event->catid;

		switch($event->get_time_type()) {
			case 0:
				$defaults['time-type'] = 'normal';
				break;
			case 1:
				$defaults['time-type'] = 'full';
				break;
			case 2:
				$defaults['time-type'] = 'tba';
				break;
		}

		add_repeat_defaults($occs, $defaults);

	} else {
		$hour24 = $phpc_cal->hours_24;
		$datefmt = $phpc_cal->date_format;
		$date_string = format_short_date_string($year, $month, $day,
				$datefmt);
		$defaults = array(
				'start-date' => $date_string,
				'end-date' => $date_string,
				'start-time' => format_time_string(17, 0, $hour24),
				'end-time' => format_time_string(18, 0, $hour24),
				'daily-until-date' => $date_string,
				'weekly-until-date' => $date_string,
				'monthly-until-date' => $date_string,
				'yearly-until-date' => $date_string,
				);
	}
	return $form->get_form($defaults);
}

/**
 * @param PhpcOccurrence[] $occs
 * @param $defaults
 */
function add_repeat_defaults($occs, &$defaults) {
	// TODO: Handle unevenly spaced occurrences

	$defaults['repeats'] = 'never';

	if(sizeof($occs) < 2)
		return;

	$event = $occs[0];
	$day = $event->get_start_day();
	$month = $event->get_start_month();
	$year = $event->get_start_year();

    $cur_year = $year;
    $cur_month = $month;
    $cur_day = $day;

	// Test if they repeat every N years
	$nyears = $occs[1]->get_start_year() - $event->get_start_year();
	$repeats_yearly = true;
	$nmonths = ($occs[1]->get_start_year() - $year) * 12
		+ $occs[1]->get_start_month() - $month;
	$repeats_monthly = true;
	$ndays = days_between($event->get_start_ts(), $occs[1]->get_start_ts());
	$repeats_daily = true;

	for($i = 1; $i < sizeof($occs); $i++) {
		$cur_occ = $occs[$i];
		$cur_year = $cur_occ->get_start_year();
		$cur_month = $cur_occ->get_start_month();
		$cur_day = $cur_occ->get_start_day();

		// Check year
		$cur_nyears = $cur_year - $occs[$i - 1]->get_start_year();
		if($cur_day != $day || $cur_month != $month
				|| $cur_nyears != $nyears) {
			$repeats_yearly = false;
		}

		// Check month
		$cur_nmonths = ($cur_year - $occs[$i - 1]->get_start_year())
			* 12 + $cur_month - $occs[$i - 1]->get_start_month();
		if($cur_day != $day || $cur_nmonths != $nmonths) {
			$repeats_monthly = false;
		}

		// Check day
		$cur_ndays = days_between($occs[$i - 1]->get_start_ts(),
				$occs[$i]->get_start_ts());
		if($cur_ndays != $ndays) {
			$repeats_daily = false;
		}
	}

	$defaults['yearly-until-date'] = "$cur_month/$cur_day/$cur_year";
	$defaults['monthly-until-date'] = "$cur_month/$cur_day/$cur_year";
	$defaults['weekly-until-date'] = "$cur_month/$cur_day/$cur_year";
	$defaults['daily-until-date'] = "$cur_month/$cur_day/$cur_year";

	if($repeats_daily) {
		// repeats weekly
		if($ndays % 7 == 0) {
			$defaults['repeats'] = 'weekly';
			$defaults['every-week'] = $ndays / 7;
		} else {
			$defaults['every-week'] = 1;

			// repeats daily
			$defaults['repeats'] = 'daily';
			$defaults['every-day'] = $ndays;
		}

	} else {
		$defaults['every-day'] = 1;
		$defaults['every-week'] = 1;
	}

	if($repeats_monthly) {
		$defaults['repeats'] = 'monthly';
		$defaults['every-month'] = $nmonths;
	} else {
		$defaults['every-month'] = 1;
	}

	if($repeats_yearly) {
		$defaults['repeats'] = 'yearly';
		$defaults['every-year'] = $nyears;
	} else {
		$defaults['every-year'] = 1;
	}
}

/**
 * @return Html
 */
function process_form()
{
    /** @var PhpcUser $phpc_user */
	global $vars, $phpcdb, $phpc_cal, $phpcid, $phpc_script, $phpc_user;

	// When modifying events, this is the value of the checkbox that
	//   determines if the date should change
	$modify_occur = !isset($vars['eid']) || !empty($vars['phpc-modify']);

	if($modify_occur) {
		$start_ts = get_timestamp("start");
		$end_ts = get_timestamp("end");

		switch($vars["time-type"]) {
			case 'normal':
				$time_type = 0;
				break;

			case 'full':
				$time_type = 1;
				break;

			case 'tba':
				$time_type = 2;
				break;

			default:
				soft_error(__("Unrecognized Time Type."));
		}

		$duration = $end_ts - $start_ts;
		if($duration < 0) {
			message(__("An event cannot have an end earlier than its start."));
			return display_form();
		}
	}

	verify_token();

	if(!$phpc_cal->can_write())
		permission_error(__('You do not have permission to write to this calendar.'));

	if($phpc_cal->can_create_readonly() && !empty($vars['readonly']))
		$readonly = true;
	else
		$readonly = false;

	$catid = empty($vars['catid']) ? false : $vars['catid'];

	if(!isset($vars['eid'])) {
		$modify = false;
		$eid = $phpcdb->create_event($phpcid, $phpc_user->get_uid(),
				$vars["subject"], $vars["description"],
				$readonly, $catid);
	} else {
		$modify = true;
		$eid = $vars['eid'];
		$phpcdb->modify_event($eid, $vars['subject'],
				$vars['description'], $readonly, $catid);
		if($modify_occur)
			$phpcdb->delete_occurrences($eid);
	}

	if($modify_occur) {
        $phpcdb->create_occurrence($eid, $time_type, $start_ts, $end_ts);

		$occurrences = 1;
		switch($vars["repeats"]) {
			case "never":
				break;

			case 'daily':
			if(!isset($vars["every-day"]))
				soft_error(__("Required field \"every-day\" is not set."));
			$ndays = $vars["every-day"];
			if($ndays < 1)
				soft_error(__("every-day must be greater than 1"));

			$daily_until = get_timestamp("daily-until");
			while($occurrences <= 730) {
				$start_ts = add_days($start_ts, $ndays);
				$end_ts = add_days($end_ts, $ndays);
				if(days_between($start_ts, $daily_until) < 0)
					break;
				$phpcdb->create_occurrence($eid, $time_type,
						$start_ts, $end_ts);
				$occurrences++;
			}
			break;

			case 'weekly':
			if(!isset($vars["every-week"]))
				soft_error(__("Required field \"every-week\" is not set."));
			if($vars["every-week"] < 1)
				soft_error(__("every-week must be greater than 1"));
			$ndays = $vars["every-week"] * 7;

			$weekly_until = get_timestamp("weekly-until");
			while($occurrences <= 730) {
				$start_ts = add_days($start_ts, $ndays);
				$end_ts = add_days($end_ts, $ndays);
				if(days_between($start_ts, $weekly_until) < 0)
					break;
				$phpcdb->create_occurrence($eid, $time_type,
						$start_ts, $end_ts);
				$occurrences++;
			}
			break;

			case 'monthly':
			if(!isset($vars["every-month"]))
				soft_error(__("Required field \"every-month\" is not set."));
			if($vars["every-month"] < 1)
				soft_error(__("every-month must be greater than 1"));
			$nmonths = $vars["every-month"];

			$monthly_until = get_timestamp("monthly-until");
			while($occurrences <= 730) {
				$start_ts = add_months($start_ts, $nmonths);
				$end_ts = add_months($end_ts, $nmonths);
				if(days_between($start_ts, $monthly_until) < 0)
					break;
				$phpcdb->create_occurrence($eid, $time_type,
						$start_ts, $end_ts);
				$occurrences++;
			}
			break;

			case 'yearly':
			if(!isset($vars["every-year"]))
				soft_error(__("Required field \"every-year\" is not set."));
			if($vars["every-year"] < 1)
				soft_error(__("every-month must be greater than 1"));
			$nyears = $vars["every-year"];

			$yearly_until = get_timestamp("yearly-until");
			while($occurrences <= 730) {
				$start_ts = add_years($start_ts, $nyears);
				$end_ts = add_years($end_ts, $nyears);
				if(days_between($start_ts, $yearly_until) < 0)
					break;
				$phpcdb->create_occurrence($eid, $time_type,
						$start_ts, $end_ts);
				$occurrences++;
			}
			break;

			default:
			soft_error(__("Invalid event type."));
		}
	}

	if($eid != 0) {
		if($modify)
			$message = __("Modified event: ");
		else
			$message = __("Created event: ");

		return message_redirect(tag('', $message,
					create_event_link($eid, 'display_event',
						$eid)),
				"$phpc_script?action=display_event&phpcid=$phpcid&eid=$eid");
	} else {
		return message_redirect(__('Error submitting event.'),
				"$phpc_script?action=display_month&phpcid=$phpcid");
	}
}
<?php
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* this file is a generic form class
 * after an object is added to any part, you can modify that object without
 * affecting the form
 * Requires gettext and jqueryui
 */

/*
if(!defined('IN_PHPC')) {
	   die("Hacking attempt");
}
*/

require_once('html.php');

/* This class is the base of either a question or a group
 */

abstract class FormPart
{
    var $class = "form-part";

    /**
     * @param FormPart $parent
     * @param array $defaults
     * @return Html
     */
    abstract function get_html($parent, $defaults = array());

    /**
     * @param FormPart $parent
     * @param array $defaults
     * @return Html
     */
    abstract protected function get_specific_html($parent, $defaults);
}

/* this class is to group multiple questions together
 */

class FormGroup extends FormPart
{
    /** @var FormPart[] */
    var $list = array();
    var $title = false;

    function __construct($title = false, $class = false)
    {
        $this->title = $title;
        $this->class .= " form-group";
        if ($class !== false)
            $this->class = " $class";
    }

    /* add a category or question */
    function add_part(FormPart $item)
    {
        $this->list[] = $item;
    }

    function get_html($parent, $defaults = array())
    {
        // If a FormGroup is embedded in another FormGroup we want to
        //   start a new table. If it isn't, we assume that our parent
        //   (radio or dropdown) has already created the table for us.
        if (!is_a($parent, 'FormGroup'))
            return $this->get_specific_html($parent, $defaults);

        $tag = tag('tr', attrs("class=\"{$this->class}\""));
        $cell = tag('td');

        if ($this->title !== false)
            $tag->add(tag('th', $this->title));
        else
            $cell->add(attrs("colspan=\"2\""));

        $cell->add(tag('table', $this->get_specific_html($parent,
            $defaults)));
        $tag->add($cell);

        return $tag;
    }

    protected function get_specific_html($parent, $defaults)
    {
        $results = array();
        foreach ($this->list as $child) {
            $results[] = $child->get_html($this, $defaults);
        }
        return $results;
    }
}

/* this is the base class for all questions
 */

abstract class FormQuestion extends FormPart
{
    /** @var string|bool */
    var $qid;
    /** @var string|bool */
    var $subject;
    /** @var string|bool */
    var $description;

    /**
     * FormQuestion constructor.
     * @param string $qid
     * @param string $subject
     * @param string|bool $description
     */
    function __construct($qid, $subject, $description)
    {
        $this->class .= " form-question";
        $this->qid = $qid;
        $this->subject = $subject;
        $this->description = $description;
    }

    function get_html($parent, $defaults = array())
    {
        $tag = tag('tr', attrs("class=\"{$this->class}\""));
        $cell = tag('td');

        if ($this->subject !== false)
            $tag->add(tag('th', tag('label', attributes("for=\"{$this->qid}\""), $this->subject)));
        else
            $cell->add(attrs("colspan=\"2\""));

        if ($this->description !== false)
            $cell->add(tag('label', attrs("for=\"{$this->qid}\"", 'class="form-question-description"'),
                $this->description));

        $cell->add($this->get_specific_html($parent, $defaults));
        $tag->add($cell);

        return $tag;
    }
}

/* this class is the base for all simple types of questions
 */

abstract class FormAtomicQuestion extends FormQuestion
{
    /**
     * FormAtomicQuestion constructor.
     * @param string $qid
     * @param string $subject
     * @param string $description
     */
    function __construct($qid, $subject, $description)
    {
        parent::__construct($qid, $subject, $description);
        $this->class .= " form-atomic-question";
    }
}

/* This class is for free response questions with responses that are a few
 * sentences long at most
 */

class FormFreeQuestion extends FormAtomicQuestion
{
    var $maxlen;
    var $type;

    function __construct($qid, $subject, $description = false, $maxlen = false)
    {
        parent::__construct($qid, $subject, $description);
        $this->maxlen = $maxlen;
        $this->class .= " form-free-question";
        $this->type = "text";
    }

    protected function get_specific_html($parent, $defaults)
    {
        $attrs = attrs("name=\"{$this->qid}\"", "id=\"{$this->qid}\"",
            "type=\"$this->type\"");
        if (!empty($defaults[$this->qid])) {
            $attrs->add("value=\"{$defaults[$this->qid]}\"");
        }
        if ($this->maxlen !== false) {
            $attrs->add("maxlength=\"{$this->maxlen}\"");
            $size = min(50, $this->maxlen);
            $attrs->add("size=\"$size\"");
        }

        return tag('input', $attrs);
    }

}

/* this class is for longer free reponse questions
 */

class FormLongFreeQuestion extends FormAtomicQuestion
{
    var $rows;
    var $cols;

    function __construct($qid, $subject, $description = false, $rows = 8, $cols = 80)
    {
        parent::__construct($qid, $subject, $description);
        $this->rows = $rows;
        $this->cols = $cols;
        $this->class .= " form-long-free-question";
    }

    protected function get_specific_html($parent, $defaults)
    {
        if (isset($defaults[$this->qid]))
            $text = $defaults[$this->qid];
        else
            $text = '';

        $tag = tag('textarea', attrs("rows=\"{$this->rows}\"",
            "name=\"{$this->qid}\"",
	    "id=\"{$this->qid}\"",
            "cols=\"{$this->cols}\""), $text);
        return tag('div', attrs("class=\"form-textarea\""), $tag);
    }
}

function form_date_input($qid, $defaults, $dateFormat)
{
    $date_attrs = attrs('type="text"', 'class="form-date"',
        "name=\"$qid-date\"", "id=\"$qid-date\"");
    if (isset($defaults["$qid-date"]))
        $date_attrs->add("value=\"{$defaults["$qid-date"]}\"");
    return array(tag('input', $date_attrs),
        tag('script', attrs('type="text/javascript"'),
            "\$('#$qid-date').datepicker({dateFormat: \"$dateFormat\", firstDay: " . day_of_week_start() . " });"));
    /**** */
}

/* this class is for date input
 */

class FormDateQuestion extends FormAtomicQuestion
{
    var $date_format;

    function __construct($qid, $subject, $date_format, $description = false)
    {
        parent::__construct($qid, $subject, $description);
        $this->class .= " form-date-question";
        $this->date_format = $date_format;
    }

    protected function get_specific_html($parent, $defaults)
    {
        switch ($this->date_format) {
            case 0: // Month Day Year
                $dateFormat = "mm/dd/yy";
                $date_string = "MM/DD/YYYY";
                break;
            case 1: // Year Month Day
                $dateFormat = "yy-mm-dd";
                $date_string = "YYYY-MM-DD";
                break;
            case 2: // Day Month Year
                $dateFormat = "dd-mm-yy";
                $date_string = "DD-MM-YYYY";
                break;
            default:
                soft_error("Unrecognized date format.");
        }

        return tag('div', attrs("class=\"{$this->class}\""),
            tag('label', attrs("for=\"{$this->qid}-date\""), __("Date") . " ($date_string): "),
            form_date_input($this->qid, $defaults,
                $dateFormat));
    }
}

function form_time_input($qid, $defaults, $hour24)
{
    $showPeriod = $hour24 ? "false" : "true";
    $time_attrs = attrs('type="text"', 'class="form-time"',
        "name=\"$qid-time\"", "id=\"$qid-time\"");
    if (isset($defaults["$qid-time"]))
        $time_attrs->add("value=\"{$defaults["$qid-time"]}\"");

    return array(tag('input', $time_attrs),
        tag('script', attrs('type="text/javascript"'),
            "\$('#$qid-time').timepicker({showPeriod: $showPeriod, showLeadingZero: false });"));
}

/* this class is for time input
 */

class FormTimeQuestion extends FormAtomicQuestion
{
    var $hour24;

    function __construct($qid, $subject, $hour24, $description = false)
    {
        parent::__construct($qid, $subject, $description);
        $this->class .= " form-time-question";
        $this->hour24 = $hour24;
    }

    protected function get_specific_html($parent, $defaults)
    {
        return tag('div', attrs("class=\"{$this->class}\""),
            form_time_input($this->qid, $defaults, $this->hour24));
    }
}

/* this class is for date input
 */

class FormDateTimeQuestion extends FormAtomicQuestion
{
    var $hour24;
    var $date_format;

    function __construct($qid, $subject, $hour24, $date_format, $description = false)
    {
        parent::__construct($qid, $subject, $description);
        $this->class .= " form-date-time-question";
        $this->hour24 = $hour24;
        $this->date_format = $date_format;
    }

    protected function get_specific_html($parent, $defaults)
    {
        switch ($this->date_format) {
            case 0: // Month Day Year
                $dateFormat = "mm/dd/yy";
                $date_string = "MM/DD/YYYY";
                break;
            case 1: // Year Month Day
                $dateFormat = "yy-mm-dd";
                $date_string = "YYYY-MM-DD";
                break;
            case 2: // Day Month Year
                $dateFormat = "dd-mm-yy";
                $date_string = "DD-MM-YYYY";
                break;
            default:
                soft_error("Unrecognized date format.");
        }

        return array(tag('label', attrs("for=\"{$this->qid}-date\""), __("Date") . " ($date_string): "),
            form_date_input($this->qid, $defaults,
                $dateFormat),
            " ", tag('label', attrs("for=\"{$this->qid}-time\""), __('Time') . ": "),
            form_time_input($this->qid, $defaults,
                $this->hour24));
    }
}

/* creates a submit button
 */

class FormSubmitButton extends FormQuestion
{
    var $title;

    function __construct($title = false)
    {
        parent::__construct(false, false, false);
        $this->title = $title;
        $this->class .= " form-submit";
    }

    protected function get_specific_html($parent, $defaults)
    {
        $attrs = attrs('type="submit"');
        if ($this->title !== false) {
            $attrs->add("value=\"{$this->title}\"");
        }
        return tag('div', attrs("class=\"{$this->class}\""),
            tag('input', $attrs));
    }
}

/* this class is for questions where depending on the answer you need
 * to answer more questions
 */

abstract class FormCompoundQuestion extends FormQuestion
{
    /** @var FormPart[] */
    var $conditionals = array();
    var $options = array();
    var $descriptions = array();

    function __construct($qid, $subject, $description)
    {
        parent::__construct($qid, $subject, $description);
    }

    function add_option($key, $title, $description = NULL,
                        $conditional = NULL)
    {
        $this->options[$key] = $title;
        if ($description !== NULL)
            $this->descriptions[$key] = $description;
        if ($conditional !== NULL)
            $this->conditionals[$key] = $conditional;
    }

    function add_options($options)
    {
        foreach ($options as $key => $title) {
            $this->add_option($key, $title);
        }
    }
}

/* this class is for questions with a true/false answer
 */

class FormCheckBoxQuestion extends FormAtomicQuestion
{
    var $checkbox_description;

    function __construct($qid, $subject = false, $description = false)
    {
        parent::__construct($qid, $subject, false);
        $this->class .= " form-checkbox-question";
	$this->checkbox_description = $description;
    }

    protected function get_specific_html($parent, $defaults)
    {
        $attrs = attrs('type="checkbox"',
            "name=\"{$this->qid}\"",
            "id=\"{$this->qid}\"",
            'value="1"',
            'class="form-checkbox"');

        if (!empty($defaults[$this->qid]))
            $attrs->add("checked=\"checked\"");

        $tag = tag('div', tag('input', $attrs));
        if (!empty($this->checkbox_description))
            $tag->add(tag('label', attrs("for=\"{$this->qid}\"",
                'class="form-question-description"'),
                $this->checkbox_description));

        return $tag;
    }
}

/* this class is for questions where you need to choose between
 * multiple things
 */

class FormDropdownQuestion extends FormCompoundQuestion
{

    function __construct($qid, $subject = false, $description = false)
    {
        parent::__construct($qid, $subject, $description);
        $this->class .= " form-dropdown-question";
    }

    protected function get_specific_html($parent, $defaults)
    {
        $select = tag('select', attrs("id=\"{$this->qid}\"",
            "name=\"{$this->qid}\"",
            'class="form-select"'));

        $children = array();
        foreach ($this->options as $value => $name) {
            $attrs = attrs("value=\"$value\"");
            if (!empty($defaults[$this->qid])
                && $defaults[$this->qid] == $value
            )
                $attrs->add('selected');
            $select->add(tag('option', $attrs, $name));

            if (!empty($this->conditionals[$value])) {
                $children[] = tag('table', attrs("id=\"{$this->qid}-{$value}\""),
                    $this->conditionals[$value]->get_html($this, $defaults));
            }
        }
        if (empty($children))
            return $select;
        return array($select, $children);
    }
}

/* this class is for questions where you need to choose between
 * multiple things
 */

class FormMultipleSelectQuestion extends FormCompoundQuestion
{

    function __construct($qid, $subject = false, $description = false)
    {
        parent::__construct($qid, $subject, $description);
        $this->class .= " form-multi-select-question";
    }

    protected function get_specific_html($parent, $defaults)
    {
        $select = tag('select', attrs("id=\"{$this->qid}\"",
            "name=\"{$this->qid}\"",
            'multiple="multiple"',
            'class="form-select"'));

        $children = array();
        foreach ($this->options as $value => $name) {
            $attrs = attrs("value=\"$value\"");
            if (!empty($defaults[$this->qid])
                && $defaults[$this->qid] == $value
            )
                $attrs->add('selected');
            $select->add(tag('option', $attrs, $name));

            if (!empty($this->conditionals[$value])) {
                $children[] = tag('table', attrs("id=\"{$this->qid}-{$value}\""),
                    $this->conditionals[$value]->get_html($this, $defaults));
            }
        }
        if (empty($children))
            return $select;
        return array($select, $children);
    }
}

/* this class is for colorpickerer
 */

class FormColorPicker extends FormAtomicQuestion
{
    function __construct($qid, $subject, $selectedcolor = false, $description = false)
    {
        parent::__construct($qid, $subject, $description);
        $this->class .= " form-color-picker";
    }

    protected function get_specific_html($parent, $defaults)
    {

        if (isset($defaults[$this->qid]))
            $value = $defaults[$this->qid];
        else
            $value = '';

        return tag('input', attrs('type="text"',
            'class="form-color-input"',
            "name=\"{$this->qid}\"",
            "value=\"$value\"",
            "id=\"{$this->qid}\""));
    }
}


/* this is the main form class
 */

class Form extends FormGroup
{
    var $vars;
    var $action;
    var $method;
    var $hidden = array();

    function __construct($action, $title = false, $method = false)
    {
        parent::__construct($title);
        $this->action = $action;
        $this->method = $method;
        $this->class .= " form";
    }

    function get_form($defaults = array())
    {
        $form_attrs = attrs("action=\"{$this->action}\"",
            'method="POST"');
        if ($this->method !== false) {
            $form_attrs->add("method=\"{$this->method}\"");
        }
        $table = tag('table', attrs("class=\"{$this->class}\""));
        foreach ($this->list as $child) {
            $table->add($child->get_html($this, $defaults));
        }
        $form = tag('form', $form_attrs);
        $hidden_div = tag('div');
        $have_hidden = false;
        foreach ($this->hidden as $name => $value) {
            $have_hidden = true;
            $hidden_div->add(tag('input', attrs('type="hidden"',
                "name=\"$name\"",
                "value=\"$value\"",
                "id=\"$name\"")));
        }
        if ($have_hidden)
            $form->add($hidden_div);

        $form->add($table);
        return $form;
    }

    function add_hidden($name, $value)
    {
        $this->hidden[$name] = $value;
    }
}
<?php
/*
 * Copyright 2010 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

$month_names = array(
                1 => __('January'),
                __('February'),
                __('March'),
                __('April'),
                __('May'),
                __('June'),
                __('July'),
                __('August'),
                __('September'),
                __('October'),
                __('November'),
                __('December'),
                );

$day_names = array(
                __('Sunday'),
		__('Monday'),
		__('Tuesday'),
		__('Wednesday'),
		__('Thursday'),
		__('Friday'),
		__('Saturday'),
                );

$short_month_names = array(
		1 => __('Jan'),
		__('Feb'),
		__('Mar'),
		__('Apr'),
		__('May'),
		__('Jun'),
		__('Jul'),
		__('Aug'),
		__('Sep'),
		__('Oct'),
		__('Nov'),
		__('Dec'),
                );

// config stuff
define('PHPC_CHECK', 1);
define('PHPC_TEXT', 2);
define('PHPC_DROPDOWN', 3);
define('PHPC_MULTI_DROPDOWN', 4);

$sort_options = array(
                'start_date' => __('Start Date'),
                'subject' => __('Subject')
                );

$order_options = array(
                'ASC' => __('Ascending'),
                'DESC' => __('Descending')
                );
<?php
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function group_delete()
{
	global $vars, $phpcdb, $phpcid, $phpc_script;

	$html = tag('div', attributes('class="phpc-container"'));

	if(empty($vars["gid"])) {
		return message_redirect(__('No group selected.'),
				"$phpc_script?action=cadmin&phpcid=$phpcid");
	}

	if (is_array($vars["gid"])) {
		$ids = $vars["gid"];
	} else {
		$ids = array($vars["gid"]);
	}

	$groups = array();
	foreach ($ids as $id) {
		$groups[] = $phpcdb->get_group($id);
	}

	if (empty($vars["confirm"])) {
		$list = tag('ul');
		foreach ($groups as $group) {
            $list->add(tag('li', $group['name']));
		}
		$html->add(tag('p', __('Confirm you want to delete:')));
		$html->add($list);
		$html->add(" [ ", create_action_link(__('Confirm'),
					"group_delete", array("gid" => $ids,
						"confirm" => "1")), " ] ");
		$html->add(" [ ", create_action_link(__('Deny'),
					"display_month"), " ] ");
		return $html;
	}

	foreach($groups as $group) {
		if((empty($group['cid']) && !is_admin()) ||
					!$phpcdb->get_calendar($group['cid'])
					->can_admin()) {
			$html->add(tag('p', __("You do not have permission to delete group: ") . $group['gid']));
			continue;
		}

		if($phpcdb->delete_group($group['gid'])) {
			$html->add(tag('p', __("Removed group: ")
					. $group['gid']));
		} else {        
			$html->add(tag('p', __("Could not remove group: ")
						. $group['gid']));
		}
	}

        return message_redirect($html, "$phpc_script?action=cadmin&phpcid=$phpcid");
}
<?php
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
       die("Hacking attempt");
}

require_once("$phpc_includes_path/form.php");

/**
 * @return Html
 */
function group_form() {
	global $phpc_script, $vars, $phpcdb, $phpcid;

        $form = new Form($phpc_script, __('Group Form'));
        $form->add_part(new FormFreeQuestion('name', __('Name'),
				false, 32, true));

	$form->add_hidden('cid', $phpcid);

	$form->add_hidden('action', 'group_submit');
	$form->add_part(new FormSubmitButton(__("Submit Group")));

	if(isset($vars['gid'])) {
		$form->add_hidden('gid', $vars['gid']);
		$group = $phpcdb->get_group($vars['gid']);
		$defaults = array('name' => phpc_html_escape($group['name']));
	} else {
		$defaults = array();
	}
        return $form->get_form($defaults);
}
<?php
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function group_submit()
{
    global $vars, $phpcdb, $phpc_script;

	if(!isset($vars['gid'])) {
		$modify = false;

		if(!isset($vars['cid'])) {
			$cid = null;
			if(!is_admin())
				permission_error(__('You do not have permission to add a global group.'));
		} else { 
			$cid = $vars['cid'];
			$calendar = $phpcdb->get_calendar($cid);
			if(!$calendar->can_admin())
				permission_error(__('You do not have permission to add a group to this calendar.'));
		}
		$gid = $phpcdb->create_group($cid, $vars["name"]);
	} else {
		$modify = true;

		$gid = $vars['gid'];
		$group = $phpcdb->get_group($gid);

		if(!(empty($group['cid']) && is_admin() ||
					$phpcdb->get_calendar($group["cid"])
					->can_admin()))
			soft_error(__("You do not have permission to modify this group."));
			
		$phpcdb->modify_group($gid, $vars['name']);
	}

	$page = "$phpc_script?action=cadmin&phpcid=".$vars['cid'];

	if($modify)
		return message_redirect(__("Modified group: ") . $gid,
				$page);

	if($gid > 0)
		return message_redirect(__("Created group: ") . $gid,
				$page);

	return tag('div', attributes('class="phpc-error"'),
			__('Error submitting group.'));
}
<?php
/*
 * Copyright 2009 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if (!defined('IN_PHPC')) {
    die("Hacking attempt");
}

/*
 * data structure to display XHTML
 * see function tag() below for usage
 * Cateat: this class does not understand HTML, it just approximates it.
 *	do not give an empty tag that needs to be closed without content, it
 *	won't be closed. ex tag('div') to get a closed tag use tag('div', '')
 */

class Html
{
    /** @var string */
    var $tagName;
    /** @var AttributeList */
    var $attributeList;
    /** @var array */
    var $childElements;
    /** @var array */
    var $error_func;

    /**
     * Html constructor.
     */
    function __construct()
    {
        $this->error_func = array(&$this, 'default_error_handler');
        $args = func_get_args();
        $this->tagName = array_shift($args);
        if ($this->tagName === NULL) $this->tagName = '';
        $this->attributeList = null;
        $this->childElements = array();

        $arg = array_shift($args);
        if ($arg === NULL) return;

        while ($arg !== NULL) {
            $this->add($arg);
            $arg = array_shift($args);
        }
    }

    function add()
    {
        $htmlElements = func_get_args();
        foreach ($htmlElements as $htmlElement) {
            if (is_a($htmlElement, 'AttributeList')) {
                $this->attributeList = $htmlElement;
            } elseif (is_array($htmlElement)) {
                foreach ($htmlElement as $element) {
                    $this->add($element);
                }
            } elseif (is_object($htmlElement)
                && !is_a($htmlElement, 'Html')
            ) {
                $this->html_error('Invalid class: '
                    . get_class($htmlElement));
            } else {
                $this->childElements[] = $htmlElement;
            }
        }
    }

    function prepend()
    {
        $htmlElements = func_get_args();
        foreach (array_reverse($htmlElements) as $htmlElement) {
            if (is_array($htmlElement)) {
                foreach (array_reverse($htmlElement)
                         as $element) {
                    $this->prepend($element);
                }
            } elseif (is_object($htmlElement)
                && !is_a($htmlElement, 'Html')
            ) {
                $this->html_error('Invalid class: '
                    . get_class($htmlElement));
            } else {
                array_unshift($this->childElements,
                    $htmlElement);
            }
        }
    }

    /**
     * @return string
     */
    function toString()
    {
        $output = '';

        if ($this->tagName != '') {
            $output .= "<{$this->tagName}";

            if ($this->attributeList != NULL) {
                $output .= ' '
                    . $this->attributeList->toString();
            }

            if (sizeof($this->childElements) == 0) {
                $output .= "/>\n";
                return $output;
            }

            $output .= ">";
        }

        foreach ($this->childElements as $child) {
            if (is_object($child)) {
                if (is_a($child, 'Html')) {
                    $output .= $child->toString();
                } else {
                    $this->html_error('Invalid class: '
                        . get_class($child));
                }
            } else {
                $output .= $child;
            }
        }

        if ($this->tagName != '') {
            $output .= "</{$this->tagName}>\n";
        }

        return $output;
    }

    /**
     * @param string $str
     */
    function default_error_handler($str)
    {
        echo "<html><head><title>Error</title></head>\n"
            . "<body><h1>Software Error</h1>\n"
            . "<h2>Message:</h2>\n"
            . "<pre>$str</pre>\n";
        echo "<h2>Backtrace</h2>\n";
        echo "<ol>\n";
        foreach (debug_backtrace() as $bt) {
            echo "<li>{$bt['file']}:{$bt['line']} - ";
            if (!empty($bt['class']))
                echo "{$bt['class']}{$bt['type']}";
            echo "{$bt['function']}(" . implode(', ',
                    $bt['args'])
                . ")</li>\n";
        }
        echo "</ol>\n";
        echo "</body></html>\n";
        exit;
    }

    /* call this function if you want a non-default error handler */
    function html_set_error_handler($func)
    {
        $this->error_func = $func;
    }

    function html_error()
    {
        $args = func_get_args();
        return call_user_func_array($this->error_func, $args);
    }
}

/*
 * Data structure to display XML style attributes
 * see function attributes() below for usage
 */

class AttributeList
{
    /** @var array */
    var $list;

    /**
     * AttributeList constructor.
     */
    function __construct()
    {
        $this->list = array();
        $args = func_get_args();
        $this->add($args);
    }

    function add()
    {
        $args = func_get_args();
        foreach ($args as $arg) {
            if (is_array($arg)) {
                foreach ($arg as $attr) {
                    $this->add($attr);
                }
            } else {
                $this->list[] = $arg;
            }
        }
    }

    /**
     * @return string
     */
    function toString()
    {
        return implode(' ', $this->list);
    }
}

/*
 * creates an Html data structure
 * arguments are tagName [AttributeList] [Html | array | string] ...
 * where array contains an array, Html, or a string, same requirements for that
 * array
 */
/**
 * @return Html
 */
function tag()
{
    $args = func_get_args();
    $html = new Html();
    call_user_func_array(array(&$html, '__construct'), $args);
    return $html;
}

/*
 * creates an AttributeList data structure
 * arguments are [attribute | array] ...
 * where attribute is a string of name="value" and array contains arrays or
 * attributes
 */
/**
 * @return AttributeList
 */
function attributes()
{
    $args = func_get_args();
    $attrs = new AttributeList();
    call_user_func_array(array(&$attrs, '__construct'), $args);
    return $attrs;
}

/**
 * @return AttributeList
 */
function attrs()
{
    $args = func_get_args();
    $attrs = new AttributeList();
    call_user_func_array(array(&$attrs, '__construct'), $args);
    return $attrs;
}


// creates a select tag element for a form
// returns HTML data for the element
/**
 * @param string $name
 * @param array $options
 * @param bool|string $default
 * @param bool|AttributeList $attrs
 * @return Html
 */
function create_select($name, $options, $default = false, $attrs = false)
{
    if ($attrs === false)
        $attrs = attrs();

    $attrs->add("name=\"$name\"");
    $attrs->add("id=\"$name\"");
    $select = tag('select', $attrs);

    foreach ($options as $value => $text) {
        $attributes = attrs("value=\"$value\"");
        if ($default !== false && ($value == $default ||
                is_array($default) &&
                in_array($value, $default))
        ) {
            $attributes->add('selected');
        }
        $select->add(tag('option', $attributes, $text));
    }

    return $select;
}

// creates a two stage select input
// returns HTML data for the elements
/**
 * @param string $name
 * @param array $option_lists
 * @param bool|string $default
 * @param bool|AttributeList $attrs
 * @return Html
 */
function create_multi_select($name, $option_lists, $default = false,
                             $attrs = false)
{
    if ($attrs === false)
        $attrs = attrs();

    $attrs->add("name=\"$name\"");
    $attrs->add("id=\"$name\"");
    $attrs->add("class=\"phpc-multi-select\"");
    $select = tag('select', $attrs);

    foreach ($option_lists as $category => $options) {
        if (is_array($options)) {
            $group = tag('optgroup', attrs("label=\"$category\""));
            $select->add($group);
            foreach ($options as $value => $text) {
                $attributes = attrs("value=\"$value\"");
                if ($value === $default)
                    $attributes->add('selected');
                $text = str_replace('_', ' ', $text);
                $group->add(tag('option', $attributes, $text));
            }
        } else {
            $value = $options;
            $text = $category;
            $attributes = attrs("value=\"$value\"");
            if ($value === $default)
                $attributes->add('selected');
            $select->add(tag('option', $attributes, $text));
        }
    }

    return $select;
}

// creates a select element for a form given a certain range
// returns HTML data for the element
/**
 * @param string $name
 * @param int $lbound
 * @param int $ubound
 * @param int $increment
 * @param bool|string $default
 * @param bool|string $name_function
 * @param bool $attrs
 * @return Html
 */
function create_select_range($name, $lbound, $ubound, $increment = 1,
                             $default = false, $name_function = false, $attrs = false)
{
    $options = array();

    for ($i = $lbound; $i <= $ubound; $i += $increment) {
        if ($name_function !== false) {
            $text = $name_function($i);
        } else {
            $text = $i;
        }
        $options[$i] = $text;
    }
    return create_select($name, $options, $default, $attrs);
}

<?php
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
	die("Hacking attempt");
}

/**
 * @return Html
 */
function import() {
    global $vars, $phpcdb, $phpcid, $phpc_script;

	if(!is_admin()) {
		permission_error(__('Need to be admin'));
		exit;
	}

	$form_page = "$phpc_script?action=admin#phpc-import";

	if(!empty($vars['port']) && strlen($vars['port']) > 0) {
		$port = $vars['port'];
	} else {
		$port = ini_get("mysqli.default_port");
	}

	$old_dbh = @new mysqli($vars['host'], $vars['username'], $vars['passwd'],
			$vars['dbname'], $port);

	if(!$old_dbh || mysqli_connect_errno()) {
		return message_redirect("Database connect failed ("
				. mysqli_connect_errno() . "): "
				. mysqli_connect_error(),
				$form_page);
	}

	$events_table = $vars['prefix'] . 'events';
	$users_table = $vars['prefix'] . 'users';

	// Create user lookup table
	$users = array('anonymous' => '0');
	foreach($phpcdb->get_users() as $user) {
		$users[$user->get_username()] = $user->get_uid();
	}

	// Lookup old events
	$query = "SELECT YEAR(`startdate`) as `year`, "
		."MONTH(`startdate`) as `month`, "
		."DAY(`startdate`) as `day`, YEAR(`enddate`) as `endyear`,"
		."MONTH(`enddate`) as `endmonth`, DAY(`enddate`) as `endday`,"
		."HOUR(`starttime`) as `hour`, MINUTE(`starttime`) as `minute`,"
		."`duration`, `eventtype`, `subject`, `description`,"
		."`username`, `password`\n"
		."FROM `$events_table`\n"
		."LEFT JOIN `$users_table` USING (`uid`)\n";

	$sth = $old_dbh->query($query)
		or $phpcdb->db_error(__('Error selecting events in import'),
				$query);

	$events = 0;
	$occurrences = 0;

	while($result = $sth->fetch_assoc()) {
		$username = $result['username'];
		if(empty($username) || strlen($username) == 0) {
			$uid = 0;
		} else {
			if(!isset($users[$username])) {
				$users[$username] = $phpcdb->create_user($username,
						$result['password'], false);
			}
			$uid = $users[$username];
		}

		$eid = $phpcdb->create_event($phpcid, $uid,
				$phpcdb->dbh->escape_string($result["subject"]),
				$phpcdb->dbh->escape_string($result["description"]),
				false, false);
		$events++;

		$eventtype = $result['eventtype'];
		// Full Day or None
		if($eventtype == 2 || $eventtype == 4)
			$time_type = 1;
		// TBA
		elseif($eventtype == 3)
			$time_type = 2;
		// Normal (and all of the recurring)
		else
			$time_type = 0;

		$year = $result['year'];
		$month = $result['month'];
		$day = $result['day'];
		$hour = $result['hour'];
		$minute = $result['minute'];
		$duration = $result['duration'];

		$final_ts = mktime($hour, $minute, 0, $result['endmonth'],
				$result['endday'], $result['endyear']);

		while(true) {
			$start_ts = mktime($hour, $minute, 0, $month, $day,
					$year);
			if($start_ts > $final_ts)
				break;

			$endminute = $minute + ($duration % 60);
			$endhour = ($hour + floor($duration / 60)) % 24;
			$endday = $day + floor($endhour / 24);
		
			$end_ts = mktime($endhour, $endminute, 0, $month,
					$endday, $year);
			$phpcdb->create_occurrence($eid, $time_type, $start_ts, $end_ts);
			$occurrences++;

			// Increment start time
			switch($eventtype) {
			case 1: // Normal
			case 2: // Full Day
			case 3: // TBA
			case 4: // None
				$day++;
				break;
			case 5: // Weekly
				$day += 7;
				break;
			case 6: // Monthly
				$month++;
				break;
			case 7: // Yearly
				$year++;
				break;
			default:
				echo "bad event!!";
				exit;
			}
		}
	}


	return message_redirect(sprintf(__("Created %s events with %s occurences"),
				$events, $occurrences),
			$form_page);
}
<?php 
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function login()
{
	global $vars, $phpc_script;

	$html = tag('div');

	//Check password and username
	if(isset($vars['username'])){
		$user = $vars['username'];
		$password = $vars['password'];

		if(login_user($user, $password)){
			$url = $phpc_script;
                        if(!empty($vars['lasturl'])) {
				$url .= '?' . urldecode($vars['lasturl']);
			}
                        redirect($url);
			return tag('h2', __('Logged in.'));
		}

		$html->add(tag('h2', __('Sorry, Invalid Login')));

	}

	$html->add(login_form());
	return $html;
}

/**
 * @return Html
 */
function login_form()
{
        global $vars, $phpc_script;

        $submit_data = tag('td', attributes('colspan="2"'),
                                create_hidden('action', 'login'),
                                create_submit(__('Log in')));

        if(!empty($vars['lasturl'])) {
		$lasturl = phpc_html_escape(rawurlencode($vars['lasturl']));
                $submit_data->prepend(create_hidden('lasturl',
                                        $lasturl));
	}

	return tag('form', attributes("action=\"$phpc_script\"",
				'method="post"'),
		tag('table',
			tag('caption', __('Log in')),
                        tag('thead',
                                tag('tr',
                                        tag('th', attributes('colspan="2"'),
                                                __('You must have cookies enabled to login.')))),
			tag('tfoot',
				tag('tr', $submit_data)),
			tag('tbody',
				tag('tr',
					tag('th', tag('label', attributes('for="username"'), __('Username'))),
					tag('td', create_text('username'))),
				tag('tr',
					tag('th', tag('label', attributes('for="password"'), __('Password'))),
					tag('td', create_password('password'))))));
}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function logout()
{
	global $phpc_script;

	phpc_do_logout();
        redirect($phpc_script);

        return tag('h2', __('Loggin out...'));
}
<?php


/**
 * php-msgfmt
 *
 * php-msgfmt is dual-licensed under
 *   the GNU Lesser General Public License, version 2.1, and
 *   the Apache License, version 2.0.
 * 
 * For the terms of the licenses, see the LICENSE-LGPL.txt and LICENSE-AL2.txt
 * files, respectively.
 *
 *
 * Copyright (C) 2007 Matthias Bauer
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License, version 2.1, as published by the Free Software Foundation.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 *
 * Copyright 2007 Matthias Bauer
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * @package php-msgfmt
 * @version $Id$
 * @copyright 2007 Matthias Bauer
 * @author Matthias Bauer
 * @license http://opensource.org/licenses/lgpl-license.php GNU Lesser General Public License 2.1
 * @license http://opensource.org/licenses/apache2.0.php Apache License 2.0
 */

function _po_clean_helper($x) {
	if (is_array($x)) {
		foreach ($x as $k => $v) {
			$x[$k]= _po_clean_helper($v);
		}
	} else {
		if ($x[0] == '"')
			$x= substr($x, 1, -1);
		$x= str_replace("\"\n\"", '', $x);
		$x= str_replace('$', '\\$', $x);
		$x= @ eval ("return \"$x\";");
	}
	return $x;
}

/* Parse gettext .po files. */
/* @link http://www.gnu.org/software/gettext/manual/gettext.html#PO-Files */
function parse_po_file($in) {
	// read .po file
	$fc= file_get_contents($in);
	// normalize newlines
	$fc= str_replace(array (
		"\r\n",
		"\r"
	), array (
		"\n",
		"\n"
	), $fc);

	// results array
	$hash= array ();
	// temporary array
	$temp= array ();
	// state
	$state= null;
	$fuzzy= false;

	// iterate over lines
	foreach (explode("\n", $fc) as $line) {
		$line= trim($line);
		if ($line === '')
			continue;
		$linexp=explode(' ', $line, 2);
		$key=$linexp[0];
		if(isset($linexp[1])) $data=$linexp[1];
		
		switch ($key) {
			case '#,' : // flag...
				$fuzzy= in_array('fuzzy', preg_split('/,\s*/', $data));
			case '#' : // translator-comments
			case '#.' : // extracted-comments
			case '#:' : // reference...
			case '#|' : // msgid previous-untranslated-string
				// start a new entry
				if (sizeof($temp) && array_key_exists('msgid', $temp) && array_key_exists('msgstr', $temp)) {
					if (!$fuzzy)
						$hash[]= $temp;
					$temp= array ();
					$state= null;
					$fuzzy= false;
				}
				break;
			case 'msgctxt' :
				// context
			case 'msgid' :
				// untranslated-string
			case 'msgid_plural' :
				// untranslated-string-plural
				$state= $key;
				$temp[$state]= $data;
				break;
			case 'msgstr' :
				// translated-string
				$state= 'msgstr';
				$temp[$state][]= $data;
				break;
			default :
				if (strpos($key, 'msgstr[') !== FALSE) {
					// translated-string-case-n
					$state= 'msgstr';
					$temp[$state][]= $data;
				} else {
					// continued lines
					switch ($state) {
						case 'msgctxt' :
						case 'msgid' :
						case 'msgid_plural' :
							$temp[$state] .= "\n" . $line;
							break;
						case 'msgstr' :
							$temp[$state][sizeof($temp[$state]) - 1] .= "\n" . $line;
							break;
						default :
							// parse error
							return FALSE;
					}
				}
				break;
		}
	}

	// add final entry
	if ($state == 'msgstr')
		$hash[]= $temp;

	// Cleanup data, merge multiline entries, reindex hash for ksort
	$temp= $hash;
	$hash= array ();
	foreach ($temp as $entry) {
		foreach ($entry as & $v) {
			$v= _po_clean_helper($v);
			if ($v === FALSE) {
				// parse error
				return FALSE;
			}
		}
		$hash[$entry['msgid']]= $entry;
	}

	return $hash;
}

/* Write a GNU gettext style machine object. */
/* @link http://www.gnu.org/software/gettext/manual/gettext.html#MO-Files */
function write_mo_file($hash, $out) {
	// sort by msgid
	ksort($hash, SORT_STRING);
	// our mo file data
	$mo= '';
	// header data
	$offsets= array ();
	$ids= '';
	$strings= '';

	foreach ($hash as $entry) {
		$id= $entry['msgid'];
		if (isset ($entry['msgid_plural']))
			$id .= "\x00" . $entry['msgid_plural'];
		// context is merged into id, separated by EOT (\x04)
		if (array_key_exists('msgctxt', $entry))
			$id= $entry['msgctxt'] . "\x04" . $id;
		// plural msgstrs are NUL-separated
		$str= implode("\x00", $entry['msgstr']);
		// keep track of offsets
		$offsets[]= array (
			strlen($ids
		), strlen($id), strlen($strings), strlen($str));
		// plural msgids are not stored (?)
		$ids .= $id . "\x00";
		$strings .= $str . "\x00";
	}

	// keys start after the header (7 words) + index tables ($#hash * 4 words)
	$key_start= 7 * 4 + sizeof($hash) * 4 * 4;
	// values start right after the keys
	$value_start= $key_start +strlen($ids);
	// first all key offsets, then all value offsets
	$key_offsets= array ();
	$value_offsets= array ();
	// calculate
	foreach ($offsets as $v) {
		list ($o1, $l1, $o2, $l2)= $v;
		$key_offsets[]= $l1;
		$key_offsets[]= $o1 + $key_start;
		$value_offsets[]= $l2;
		$value_offsets[]= $o2 + $value_start;
	}
	$offsets= array_merge($key_offsets, $value_offsets);

	// write header
	$mo .= pack('Iiiiiii', 0x950412de, // magic number
	0, // version
	sizeof($hash), // number of entries in the catalog
	7 * 4, // key index offset
	7 * 4 + sizeof($hash) * 8, // value index offset,
	0, // hashtable size (unused, thus 0)
	$key_start // hashtable offset
	);
	// offsets
	foreach ($offsets as $offset)
		$mo .= pack('i', $offset);
	// ids
	$mo .= $ids;
	// strings
	$mo .= $strings;

	file_put_contents($out, $mo);
}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
	die("Hacking attempt");
}

require_once("$phpc_includes_path/form.php");

/**
 * @return Html
 */
function occur_form() {
	global $vars;

	if(empty($vars["submit_form"]))
		return display_form();

	// else
	return process_form();
}

/**
 * @return Html
 */
function display_form() {
	global $phpc_script, $year, $month, $day, $vars, $phpcdb, $phpc_cal,
		$phpc_token;

	$hour24 = $phpc_cal->hours_24;
	$date_format = $phpc_cal->date_format;
	$form = new Form($phpc_script, __('Occurrence Form'));

	$when_group = new FormGroup(__('When'));
	$when_group->add_part(new FormDateTimeQuestion('start',
				__('From'), $hour24, $date_format));
	$when_group->add_part(new FormDateTimeQuestion('end', __('To'),
				$hour24, $date_format));

	$time_type = new FormDropDownQuestion('time-type', __('Time Type'));
	$time_type->add_option('normal', __('Normal'));
	$time_type->add_option('full', __('Full Day'));
	$time_type->add_option('tba', __('To Be Announced'));

	$when_group->add_part($time_type);

	$form->add_part($when_group);

	if(isset($vars['phpcid']))
		$form->add_hidden('phpcid', $vars['phpcid']);

	if(isset($vars['oid'])) {
		$form->add_hidden('oid', $vars['oid']);

		$occ = $phpcdb->get_occurrence_by_oid($vars['oid']);
		$datefmt = $phpc_cal->date_format;

		$start_date = format_short_date_string($occ->get_start_year(),
				$occ->get_start_month(), $occ->get_start_day(),
				$datefmt);
		$end_date = format_short_date_string($occ->get_end_year(),
				$occ->get_end_month(), $occ->get_end_day(),
				$datefmt);
		$start_time = $occ->get_start_time();
		if($start_time == NULL)
			$start_time = format_time_string(17, 0, $hour24);
		$end_time = $occ->get_end_time();
		if($end_time == NULL)
			$end_time = format_time_string(18, 0, $hour24);
		$defaults = array(
				'start-date' => $start_date,
				'end-date' => $end_date,
				'start-time' => $start_time,
				'end-time' => $end_time,
				);

		switch($occ->get_time_type()) {
			case 0:
				$defaults['time-type'] = 'normal';
				break;
			case 1:
				$defaults['time-type'] = 'full';
				break;
			case 2:
				$defaults['time-type'] = 'tba';
				break;
		}

	} else {
		$form->add_hidden('eid', $vars['eid']);
		$defaults = array(
				'start-date' => "$month/$day/$year",
				'end-date' => "$month/$day/$year",
				'start-time' => format_time_string(17, 0, $hour24),
				'end-time' => format_time_string(18, 0, $hour24),
				);
	}

	$form->add_hidden('phpc_token', $phpc_token);
	$form->add_hidden('action', 'occur_form');
	$form->add_hidden('submit_form', 'submit_form');

	$form->add_part(new FormSubmitButton(__("Submit Occurrence")));

	return $form->get_form($defaults);
}

function process_form()
{
	global $vars, $phpcdb, $phpc_cal, $phpcid, $phpc_script;

	if(!isset($vars['eid']) && !isset($vars['oid']))
		soft_error(__("Cannot create occurrence."));

	$start_ts = get_timestamp("start");
	$end_ts = get_timestamp("end");

	switch($vars["time-type"]) {
		case 'normal':
			$time_type = 0;
			break;

		case 'full':
			$time_type = 1;
			break;

		case 'tba':
			$time_type = 2;
			break;

		default:
			soft_error(__("Unrecognized Time Type."));
	}

	$duration = $end_ts - $start_ts;
	if($duration < 0)
		soft_error(__("An event cannot have an end earlier than its start."));

	verify_token();

	if(!$phpc_cal->can_write())
		permission_error(__('You do not have permission to write to this calendar.'));

	if(!isset($vars['oid'])) {
		$modify = false;
		if(!isset($vars["eid"]))
			soft_error(__("EID not set."));
		$oid = $phpcdb->create_occurrence($vars["eid"], $time_type, $start_ts,
				$end_ts);
	} else {
		$modify = true;
		$oid = $vars["oid"];
		$phpcdb->modify_occurrence($oid, $time_type, $start_ts,
				$end_ts);
	}
		
	if($oid != 0) {
		if($modify)
			$message = __("Modified occurence: ");
		else
			$message = __("Created occurence: ");

		return message_redirect(tag('', $message,
					create_event_link($oid, 'display_event',
						$oid)),
				"$phpc_script?action=display_event&phpcid=$phpcid&oid=$oid");
	} else {
		return message_redirect(__('Error submitting occurrence.'),
				"$phpc_script?action=display_month&phpcid=$phpcid");
	}
}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function occurrence_delete()
{
	global $vars, $phpcdb, $phpcid, $phpc_script;

	$html = tag('div', attributes('class="phpc-container"'));

	if(empty($vars["oid"])) {
		$message = __('No occurrence selected.');
		$html->add(tag('p', $message));
		return $html;
	}

	if (is_array($vars["oid"])) {
		$oids = $vars["oid"];
	} else {
		$oids = array($vars["oid"]);
	}

	if (empty($vars["confirm"])) {
		$list = tag('ul');
		foreach ($oids as $oid) {
			$occur = $phpcdb->get_occurrence_by_oid($oid);
			$list->add(tag('li', "$oid: \"" . $occur->get_subject()
						. "\" " . __("at") . " " .
						$occur->get_date_string()));
		}
		$html->add(tag('p', __('Confirm you want to delete:')));
		$html->add($list);
		$html->add(" [ ", create_action_link(__('Confirm'),
					"occurrence_delete", array("oid" => $oids,
						"confirm" => "1")), " ] ");
		$html->add(" [ ", create_action_link(__('Deny'),
					"display_month"), " ] ");
		return $html;
	}

	$removed_occurs = array();
	$unremoved_occurs = array();
	$permission_denied = array();

	foreach($oids as $oid) {
		$occur = $phpcdb->get_occurrence_by_oid($oid);
		if(!$occur->can_modify()) {
			$permission_denied[] = $oid;
		} else {
			if($phpcdb->delete_occurrence($oid)) {
				$removed_occurs[] = $oid;
				// TODO: Verify that the event still has occurences.
				$eid = $occur->get_eid();
			} else {
				$unremoved_occurs[] = $oid;
			}
		}
	}

	if(sizeof($removed_occurs) > 0) {
		if(sizeof($removed_occurs) == 1)
			$text = __("Removed occurrence");
		else
			$text = __("Removed occurrences");
		$text .= ': ' . implode(', ', $removed_occurs);
		$html->add(tag('p', $text));
	}

	if(sizeof($unremoved_occurs) > 0) {
		if(sizeof($unremoved_occurs) == 1)
			$text = __("Could not remove occurrence");
		else
			$text = __("Could not remove occurrences");
		$text .= ': ' . implode(', ', $unremoved_occurs);
		$html->add(tag('p', $text));
	}

	if(sizeof($permission_denied) > 0) {
		if(sizeof($permission_denied) == 1)
			$text = __("You do not have permission to remove the occurrence.");
		else
			$text = __("You do not have permission to remove occurrences.");
		$text .= ': ' . implode(', ', $permission_denied);
		$html->add(tag('p', $text));
	}

    return message_redirect($html,
			"$phpc_script?action=display_event&phpcid=$phpcid&eid=$eid");
}
<?php 
/*
 * Copyright 2010 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function password_submit()
{
    /** @var PhpcUser $phpc_user */
	global $vars, $phpcdb, $phpc_user;

        if(!is_user()) {
                return tag('div', __('You must be logged in.'));
        }

	verify_token();

	if(!$phpc_user->is_password_editable())
		soft_error(__('You do not have permission to change your password.'));

        if(!isset($vars['old_password'])) {
                return tag('div', __('You must specify your old password.'));
        } else {
		$old_password = $vars['old_password'];
	}

	if($phpc_user->password != md5($old_password)) {
                return tag('div', __('The password you entered did not match your old password.'));
	}

        if(empty($vars['password1'])) {
                return tag('div', __('You must specify a password'));
        }

        if(empty($vars['password2'])
                || $vars['password1'] != $vars['password2']) {
                return tag('div', __('Your passwords did not match'));
        }

        $passwd = md5($vars['password1']);

	$phpcdb->set_password($phpc_user->get_uid(), $passwd);

        return tag('div', __('Password updated.'));
}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

class PhpcCalendar {
    /** @var int */
	var $cid;
    /** @var string */
	var $title;
    /** @var string[] */
	var $user_perms;
    /** @var array */
	var $categories;
    /** @var bool */
	var $hours_24;
    /** @var int */
	var $date_format;
    /** @var int */
	var $week_start;
    /** @var int */
	var $subject_max;
    /** @var int */
	var $events_max;
    /** @var int */
	var $anon_permission;
    /** @var string */
	var $timezone;
    /** @var string */
	var $language;
    /** @var string */
	var $theme;
    /** @var array */
	var $groups;

    /**
     * PhpcCalendar constructor.
     * @param string[] $result
     */
    function __construct($result)
    {
        $this->cid = intval($result['cid']);
		$this->title = $result['title'];
        $this->hours_24 = intval($result['hours_24']) != 0;
        $this->date_format = intval($result['date_format']);
        $this->week_start = intval($result['week_start']);
        $this->subject_max = intval($result['subject_max']);
        $this->events_max = intval($result['events_max']);
        $this->anon_permission = intval($result['anon_permission']);
		$this->timezone = $result['timezone'];
		$this->language = $result['language'];
		$this->theme = $result['theme'];
	}

    /**
     * @return string
     */
	function get_title()
	{
		if(empty($this->title))
			return __('(No title)');

		return phpc_html_escape($this->title);
	}

    /**
     * @return int
     */
	function get_cid()
	{
		return $this->cid;
	}

    /**
     * @return bool
     */
	function can_read()
	{
		if ($this->anon_permission >= 1)
			return true;

		if (!is_user())
			return false;

		$this->require_user_perms();

		return $this->can_admin() || !empty($this->user_perms["read"]);
	}

    /**
     * @return bool
     */
	function can_write()
	{
		if ($this->anon_permission >= 2)
			return true;

		if (!is_user())
			return false;

		$this->require_user_perms();

		return $this->can_admin() || !empty($this->user_perms["write"]);
	}

    /**
     * @return bool
     */
	function can_admin()
	{
		if (!is_user())
			return false;

		$this->require_user_perms();

		return is_admin() || !empty($this->user_perms["admin"]);
	}

	function require_user_perms() {
		global $phpcdb, $phpc_user;

		if(!isset($this->user_perms))
			$this->user_perms = $phpcdb->get_permissions($this->cid,
					$phpc_user->get_uid());

	}

    /**
     * @return bool
     */
	function can_modify()
	{
		if ($this->anon_permission >= 3)
			return true;

		if (!is_user())
			return false;

		$this->require_user_perms();

		return $this->can_admin()
			|| !empty($this->user_perms["modify"]);
	}

    /**
     * @return bool
     */
	function can_create_readonly()
	{
		if (!is_user())
			return false;

		$this->require_user_perms();

		return $this->can_admin()
			|| !empty($this->user_perms["readonly"]);
	}

    /**
     * @param int $uid
     * @return array
     */
	function get_visible_categories($uid) {
		global $phpcdb;

		return $phpcdb->get_visible_categories($uid, $this->cid);
	}

    /**
     * @return array
     */
	function get_categories() {
		global $phpcdb;

		if(!isset($this->categories)) {
			$this->categories = $phpcdb->get_categories($this->cid);
		}
		return $this->categories;
	}

    /**
     * @return array
     */
	function get_groups() {
		global $phpcdb;

		if(!isset($this->groups)) {
			$this->groups = $phpcdb->get_groups($this->cid);
		}
		return $this->groups;
	}
}

<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

require_once("$phpc_includes_path/phpccalendar.class.php");
require_once("$phpc_includes_path/phpcevent.class.php");
require_once("$phpc_includes_path/phpcoccurrence.class.php");
require_once("$phpc_includes_path/phpcuser.class.php");

class PhpcDatabase {
    /** @var mysqli */
	var $dbh;
    /** @var PhpcCalendar[] */
	var $calendars;
    /** @var */
    var $perms = array();

    /**
     * PhpcDatabase constructor.
     * @param string $host
     * @param string $username
     * @param string $passwd
     * @param string $dbname
     * @param string $port
     */
	function __construct($host, $username, $passwd, $dbname, $port) {
		// Make the database connection.
		$this->dbh = new mysqli($host, $username, $passwd, $dbname,
				$port);

		if(mysqli_connect_errno()) {
			soft_error("Database connect failed ("
					. mysqli_connect_errno() . "): "
					. mysqli_connect_error());
		}

		$this->dbh->set_charset("utf8");
	}

	function __destruct() {
		$this->dbh->close();
	}

    /**
     * @return string
     */
	private function get_event_fields() {
		$events_table = SQL_PREFIX . "events";
		$cats_table = SQL_PREFIX . "categories";
		$fields = array('subject', 'description', 'owner', 'eid', 'cid',
				'readonly', 'catid');
		return "`$cats_table`.`gid`, `$events_table`.`"
			. implode("`, `$events_table`.`", $fields) . "`, "
			. "UNIX_TIMESTAMP(`ctime`) AS `ctime`, "
			. "UNIX_TIMESTAMP(`mtime`) AS `mtime`";
	}

    /**
     * @return string
     */
	private function get_occurrence_fields() {
		return $this->get_event_fields() . ", `time_type`, `oid`, "
			. "UNIX_TIMESTAMP(`start_ts`) AS `start_ts`, "
			. "DATE_FORMAT(`start_date`, '%Y%m%d') AS `start_date`, "
			. "UNIX_TIMESTAMP(`end_ts`) AS `end_ts`, "
			. "DATE_FORMAT(`end_date`, '%Y%m%d') AS `end_date`\n";
	}

    /**
     * @return string
     */
	private function get_user_fields() {
		$users_table = SQL_PREFIX . "users";
		return "`$users_table`.`uid`, `username`, `password`, `$users_table`.`admin`, `password_editable`, `timezone`, `language`";
	}

	// returns all the events for a particular day
	// $from and $to are timestamps only significant to the date.
	// an event that happens later in the day of $to is included
    /**
     * @param int $cid
     * @param int $from
     * @param int $to
     * @return mysqli_result
     */
	function get_occurrences_by_date_range($cid, $from, $to)
	{
		$from_str = "FROM_UNIXTIME('$from')";
		$to_str = "FROM_UNIXTIME('$to')";

		$events_table = SQL_PREFIX . "events";
		$occurrences_table = SQL_PREFIX . "occurrences";
		$users_table = SQL_PREFIX . 'users';
		$cats_table = SQL_PREFIX . 'categories';

		$query = "SELECT " . $this->get_occurrence_fields()
			.", `username`, `name`, `bg_color`, `text_color`\n"
			."FROM `$events_table`\n"
                        ."INNER JOIN `$occurrences_table` USING (`eid`)\n"
			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
			."LEFT JOIN `$cats_table` ON `$events_table`.`catid` "
			."= `$cats_table`.`catid`\n"
			."WHERE `$events_table`.`cid` = '$cid'\n"
			."	AND IF(`start_ts`, `start_ts` <= $to_str, `start_date` <= DATE($to_str))\n"
			."	AND IF(`end_ts`, `end_ts` >= $from_str, `end_date` >= DATE($from_str))\n"
			."	ORDER BY `start_ts`, `start_date`, `oid`";

		$results = $this->dbh->query($query)
			or $this->db_error(__('Error in get_occurrences_by_date_range'),
					$query);

		return $results;
        }
		
	/* if category is visible to user id */
    /**
     * @param int $uid
     * @param int $catid
     * @return bool
     */
	function is_cat_visible($uid, $catid) {
		$users_table = SQL_PREFIX . 'users';
		$user_groups_table = SQL_PREFIX . 'user_groups';
		$cats_table = SQL_PREFIX . 'categories';

		if (is_admin())
			return true;

		$query = "SELECT * FROM `$users_table` u\n"
			."JOIN `$user_groups_table` ug USING (`uid`)\n"
			."JOIN `$cats_table` c ON c.`gid`=ug.`gid`\n"
			."WHERE c.`catid`='$catid' AND u.`uid`='$uid'";

		$results = $this->dbh->query($query);

		if(!$results)
			return false;

		return $results->num_rows>0;
	}

	// returns all the events for a particular day

    /**
     * @param int $cid
     * @param int $year
     * @param int $month
     * @param int $day
     * @return mysqli_result
     */
	function get_occurrences_by_date($cid, $year, $month, $day)
	{
		$from_stamp = mktime(0, 0, 0, $month, $day, $year);
		$to_stamp = mktime(23, 59, 59, $month, $day, $year);

		return $this->get_occurrences_by_date_range($cid, $from_stamp, $to_stamp);
    }

	// returns the event that corresponds to eid

    /**
     * @param int $eid
     * @return array
     */
	function get_event_by_eid($eid)
	{
		$events_table = SQL_PREFIX . 'events';
		$users_table = SQL_PREFIX . 'users';
		$cats_table = SQL_PREFIX . 'categories';

		$query = "SELECT " . $this->get_event_fields()
			.", `username`, `name`, `bg_color`, `text_color`\n"
			."FROM `$events_table`\n"
			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
			."LEFT JOIN `$cats_table` USING (`catid`)\n"
			."WHERE `eid` = '$eid'\n";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error in get_event_by_eid'),
					$query);

		$result = $sth->fetch_assoc()
			or soft_error(__("Event doesn't exist") . ": $eid");

		return $result;
	}

	// returns the event that corresponds to oid

    /**
     * @param int $oid
     * @return array
     */
	function get_event_by_oid($oid)
	{
		$events_table = SQL_PREFIX . 'events';
		$occurrences_table = SQL_PREFIX . 'occurrences';
		$users_table = SQL_PREFIX . 'users';
		$cats_table = SQL_PREFIX . 'categories';

		$query = "SELECT " . $this->get_event_fields()
			.", `username`, `name`, `bg_color`, `text_color`\n"
			."FROM `$events_table`\n"
			."LEFT JOIN `$occurrences_table` USING (`eid`)\n"
			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
			."LEFT JOIN `$cats_table` USING (`catid`)\n"
			."WHERE `oid` = '$oid'\n";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error in get_event_by_oid'),
					$query);

		$result = $sth->fetch_assoc()
			or soft_error(__("Event doesn't exist with oid")
					. ": $oid");

		return $result;
	}

	// returns the category that corresponds to $catid

    /**
     * @param int $catid
     * @return array
     */
	function get_category($catid) {
		$cats_table = SQL_PREFIX . 'categories';
		$groups_table = SQL_PREFIX . 'groups';

		$query = "SELECT `$cats_table`.`name` AS `name`, `text_color`, "
			."`bg_color`, `$cats_table`.`cid` AS `cid`, "
			."`$cats_table`.`gid`, `catid`, "
			."`$groups_table`.`name` AS `group_name`\n"
			."FROM `$cats_table`\n"
			."LEFT JOIN `$groups_table` USING (`gid`)\n"
			."WHERE `catid` = $catid";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error in get_category'), $query);
			
		$result = $sth->fetch_assoc()
			or soft_error(__("Category doesn't exist with catid")
					. ": $catid");
	
		return $result;
	}

    /**
     * @param int $gid
     * @return array
     */
	function get_group($gid) {
		$groups_table = SQL_PREFIX . 'groups';

		$query = "SELECT `name`, `gid`, `cid`\n"
			."FROM `$groups_table`\n"
			."WHERE `gid` = $gid";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error in get_group'), $query);
			
		$result = $sth->fetch_assoc()
			or soft_error(__("Group doesn't exist with gid")
					. ": $gid");
	
		return $result;
	}

    /**
     * @param bool|int $cid
     * @return array
     */
	function get_groups($cid = false) {
		$groups_table = SQL_PREFIX . 'groups';

		$query = "SELECT `gid`, `name`, `cid`\n"
			."FROM `$groups_table`\n";

		if($cid !== false)
			$query .= "WHERE `cid` = $cid";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error in get_groups'), $query);
					
		$groups = array();
		while($row = $sth->fetch_assoc()) {
			$groups[] = $row;
		}					
		return $groups;
	}

    /**
     * @param int $uid
     * @return array
     */
	function get_user_groups($uid) {
		$groups_table = SQL_PREFIX . 'groups';
		$user_groups_table = SQL_PREFIX . 'user_groups';

		$query = "SELECT `gid`, `cid`, `name`\n"
			."FROM `$groups_table`\n"
			."INNER JOIN `$user_groups_table` USING (`gid`)\n"
			."WHERE `uid` = $uid";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error in get_user_groups'),
					$query);
					
		$groups = array();
		while($row = $sth->fetch_assoc()) {
			$groups[] = $row;
		}					
		return $groups;
	}
	
	// returns the categories for calendar $cid

    /**
     * @param bool|int $cid
     * @return array
     */
	function get_categories($cid = false) {
		$cats_table = SQL_PREFIX . 'categories';
		$groups_table = SQL_PREFIX . 'groups';

		if($cid)
			$where = "WHERE `$cats_table`.`cid` = '$cid'\n";
		else
			$where = "WHERE `$cats_table`.`cid` IS NULL\n";

		$query = "SELECT `$cats_table`.`name` AS `name`, `text_color`, "
			."`bg_color`, `$cats_table`.`cid` AS `cid`, "
			."`$cats_table`.`gid`, `catid`, "
			."`$groups_table`.`name` AS `group_name`\n"
			."FROM `$cats_table`\n"
			."LEFT JOIN `$groups_table` USING (`gid`)\n"
			.$where;

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error in get_categories'),
					$query);

		$arr = array();
		while($result = $sth->fetch_assoc()) {
			$arr[] = $result;
		}

		return $arr;
	}

	// returns the categories for calendar $cid
    //   if there are no
    /**
     * @param int $uid
     * @param bool|int $cid
     * @return array
     */
	function get_visible_categories($uid, $cid = false)
	{
		$cats_table = SQL_PREFIX . 'categories';
		$user_groups_table = SQL_PREFIX . 'user_groups';

		$where_cid = "`cid` IS NULL";
		if($cid)
			$where_cid = "($where_cid OR `cid` = '$cid')";

		$query = "SELECT `name`, `text_color`, `bg_color`, `cid`, "
			."`gid`, `catid`\n"
			."FROM `$cats_table`\n"
			."LEFT JOIN `$user_groups_table` USING (`gid`)\n"
			."WHERE (`uid` IS NULL OR `uid` = '$uid') AND $where_cid\n";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error in get_visible_categories'),
					$query);

		$arr = array();
		while($result = $sth->fetch_assoc()) {
			$arr[] = $result;
		}

		return $arr;
	}

	// returns the event that corresponds to $oid

    /**
     * @param int $oid
     * @return PhpcOccurrence
     */
	function get_occurrence_by_oid($oid)
	{
		$events_table = SQL_PREFIX . 'events';
		$occurrences_table = SQL_PREFIX . 'occurrences';
		$users_table = SQL_PREFIX . 'users';
		$cats_table = SQL_PREFIX . 'categories';

                $query = "SELECT " . $this->get_occurrence_fields()
			.", `username`, `name`, `bg_color`, `text_color`\n"
			."FROM `$events_table`\n"
                        ."INNER JOIN `$occurrences_table` USING (`eid`)\n"
			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
			."LEFT JOIN `$cats_table` USING (`catid`)\n"
			."WHERE `oid` = '$oid'\n";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error in get_occurrence_by_oid'),
					$query);

		$result = $sth->fetch_assoc()
			or soft_error(__("Event doesn't exist with oid") . ": $oid");

		return new PhpcOccurrence($result);
	}

    /**
     * @param int $eid
     * @return PhpcOccurrence[]
     */
    function get_occurrences_by_eid($eid)
	{
		$events_table = SQL_PREFIX . "events";
		$occurrences_table = SQL_PREFIX . "occurrences";
		$users_table = SQL_PREFIX . 'users';
		$cats_table = SQL_PREFIX . 'categories';

                $query = "SELECT " . $this->get_occurrence_fields()
			.", `username`, `name`, `bg_color`, `text_color`\n"
			."FROM `$events_table`\n"
                        ."INNER JOIN `$occurrences_table` USING (`eid`)\n"
			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
			."LEFT JOIN `$cats_table` USING (`catid`)\n"
			."WHERE `eid` = '$eid'\n"
			."	ORDER BY `start_ts`, `start_date`, `oid`";

		$result = $this->dbh->query($query)
			or $this->db_error(__('Error in get_occurrences_by_eid'),
					$query);

		$events = array();
		while($row = $result->fetch_assoc()) {
			$events[] = new PhpcOccurrence($row);
		}
		return $events;
    }

    /**
     * @param int $eid
     * @return bool
     */
	function delete_event($eid)
	{

		$query = 'DELETE FROM `'.SQL_PREFIX ."events`\n"
			."WHERE `eid` = '$eid'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error while removing an event.'),
					$query);

		$rv = $this->dbh->affected_rows > 0;

		$this->delete_occurrences($eid);

		return $rv;
	}

    /**
     * @param int $eid
     * @return int
     */
	function delete_occurrences($eid)
	{
		$query = 'DELETE FROM `'.SQL_PREFIX ."occurrences`\n"
			."WHERE `eid` = '$eid'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error while removing an event.'),
					$query);

		return $this->dbh->affected_rows;
	}

    /**
     * @param int $oid
     * @return int
     */
	function delete_occurrence($oid)
	{
		$query = 'DELETE FROM `'.SQL_PREFIX ."occurrences`\n"
			."WHERE `oid` = '$oid'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error while removing an occurrence.'),
					$query);

		return $this->dbh->affected_rows;
	}

    /**
     * @param int $id
     * @return bool
     */
	function delete_calendar($id)
	{

		$query1 = 'DELETE FROM `'.SQL_PREFIX ."calendars`\n"
			."WHERE cid='$id'";

		$sth = $this->dbh->query($query1)
			or $this->db_error(__('Error while removing a calendar'),
					$query1);

		return $this->dbh->affected_rows > 0;
	}

    /**
     * @param int $catid
     * @return bool
     */
	function delete_category($catid)
	{

		$query = 'DELETE FROM `'.SQL_PREFIX ."categories`\n"
			."WHERE `catid` = '$catid'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error while removing category.'),
					$query);

		return $this->dbh->affected_rows > 0;
	}

    /**
     * @param int $gid
     * @return bool
     */
	function delete_group($gid)
	{

		$query = 'DELETE FROM `'.SQL_PREFIX ."groups`\n"
			."WHERE `gid` = '$gid'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error while removing group.'),
					$query);

		return $this->dbh->affected_rows > 0;
	}

    /**
     * @param int $id
     * @return bool
     */
	function delete_user($id)
	{

		$query1 = 'DELETE FROM `'.SQL_PREFIX ."users`\n"
			."WHERE uid='$id'";
		$query2 = 'DELETE FROM `'.SQL_PREFIX ."permissions`\n"
			."WHERE uid='$id'";

		$this->dbh->query($query1)
			or $this->db_error(__('Error while removing a calendar'),
					$query1);
		$rv = $this->dbh->affected_rows > 0;

		$this->dbh->query($query2)
			or $this->db_error(__('Error while removing '),
					$query2);

		return $rv;
	}

    /**
     * @param int $cid
     * @param int $uid
     * @return string[]
     */
	function get_permissions($cid, $uid)
	{
		static $perms = array();

		if (empty($perms[$cid]))
			$perms[$cid] = array();
		elseif (!empty($perms[$cid][$uid]))
			return $perms[$cid][$uid];

		$query = "SELECT * from " . SQL_PREFIX .
			"permissions WHERE `cid`='$cid' AND `uid`='$uid'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Could not read permissions.'),
					$query);

		$perms[$cid][$uid] = $sth->fetch_assoc();
		return $perms[$cid][$uid];
	}

    /**
     * @return PhpcCalendar[]
     */
	function get_calendars() {
		if(!empty($this->calendars))
			return $this->calendars;

		$query = "SELECT *\n"
			."FROM `" . SQL_PREFIX .  "calendars`\n";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Could not get calendars.'),
					$query);

		while($result = $sth->fetch_assoc()) {
			$cid = $result["cid"];
			if(empty($this->calendars[$cid]))
				$this->calendars[$cid] = new PhpcCalendar
					($result);
		}

		return $this->calendars;
	}

    /**
     * @param int $cid
     * @return PhpcCalendar
     */
	function get_calendar($cid)
	{
		// Make sure we've cached the calendars
        $calendars = $this->get_calendars();
        if (empty($calendars[$cid])) {
            soft_error('Calendar $cid does not exist.');
		}

        return $calendars[$cid];
	}

    /**
     * @param int $cid
     * @return bool
     */
    function have_calendar($cid)
    {
        $calendars = $this->get_calendars();
        return isset($calendars[$cid]);
    }

    /**
     * @return PhpcUser[]
     */
	function get_users()
	{
		$query = "SELECT * FROM `" . SQL_PREFIX .  "users`";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Could not get user.'), $query);

		$users = array();
		while($user = $sth->fetch_assoc()) {
			$users[] = new PhpcUser($user);
		}
		return $users;
	}

    /**
     * @param int $cid
     * @return array
     */
	function get_users_with_permissions($cid)
	{
		$permissions_table = SQL_PREFIX . "permissions";

		$query = "SELECT *, `permissions`.`admin` AS `calendar_admin`\n"
			."FROM `" . SQL_PREFIX . "users`\n"
			."LEFT JOIN (SELECT * FROM `$permissions_table`\n"
			."	WHERE `cid`='$cid') AS `permissions`\n"
			."USING (`uid`)\n";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Could not get user.'), $query);

		$users = array();
		while($user = $sth->fetch_assoc()) {
			$users[] = $user;
		}
		return $users;
	}

    /**
     * @param string $username
     * @return bool|PhpcUser
     */
	function get_user_by_name($username)
	{
		$query = "SELECT " . $this->get_user_fields()
			."\nFROM ".SQL_PREFIX."users\n"
			."WHERE username='$username'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__("Error getting user."), $query);

		$result = $sth->fetch_assoc();
		if($result)
			return new PhpcUser($result);
		else
			return false;
	}

    /**
     * @param int $uid
     * @return PhpcUser
     */
	function get_user($uid)
	{
		$query = "SELECT " . $this->get_user_fields()
			."FROM ".SQL_PREFIX."users\n"
			."WHERE `uid`='$uid'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__("Error getting user."), $query);

        $result = $sth->fetch_assoc()
        or soft_error('Invalid UID');

        return new PhpcUser($result);
	}

    /**
     * @param string $username
     * @param string $password
     * @param bool $make_admin
     * @return mixed
     */
	function create_user($username, $password, $make_admin) {
		$admin = $make_admin ? 1 : 0;
		$query = "INSERT into `".SQL_PREFIX."users`\n"
			."(`username`, `password`, `admin`) VALUES\n"
			."('$username', '$password', $admin)";

		$this->dbh->query($query)
			or $this->db_error(__('Error creating user.'), $query);

		return $this->dbh->insert_id;
	}

    /**
     * @return mixed
     */
	function create_calendar()
	{
		$query = "INSERT INTO ".SQL_PREFIX."calendars\n"
			."(`cid`) VALUE (DEFAULT)";

		$this->dbh->query($query)
			or $this->db_error(__('Error reading options'), $query);

		return $this->dbh->insert_id;
	}

    /**
     * @param int $cid
     * @param string $name
     * @param string $value
     */
	function update_config($cid, $name, $value)
	{
		$query = "UPDATE ".SQL_PREFIX."calendars \n"
		."SET `".$name."`='$value'\n"
		."WHERE `cid`='$cid'";

		$this->dbh->query($query)
        or $this->db_error(__('Error updating option'), $query);
	}

    /**
     * @param int $cid
     * @param string $name
     * @param string $value
     */
	function create_config($cid, $name, $value)
	{
	
		$query = "UPDATE ".SQL_PREFIX."calendars \n"
			."SET `".$name."`='$value'\n"
			."WHERE `cid`='$cid'"; 

		$this->dbh->query($query)
        or $this->db_error(__('Error creating option'), $query);
	}

    /**
     * @param int $uid
     * @param string $password
     */
	function set_password($uid, $password)
	{
		$query = "UPDATE `" . SQL_PREFIX . "users`\n"
			."SET `password`='$password'\n"
			."WHERE `uid`='$uid'";

		$this->dbh->query($query)
			or $this->db_error(__('Error updating password.'),
					$query);
	}

    /**
     * @param int $uid
     * @param string $timezone
     */
	function set_timezone($uid, $timezone)
	{
		$query = "UPDATE `" . SQL_PREFIX . "users`\n"
			."SET `timezone`='$timezone'\n"
			."WHERE `uid`='$uid'";

		$this->dbh->query($query)
			or $this->db_error(__('Error updating timezone.'),
					$query);
	}

    /**
     * @param int $uid
     * @param string $language
     */
	function set_language($uid, $language)
	{
		$query = "UPDATE `" . SQL_PREFIX . "users`\n"
			."SET `language`='$language'\n"
			."WHERE `uid`='$uid'";

		$this->dbh->query($query)
			or $this->db_error(__('Error updating language.'),
					$query);
	}

    /**
     * @param int $uid
     * @param int $gid
     */
	function user_add_group($uid, $gid) {
		$user_groups_table = SQL_PREFIX . 'user_groups';

		$query = "INSERT INTO `$user_groups_table`\n"
			."(`gid`, `uid`) VALUES\n"
			."('$gid', '$uid')";

		$this->dbh->query($query)
			or $this->db_error(__('Error adding group to user.'),
					$query);
	}

    /**
     * @param int $uid
     * @param int $gid
     */
	function user_remove_group($uid, $gid) {
		$user_groups_table = SQL_PREFIX . 'user_groups';

		$query = "DELETE FROM `$user_groups_table`\n"
			."WHERE `uid` = '$uid' AND `gid` = '$gid'";

		$this->dbh->query($query)
			or $this->db_error(__('Error removing group from user.'), $query);
	}

    /**
     * @param int $cid
     * @param int $uid
     * @param string $subject
     * @param string $description
     * @param bool $readonly
     * @param bool|string $catid
     * @return mixed
     */
	function create_event($cid, $uid, $subject, $description, $readonly,
			$catid = false)
	{
		$fmt_readonly = asbool($readonly);

		if(!$catid)
			$catid = 'NULL';
		else
			$catid = "'$catid'";

		$query = "INSERT INTO `" . SQL_PREFIX . "events`\n"
			."(`cid`, `owner`, `subject`, `description`, "
			."`readonly`, `catid`)\n"
			."VALUES ('$cid', '$uid', '$subject', '$description', "
			."$fmt_readonly, $catid)";

		$this->dbh->query($query)
			or $this->db_error(__('Error creating event.'), $query);

		$eid = $this->dbh->insert_id;

		if($eid <= 0)
			soft_error("Bad eid creating event.");

		return $eid;
	}

    /**
     * @param int $eid
     * @param int $time_type
     * @param int $start_ts
     * @param int $end_ts
     * @return mixed
     */
	function create_occurrence($eid, $time_type, $start_ts, $end_ts)
	{

		$query = "INSERT INTO `" . SQL_PREFIX . "occurrences`\n"
			."SET `eid` = '$eid', `time_type` = '$time_type'";

		if($time_type == 0) {
			$query .= ", `start_ts` = FROM_UNIXTIME('$start_ts')"
				. ", `end_ts` = FROM_UNIXTIME('$end_ts')";
		} else {
			$start_date = date("Y-m-d", $start_ts);
			$end_date = date("Y-m-d", $end_ts);
			$query .= ", `start_date` = '$start_date'"
				. ", `end_date` = '$end_date'";
		}

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error creating occurrence.'),
					$query);

		return $this->dbh->insert_id;
	}

    /**
     * @param int $oid
     * @param int $time_type
     * @param int $start_ts
     * @param int $end_ts
     * @return bool
     */
	function modify_occurrence($oid, $time_type, $start_ts, $end_ts)
	{

		$query = "UPDATE `" . SQL_PREFIX . "occurrences`\n"
			."SET `time_type` = '$time_type'";

		if($time_type == 0) {
			$query .= ", `start_ts` = FROM_UNIXTIME('$start_ts')"
				. ", `end_ts` = FROM_UNIXTIME('$end_ts')"
				. ", `start_date` = NULL"
				. ", `end_date` = NULL";
		} else {
			$start_date = date("Y-m-d", $start_ts);
			$end_date = date("Y-m-d", $end_ts);
			$query .= ", `start_date` = '$start_date'"
				. ", `end_date` = '$end_date'"
				. ", `start_ts` = NULL"
				. ", `end_ts` = NULL";
		}

		$query .= "\nWHERE `oid`='$oid'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error modifying occurrence.'),
					$query);

		return $this->dbh->affected_rows > 0;
	}

    /**
     * @param int $eid
     * @param string $subject
     * @param string $description
     * @param bool $readonly
     * @param bool|int $catid
     * @return bool
     */
	function modify_event($eid, $subject, $description, $readonly,
			$catid = false)
	{
		$fmt_readonly = asbool($readonly);

		$query = "UPDATE `" . SQL_PREFIX . "events`\n"
			."SET\n"
			."`subject`='$subject',\n"
			."`description`='$description',\n"
			."`readonly`=$fmt_readonly,\n"
			."`mtime`=NOW(),\n"
			.($catid !== false ? "`catid`='$catid'\n"
				: "`catid`=NULL\n")
			."WHERE eid='$eid'";

		$this->dbh->query($query)
			or $this->db_error(__('Error modifying event.'), $query);

		return $this->dbh->affected_rows > 0;
	}

    /**
     * @param int $cid
     * @param string $name
     * @param string $text_color
     * @param string $bg_color
     * @param bool|int $gid
     * @return mixed
     */
	function create_category($cid, $name, $text_color, $bg_color,
			$gid = false) {
		$gid_key = $gid ? ', `gid`' : '';
		$gid_value = $gid ? ", '$gid'" : '';
		$query = "INSERT INTO `" . SQL_PREFIX . "categories`\n"
			."(`cid`, `name`, `text_color`, `bg_color`$gid_key)\n"
			."VALUES ('$cid', '$name', '$text_color', '$bg_color'$gid_value)";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error creating category.'),
					$query);
		
		return $this->dbh->insert_id;
	}

    /**
     * @param int $cid
     * @param string $name
     * @return mixed
     */
	function create_group($cid, $name)
	{
		$query = "INSERT INTO `" . SQL_PREFIX . "groups`\n"
			."(`cid`, `name`)\n"
			."VALUES ('$cid', '$name')";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error creating group.'), $query);
		
		return $this->dbh->insert_id;
	}

    /**
     * @param int $catid
     * @param string $name
     * @param string $text_color
     * @param string $bg_color
     * @param int $gid
     * @return bool
     */
	function modify_category($catid, $name, $text_color, $bg_color, $gid)
	{
		$query = "UPDATE " . SQL_PREFIX . "categories\n"
			."SET\n"
			."`name`='$name',\n"
			."`text_color`='$text_color',\n"
			."`bg_color`='$bg_color',\n"
			."`gid`='$gid'\n"
			."WHERE `catid`='$catid'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error modifying category.'),
					$query);

		return $this->dbh->affected_rows > 0;
	}

    /**
     * @param int $gid
     * @param string $name
     * @return bool
     */
	function modify_group($gid, $name)
	{
		$query = "UPDATE " . SQL_PREFIX . "groups\n"
			."SET `name`='$name'\n"
			."WHERE `gid`='$gid'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__('Error modifying group.'),
					$query);

		return $this->dbh->affected_rows > 0;
	}

    /**
     * @param int $cid
     * @param string[] $keywords
     * @param int $start
     * @param int $end
     * @param string $sort
     * @param string $order
     * @return PhpcOccurrence[]
     */
	function search($cid, $keywords, $start, $end, $sort, $order) {
		$events_table = SQL_PREFIX . 'events';
		$occurrences_table = SQL_PREFIX . 'occurrences';
		$users_table = SQL_PREFIX . 'users';
		$cats_table = SQL_PREFIX . 'categories';
		$start_str = "FROM_UNIXTIME('$start')";
		$end_str = "FROM_UNIXTIME('$end')";

		$words = array();
		foreach($keywords as $keyword) {
			$words[] = "(`subject` LIKE '%$keyword%' "
				."OR `description` LIKE '%$keyword%')\n";
		}
		$where = implode(' AND ', $words);

		if($start)
			$where .= "AND IF(`start_ts`, `start_ts` <= $end_str, `start_date` <= DATE($start_str))\n";
		if($end)
			$where .= "AND IF(`end_ts`, `end_ts` >= $start_str, `end_date` >= DATE($end_str))\n";

                $query = "SELECT " . $this->get_occurrence_fields()
			.", `username`, `name`, `bg_color`, `text_color`\n"
			."FROM `$events_table`\n"
                        ."INNER JOIN `$occurrences_table` USING (`eid`)\n"
			."LEFT JOIN `$users_table` ON `uid` = `owner`\n"
			."LEFT JOIN `$cats_table` USING (`catid`)\n"
			."WHERE ($where)\n"
			."AND `$events_table`.`cid` = '$cid'\n"
			."ORDER BY `$sort` $order";

		if(!($result = $this->dbh->query($query)))
			$this->db_error(__('Error during searching'), $query);

		$events = array();
		while($row = $result->fetch_assoc()) {
			$events[] = new PhpcOccurrence($row);
		}
		return $events;
	}

    /**
     * @param int $cid
     * @param int $uid
     * @param array $perms
     */
	function update_permissions($cid, $uid, $perms)
	{
		$names = array();
		$values = array();
		$sets = array();
		foreach($perms as $name => $value) {
			$names[] = "`$name`";
			$values[] = $value;
			$sets[] = "`$name`=$value";
		}

		$query = "INSERT INTO ".SQL_PREFIX."permissions\n"
			."(`cid`, `uid`, ".implode(", ", $names).")\n"
			."VALUES ('$cid', '$uid', ".implode(", ", $values).")\n"
			."ON DUPLICATE KEY UPDATE ".implode(", ", $sets);

		if(!($sth = $this->dbh->query($query)))
			$this->db_error(__('Error updating user permissions.'),
					$query);
	}

    /**
     * @param int $uid
     * @param int $series
     * @return bool
     */
	function get_login_token($uid, $series) {
		$query = "SELECT token FROM ".SQL_PREFIX."logins\n"
			."WHERE `uid`='$uid' AND `series`='$series'";

		$sth = $this->dbh->query($query)
			or $this->db_error(__("Error getting login token."),
					$query);

		$result = $sth->fetch_assoc();
		if(!$result)
			return false;
		return $result["token"];
	}

    /**
     * @param int $uid
     * @param int $series
     * @param int $token
     */
	function add_login_token($uid, $series, $token) {
		$query = "INSERT INTO ".SQL_PREFIX."logins\n"
			."(`uid`, `series`, `token`)\n"
			."VALUES ('$uid', '$series', '$token')";

		$this->dbh->query($query)
			or $this->db_error(__("Error adding login token."),
					$query);
	}

    /**
     * @param int $uid
     * @param int $series
     * @param int $token
     */
	function update_login_token($uid, $series, $token) {
		$query = "UPDATE ".SQL_PREFIX."logins\n"
			."SET `token`='$token', `atime`=NOW()\n"
			."WHERE `uid`='$uid' AND `series`='$series'";

		$this->dbh->query($query)
			or $this->db_error(__("Error updating login token."),
					$query);
	}

    /**
     * @param int $uid
     */
	function remove_login_tokens($uid) {
		$query = "DELETE FROM ".SQL_PREFIX."logins\n"
			."WHERE `uid`='$uid'";

		$this->dbh->query($query)
			or $this->db_error(__("Error removing login tokens."),
					$query);
	}

	function cleanup_login_tokens() {
		$query = "DELETE FROM ".SQL_PREFIX."logins\n"
			."WHERE `atime` < DATE_SUB(CURDATE(), INTERVAL 30 DAY)";

		$this->dbh->query($query)
			or $this->db_error(__("Error cleaning login tokens."),
					$query);
	}

	// called when there is an error involving the DB

    /**
     * @param string $str
     * @param string $query
     * @throws Exception
     */
	function db_error($str, $query = "")
	{
		$string = $str . "<pre>" . phpc_html_escape($this->dbh->error)
			. "</pre>";
		if($query != "") {
			$string .= "<pre>" . __('SQL query') . ": "
				. phpc_html_escape($query)
				. "</pre>";
		}
		throw new Exception($string);
	}

}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

class PhpcEvent {
    /** @var int */
	var $eid;
    /** @var int */
	var $cid;
    /** @var int */
	var $uid;
    /** @var string */
	var $author;
    /** @var string */
	var $subject;
    /** @var string */
	var $desc;
    /** @var bool */
	var $readonly;
    /** @var string */
	var $category;
    /** @var string */
	var $bg_color;
    /** @var string */
	var $text_color;
    /** @var int */
	var $catid;
    /** @var int */
	var $gid;
	var $ctime;
	var $mtime;
    /** @var PhpcCalendar */
	var $cal;

    /**
     * PhpcEvent constructor.
     * @param string[] $event
     */
	function __construct($event)
	{
        global $phpcdb;

        $this->eid = intval($event['eid']);
        $this->cid = intval($event['cid']);
        $this->uid = intval($event['owner']);
		if(empty($event['owner']))
			$this->author = __('anonymous');
		elseif(empty($event['username']))
			$this->author = __('unknown');
		else
			$this->author = $event['username'];
		$this->subject = $event['subject'];
		$this->desc = $event['description'];
        $this->readonly = intval($event['readonly']) != 0;
		$this->category = $event['name'];
		$this->bg_color = $event['bg_color'];
		$this->text_color = $event['text_color'];
        $this->catid = intval($event['catid']);
        $this->gid = intval($event['gid']);
		$this->ctime = $event['ctime'];
		$this->mtime = $event['mtime'];
        $this->cal = $phpcdb->get_calendar($this->cid);
	}

    /**
     * @return string
     */
	function get_raw_subject() {
		return phpc_html_escape($this->subject);
	}

    /**
     * @return string
     */
	function get_subject()
	{
		if(empty($this->subject))
			return __('(No subject)');

		return phpc_html_escape(stripslashes($this->subject));
	}

    /**
     * @return string
     */
	function get_author()
	{
		return $this->author;
	}

    /**
     * @return int
     */
	function get_uid()
	{
		return $this->uid;
	}

    /**
     * @return string
     */
	function get_raw_desc() {
		// Don't allow tags and make the description HTML-safe
		return phpc_html_escape($this->desc);
	}

    /**
     * @return string
     */
	function get_desc()
	{
		return $this->desc;
	}

    /**
     * @return int
     */
	function get_eid()
	{
		return $this->eid;
	}

    /**
     * @return int
     */
	function get_cid()
	{
		return $this->cid;
	}

    /**
     * @return bool
     */
	function is_readonly()
	{
		return $this->readonly;
	}

    /**
     * @return string
     */
	function get_text_color()
	{
		return phpc_html_escape($this->text_color);
	}

    /**
     * @return string
     */
	function get_bg_color()
	{
		return phpc_html_escape($this->bg_color);
	}

    /**
     * @return string
     */
	function get_category()
	{
		if(empty($this->category))
			return $this->category;
		return phpc_html_escape($this->category);
	}

    /**
     * @return bool
     */
	function is_owner() {
		global $phpc_user;
        /** @var PhpcUser $phpc_user */

		return $phpc_user->get_uid() == $this->get_uid();
	}

	// returns whether or not the current user can modify $event
	function can_modify()
	{
		return $this->cal->can_admin() || $this->is_owner()
			|| ($this->cal->can_modify() && !$this->is_readonly());
	}

	// returns whether or not the current user can read $event
	function can_read() {
		global $phpcdb, $phpc_user;
        /** @var PhpcUser $phpc_user */

		$visible_category = empty($this->gid) || !isset($this->catid)
			|| $phpcdb->is_cat_visible($phpc_user->get_uid(),
					$this->catid);
		return $this->cal->can_read() && $visible_category;
	}

	function get_ctime_string() {
		return format_timestamp_string($this->ctime,
				$this->cal->date_format,
				$this->cal->hours_24);
	}

	function get_mtime_string() {
		return format_timestamp_string($this->mtime,
				$this->cal->date_format,
				$this->cal->hours_24);
	}
}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

require_once("$phpc_includes_path/phpcevent.class.php");

class PhpcOccurrence extends PhpcEvent
{
    /** @var int */
	var $oid;
	var $start_year;
	var $start_month;
	var $start_day;
	var $end_year;
	var $end_month;
	var $end_day;
	var $time_type;
	var $start_hour = NULL;
	var $start_minute = NULL;
	var $end_hour = NULL;
	var $end_minute = NULL;
	var $duration;

	function __construct($event) {
		parent::__construct($event);

        $this->oid = intval($event['oid']);

		if(!empty($event['start_ts'])) {
			$start_ts = $event['start_ts'];
			$this->start_year = date('Y', $start_ts);
			$this->start_month = date('n', $start_ts);
			$this->start_day = date('j', $start_ts);
			$this->start_hour = date('H', $start_ts);
			$this->start_minute = date('i', $start_ts);
		}

		if(!empty($event['start_date'])) {
			if(preg_match('/^(\d{4})(\d{2})(\d{2})$/',
						$event['start_date'],
						$start_matches) < 1) {
				soft_error(__('DB returned an invalid date.')
						. "({$event['start_date']})");
			}
			$this->start_year = $start_matches[1];
			$this->start_month = $start_matches[2];
			$this->start_day = $start_matches[3];
		}

		if(!empty($event['end_ts'])) {
			$end_ts = $event['end_ts'];
			$this->end_year = date('Y', $end_ts);
			$this->end_month = date('n', $end_ts);
			$this->end_day = date('j', $end_ts);
			$this->end_hour = date('H', $end_ts);
			$this->end_minute = date('i', $end_ts);
		}

		if(!empty($event['end_date'])) {
			if(preg_match('/^(\d{4})(\d{2})(\d{2})$/',
						$event['end_date'],
						$end_matches) < 1) {
				soft_error(__('DB returned an invalid date.')
						. "({$event['start_date']})");
			}
			$this->end_year = $end_matches[1];
			$this->end_month = $end_matches[2];
			$this->end_day = $end_matches[3];
		}
		
		$this->time_type = $event['time_type'];
		
		if(!empty($event['end_ts'])) {
		
		$this->duration=$event['end_ts'] - $event['start_ts'];
		}
	}

	// formats the time according to type
	// returns the formatted string
	function get_time_string()
	{
		switch($this->time_type) {
			default:
				return $this->get_start_time();
			case 1: // FULL DAY
			case 3: // None
				return '';
			case 2:
				return __('TBA');
		}
	}

	function get_time_span_string()
	{
		switch($this->time_type) {
			default:
				$start_time = $this->get_start_time();
				$end_time = $this->get_end_time();
				return $start_time.' '.__('to').' '.$end_time;
			case 1: // FULL DAY
			case 3: // None
				return '';
			case 2:
				return __('TBA');
		}
	}
		
	function get_start_year()
	{
		return $this->start_year;
	}

	function get_start_month()
	{
		return $this->start_month;
	}

	function get_start_day()
	{
		return $this->start_day;
	}

	function get_end_year()
	{
		return $this->end_year;
	}

	function get_end_month()
	{
		return $this->end_month;
	}

	function get_end_day()
	{
		return $this->end_day;
	}

	function get_start_hour()
	{
                return $this->start_hour;
	}

	function get_start_minute()
	{
		return $this->start_minute;
	}

	function get_end_hour()
	{
                return $this->end_hour;
	}

	function get_end_minute()
	{
		return $this->end_minute;
	}

	function get_start_date() {
		return format_date_string($this->start_year, $this->start_month,
				$this->start_day,
				$this->cal->date_format);
	}

	function get_short_start_date() {
		return format_short_date_string($this->start_year,
				$this->start_month, $this->start_day,
				$this->cal->date_format);
	}

	function get_start_time() {
		if($this->start_hour == NULL || $this->start_minute == NULL)
			return NULL;

		return format_time_string($this->start_hour,
				$this->start_minute,
				$this->cal->hours_24);
	}

	function get_end_date() {
		return format_date_string($this->end_year, $this->end_month,
				$this->end_day,
				$this->cal->date_format);
	}

	function get_short_end_date() {
		return format_short_date_string($this->end_year,
				$this->end_month, $this->end_day,
				$this->cal->date_format);
	}

	function get_end_time() {
		if($this->end_hour == NULL || $this->end_minute == NULL)
			return NULL;

		return format_time_string($this->end_hour,
				$this->end_minute,
				$this->cal->hours_24);
	}

	function get_start_timestamp() {
		return mktime(0, 0, 0, $this->get_start_month(),
				$this->get_start_day(),
				$this->get_start_year());
	}

	function get_end_timestamp() {
		$hour = $this->end_hour ? $this->end_hour : 23;
		$minute = $this->end_minute ? $this->end_minute : 59;
		return mktime($hour, $minute, 59, $this->get_end_month(),
				$this->get_end_day(), $this->get_end_year());
	}

	// takes start and end dates and returns a nice display
	function get_date_string()
	{
		$start_time = $this->get_start_timestamp();
		$end_time = $this->get_end_timestamp();

		$str = $this->get_start_date();

		if($start_time != $end_time)
			$str .= ' - ' . $this->get_end_date();

		return $str;
	}
	
	function get_datetime_string()
	{
		if ($this->duration <= 86400 && $this->start_day==$this->end_day)
		{
		//normal behaviour
		
		$event_time = $this->get_time_span_string();
		if(!empty($event_time))
			$event_time = ' ' . __('at') . " $event_time";
	
		$str= $this->get_date_string() . $event_time;	
		}
		else
		{
		//format on multiple days
	
			$str = ' ' . __('From') . ' ' . $this->get_start_date()
				. ' ' .	__('at') . ' ' . $this->get_start_time()
				. ' ' . __('to') . ' ' . $this->get_end_date()
				. ' ' . __('at') . ' ' . $this->get_end_time();	
			
		}
		return $str;
	}

	function get_oid()
	{
		return $this->oid;
	}

	function get_time_type() {
		return $this->time_type;
	}

	function get_start_ts() {
		$start_hour = $this->start_hour;
		if($start_hour == NULL)
			$start_hour = 0;
		$start_minute = $this->start_minute;
		if($start_minute == NULL);
			$start_minute = 0;
		return mktime($start_hour, $start_minute, 0,
				$this->start_month, $this->start_day,
				$this->start_year);
	}
}
<?php
/*
 * Copyright 2009 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

class PhpcUser {
    /** @var int */
	var $uid;
    /** @var string */
	var $username;
    /** @var string */
	var $password;
    /** @var bool */
	var $admin;
    /** @var bool */
	var $password_editable;
    /** @var string */
    var $timezone;
    /** @var string */
	var $language;
    /** @var array */
	var $groups;

    /**
     * PhpcUser constructor.
     * @param string[] $result
     */
    function __construct($result)
	{
        $this->uid = intval($result['uid']);
		$this->username = $result['username'];
		$this->password = $result['password'];
        $this->admin = intval($result['admin']) != 0;
        $this->password_editable = intval($result['password_editable']) != 0;
		$this->timezone = $result['timezone'];
		$this->language = $result['language'];
	}

    /**
     * @return string
     */
	function get_username()
	{
		return $this->username;
	}

    /**
     * @return int
     */
	function get_uid()
	{
		return $this->uid;
	}

    /**
     * @return string
     */
	function get_password() {
		return $this->password;
	}

    /**
     * @return bool
     */
	function is_password_editable() {
		return $this->password_editable;
	}

    /**
     * @return string
     */
	function get_timezone() {
		return $this->timezone;
	}

    /**
     * @return string
     */
	function get_language() {
		return $this->language;
	}

    /**
     * @return array
     */
	function get_groups() {
		global $phpcdb;

		if(!isset($this->groups))
			$this->groups = $phpcdb->get_user_groups($this->uid);

		return $this->groups;
	}
}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
        die("Hacking attempt");
}

require_once("$phpc_includes_path/form.php");

/**
 * @return Html
 */
function search_results()
{
	global $vars, $phpcdb, $phpcid, $sort_options, $order_options;

	$searchstring = $vars['searchstring'];
	if(!empty($vars['search-from-date'])
			&& strlen($vars['search-from-date']) > 0)
		$start = get_timestamp('search-from');
	else
		$start = false;
	if(!empty($vars['search-to-date'])
			&& strlen($vars['search-to-date']) > 0)
		$end = get_timestamp('search-to', 23, 59, 59);
	else
		$end = false;

        // make sure sort is valid
	$sort = phpc_html_escape($vars['sort']);
        if(array_search($sort, array_keys($sort_options)) === false) {
                soft_error(__('Invalid sort option') . ": $sort");
        }

        // make sure order is valid
	$order = phpc_html_escape($vars['order']);
        if(array_search($order, array_keys($order_options)) === false) {
                soft_error(__('Invalid order option') . ": $order");
        }

	$keywords = explode(" ", $searchstring);

	$results = $phpcdb->search($phpcid, $keywords, $start, $end, $sort,
			$order);

	$tags = array();
	foreach ($results as $event) {
		if(!$event->can_read())
			continue;

		$subject = $event->get_subject();
		$desc = $event->get_desc();
		$date = $event->get_date_string();
		$time = $event->get_time_string();
		$eid = $event->get_eid();

		$tags[] = tag('tr',
				tag('td',
					tag('strong',
						create_event_link(
							$subject,
							'display_event',
							$eid)
					   )),
				tag('td', "$date $time"),
				tag('td', $desc));
	}

	if(sizeof($tags) == 0) {
		$html = tag('div', tag('strong',
					__('No events matched your search criteria.')));
	} else {
		$html = tag('table',
				attributes('class="phpc-main"'),
				tag('caption', __('Search Results')),
				tag('thead',
					tag('tr',
						tag('th', __('Subject')),
						tag('th', __('Date Time')),
						tag('th', __('Description')))));
		foreach($tags as $tag) $html->add($tag);
	}

	return $html;
}

/**
 * @return Html
 */
function search_form()
{
    global $phpc_script, $sort_options, $order_options, $phpcid, $phpc_cal;
	
	$date_format = $phpc_cal->date_format;
 
	$form = new Form($phpc_script, __('Search'),'post');
    	$form->add_part(new FormFreeQuestion('searchstring', __('Phrase'),
				false, 32, true));
	$form->add_hidden('action', 'search');
	$form->add_hidden('phpcid', $phpcid);
	$form->add_part(new FormDateQuestion('search-from', __('From'),
				$date_format));
	$form->add_part(new FormDateQuestion('search-to', __('To'),
				$date_format));
	$sort = new FormDropdownQuestion('sort', __('Sort By'));
	$sort->add_options($sort_options);
	$form->add_part($sort);
	$order = new FormDropdownQuestion('order', __('Order'));
	$order->add_options($order_options);
	$form->add_part($order);
	$form->add_part(new FormSubmitButton(__("Search")));
	return $form->get_form();
}

/**
 * @return Html
 */
function search()
{
	global $vars;

	if(isset($vars['searchstring'])) return search_results();
	return search_form();
}
<?php 
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function settings()
{
    /** @var PhpcUser $phpc_user */
    global $vars, $phpc_user;

	if(!empty($vars["phpc_submit"]))
		settings_submit();

	$index = tag('ul',
			tag('li', tag('a', attrs('href="#phpc-config"'),
					__('Settings'))));
	$forms = array();

	$forms[] = config_form();

	if(is_user() && $phpc_user->is_password_editable()) {
		$forms[] = password_form();
		$index->add(tag('li', tag('a', attrs('href="#phpc-password"'),
						__('Password'))));
	}

	return tag('div', attrs('class="phpc-tabs"'), $index, $forms);
}

/**
 * @return Html
 */
function password_form()
{
	global $phpc_script, $phpc_token;

	$form = tag('form', attributes("action=\"$phpc_script\"",
                                'method="post"'),
			tag('table', attributes("class=\"phpc-container\""),
				tag('caption', __('Change Password')),
				tag('tfoot',
					tag('tr',
						tag('td', attributes('colspan="2"'),
							create_hidden('phpc_token', $phpc_token),
							create_hidden('action', 'password_submit'),
							create_submit(__('Submit'))))),
				tag('tbody',
					tag('tr',
						tag('th', __('Old Password')),
						tag('td', create_password('old_password'))),
					tag('tr',
						tag('th', __('New Password')),
						tag('td', create_password('password1'))),
					tag('tr',
						tag('th', __('Confirm New Password')),
						tag('td', create_password('password2')))
				   )));

	return tag('div', attrs('id="phpc-password"'), $form);
}

/**
 * @return Html
 */
function config_form()
{
	global $phpc_script, $phpc_user_tz, $phpc_user_lang, $phpc_token;

	$tz_input = create_multi_select('timezone', get_timezone_list(),
			$phpc_user_tz);

	$languages = array("" => __("Default"));
	foreach(get_languages() as $lang) {
		$languages[$lang] = $lang;
	}
	$lang_input = create_select('language', $languages,
			$phpc_user_lang);

	$form = tag('form', attributes("action=\"$phpc_script\"",
				'method="post"'),
			tag('table', attributes("class=\"phpc-container\""),
				tag('caption', __('Settings')),
				tag('tfoot',
					tag('tr',
						tag('td', attributes('colspan="2"'),
							create_hidden('phpc_token', $phpc_token),
							create_hidden('action', 'settings'),
							create_hidden('phpc_submit', 'settings'),
							create_submit(__('Submit'))))),
				tag('tbody',
					tag('tr',
						tag('th', __('Timezone')),
						tag('td', $tz_input)),
					tag('tr',
						tag('th', __('Language')),
						tag('td', $lang_input))
				   )));

	return tag('div', attrs('id="phpc-config"'), $form);
}

function settings_submit()
{
    /** @var PhpcUser $phpc_user */
    global $vars, $phpcdb, $phpc_user_tz, $phpc_user_lang,
	       $phpc_prefix, $phpc_user;

	verify_token();

	// Expire 20 years in the future, give or take.
	$expiration_time = time() + 20 * 365 * 24 * 60 * 60;
	// One hour in the past
	$past_time = time() - 3600;
	if(!empty($vars["timezone"]))
		phpc_set_cookie("{$phpc_prefix}tz", $vars['timezone'], $expiration_time);
	else
		phpc_set_cookie("{$phpc_prefix}tz", '', $past_time);
	if(!empty($vars["language"]))
		phpc_set_cookie("{$phpc_prefix}lang", $vars['language'], $expiration_time);
	else
		phpc_set_cookie("{$phpc_prefix}lang", '', $past_time);

	if(is_user()) {
		$uid = $phpc_user->get_uid();
		$phpcdb->set_timezone($uid, $vars['timezone']);
		$phpcdb->set_language($uid, $vars['language']);
		$phpc_user_tz = $vars["timezone"];
		$phpc_user_lang = $vars["language"];
	}

    message(__('Settings updated.'));
}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
   This file sets up the global variables to be used later
*/

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

// Run the installer if we have no config file
// This doesn't work when embedded from outside
if(!file_exists($phpc_config_file)) {
        redirect('install.php');
        exit;
}
require_once($phpc_config_file);
if(!defined('SQL_TYPE')) {
        redirect('install.php');
        exit;
}

if(defined('PHPC_DEBUG')) {
	error_reporting(E_ALL);
	ini_set('display_errors', 1);
	ini_set('html_errors', 1);
}

$phpc_prefix = "phpc_" . SQL_PREFIX . SQL_DATABASE;

require_once("$phpc_includes_path/calendar.php");

// Make the database connection.
require_once("$phpc_includes_path/phpcdatabase.class.php");
if(!defined("SQL_PORT"))
	define("SQL_PORT", ini_get("mysqli.default_port"));
$phpcdb = new PhpcDatabase(SQL_HOST, SQL_USER, SQL_PASSWD, SQL_DATABASE,
		SQL_PORT);

session_set_cookie_params(0, "", "", false, true);
session_start();

if(empty($_SESSION["{$phpc_prefix}uid"])) {
	if(!empty($_COOKIE["{$phpc_prefix}login"])
			&& !empty($_COOKIE["{$phpc_prefix}uid"])
			&& !empty($_COOKIE["{$phpc_prefix}login_series"])) {
		// Cleanup before we check their token so they can't login with
		//   an ancient token
		$phpcdb->cleanup_login_tokens();

		$phpc_uid = $_COOKIE["{$phpc_prefix}uid"];
		$phpc_login_series = $_COOKIE["{$phpc_prefix}login_series"];
		$phpc_token = $phpcdb->get_login_token($phpc_uid,
					$phpc_login_series);
		if($phpc_token) {
			if($phpc_token == $_COOKIE["{$phpc_prefix}login"]) {
				$user = $phpcdb->get_user($phpc_uid);
				phpc_do_login($user, $phpc_login_series);
			} else {
				$phpcdb->remove_login_tokens($phpc_uid);
				soft_error(__("Possible hacking attempt on your account."));
			}
		} else {
			$phpc_uid = 0;
		}
	}
} else {
	$phpc_token = $_SESSION["{$phpc_prefix}login"];
}

if(empty($phpc_token))
	$phpc_token = '';

// Create vars
$vars = array_merge(real_escape_r($_GET), real_escape_r($_POST));

// Find an appropriate calendar id
if(!empty($vars['phpcid'])) {
	if(!is_numeric($vars['phpcid']))
		soft_error(__("Invalid calendar ID."));
        $phpcid = $vars['phpcid'];
} elseif(!empty($default_calendar_id)) {
	$phpcid = $default_calendar_id;
} else {
	$phpcid = 1;
}

if (!$phpcdb->have_calendar($phpcid)) {
    $phpcid = 1;
    if (!$phpcdb->have_calendar($phpcid))
        soft_error(__("Could not find a calendar."));
}

$phpc_cal = $phpcdb->get_calendar($phpcid);

//set action
if(empty($vars['action'])) {
	$action = 'display_month';
} else {
	$action = $vars['action'];
}

if(empty($vars['contentType']))
	$vars['contentType'] = "html";

if(!empty($_SESSION["{$phpc_prefix}uid"])) {
	$phpc_user = $phpcdb->get_user($_SESSION["{$phpc_prefix}uid"]);
} else {
	$anonymous = array('uid' => 0,
			'username' => 'anonymous',
			'password' => '',
			'admin' => false,
			'password_editable' => false,
			'timezone' => NULL,
			'language' => NULL,
			);
	if(isset($_COOKIE["{$phpc_prefix}tz"]))
		$anonymous['timezone'] = $_COOKIE["{$phpc_prefix}tz"];
	if(isset($_COOKIE["{$phpc_prefix}lang"]))
		$anonymous['language'] = $_COOKIE["{$phpc_prefix}lang"];
	$phpc_user = new PhpcUser($anonymous);
}

$phpc_user_lang = $phpc_user->get_language();
$phpc_user_tz = $phpc_user->get_timezone();

// setup translation stuff
if(!empty($vars['lang'])) {
	$phpc_lang = $vars['lang'];
} elseif(!empty($phpc_user_lang)) {
	$phpc_lang = $phpc_user_lang;
} elseif(!empty($phpc_cal->language)) {
	$phpc_lang = $phpc_cal->language;
} elseif(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
	$phpc_lang = substr(phpc_html_escape($_SERVER['HTTP_ACCEPT_LANGUAGE']),
			0, 2);
} else {
	$phpc_lang = 'en';
}

if(!preg_match('/^\w+$/', $phpc_lang, $matches))
	$phpc_lang = 'en';

$phpc_gettext = new Gettext_PHP($phpc_locale_path, 'messages', $phpc_lang);

// Must be included after translation is setup
require_once("$phpc_includes_path/globals.php");

if(!empty($vars['clearmsg']))
	$_SESSION["{$phpc_prefix}messages"] = NULL;

$phpc_messages = array();

if(!empty($_SESSION["{$phpc_prefix}messages"])) {
	foreach($_SESSION["{$phpc_prefix}messages"] as $message) {
		$phpc_messages[] = $message;
	}
}

if(!empty($phpc_user_tz))
	$phpc_tz = $phpc_user_tz;
else
	$phpc_tz = $phpc_cal->timezone;

if(!empty($phpc_tz))
	date_default_timezone_set($phpc_tz); 
$phpc_tz = date_default_timezone_get();

// set day/month/year
if(isset($vars['month']) && is_numeric($vars['month'])) {
	$month = $vars['month'];
	if($month < 1 || $month > 12)
		display_error(__("Month is out of range."));
} else {
	$month = date('n');
}

if(isset($vars['year']) && is_numeric($vars['year'])) {
	$time = mktime(0, 0, 0, $month, 1, $vars['year']);
        if(!$time || $time < 0) {
                display_error(__('Invalid year') . ": {$vars['year']}");
        }
	$year = date('Y', $time);
} else {
	$year = date('Y');
}

if(isset($vars['day']) && is_numeric($vars['day'])) {
	$day = ($vars['day'] - 1) % date('t', mktime(0, 0, 0, $month, 1, $year))
                + 1;
} else {
	if($month == date('n') && $year == date('Y')) {
                $day = date('j');
	} else {
                $day = 1;
        }
}

if ($vars["contentType"] == "json") {
	header("Content-Type: application/json; charset=UTF-8");
	echo do_action();
	exit;
}

header("Content-Type: text/html; charset=UTF-8");
header("X-Content-Type-Options: nosniff");
header("X-Frame-Options: DENY");

<?php
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

require_once("$phpc_includes_path/msgfmt-functions.php");

/**
 * @return Html
 */
function translate() {
	global $phpc_locale_path;

	if(!is_admin()) {
		permission_error(__('Need to be admin'));
		exit;
	}

	$handle = opendir($phpc_locale_path);

	if(!$handle) {
        soft_error("Error reading locale directory.");
	}

	$output_tag = tag('div', tag('h2', __('Translate')));
	while(($filename = readdir($handle)) !== false) {
		$pathname = "$phpc_locale_path/$filename";
		if(strncmp($filename, ".", 1) == 0 || !is_dir($pathname))
			continue;
		$msgs_path = "$pathname/LC_MESSAGES";

		$hash=	parse_po_file("$msgs_path/messages.po");
		if ($hash === FALSE) {
			print(nl2br("Error reading '$msgs_path/messages.po', aborted.\n"));
		} else {
			$out="$msgs_path/messages.mo";
			write_mo_file($hash, $out);
		}
		$output_tag->add(tag('div', sprintf(__('Translated "%s"'),
					$filename)));
	}

	closedir($handle);

	return $output_tag;
}
<?php 
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function user_create() {
	global $vars;

        if(!is_admin()) {
                return tag('div', __('Permission denied'));
        }

	if(!empty($vars['submit_form']))
		process_form();

	return display_form();

}

/**
 * @return Html
 */
function display_form() {
	global $phpc_script, $phpc_token, $phpcdb;

	$groups = array();
	foreach($phpcdb->get_groups() as $group) {
		$groups[$group['gid']] = $group['name'];
	}

	$size = sizeof($groups);
	if($size > 6)
		$size = 6;

	return tag('form', attributes("action=\"$phpc_script\"",
                                'method="post"'),
			tag('table', attributes("class=\"phpc-container\""),
				tag('caption', __('Create User')),
				tag('tfoot',
					tag('tr',
						tag('td', attributes('colspan="2"'),
							create_hidden('phpc_token', $phpc_token),												
							create_hidden('action', 'user_create'),												
							create_hidden('submit_form', 'submit_form'),
							create_submit(__('Submit'))))),
				tag('tbody',
					tag('tr',
						tag('th', __('User Name')),
						tag('td', create_text('user_name'))),
					tag('tr',
						tag('th', __('Password')),
						tag('td', create_password('password1'))),
					tag('tr',
						tag('th', __('Confirm Password')),
						tag('td', create_password('password2'))),
					tag('tr',
						tag('th', __('Make Admin')),
						tag('td', create_checkbox('make_admin', '1', false, __('Admin')))),
					tag('tr',
						tag('th', __('Groups')),
						tag('td', create_select('groups[]',
								$groups, false, attrs('multiple', "size=\"$size\""))))
				   )));
}

function process_form()
{
    global $vars, $phpcdb;

	verify_token();

        if(empty($vars['user_name'])) {
                return message(__('You must specify a user name'));
        }

        if(empty($vars['password1'])) {
                return message(__('You must specify a password'));
        }

        if(empty($vars['password2'])
                || $vars['password1'] != $vars['password2']) {
                return message(__('Your passwords did not match'));
        }

	$make_admin = empty($vars['make_admin']) ? 0 : 1;

        $passwd = md5($vars['password1']);

	if($phpcdb->get_user_by_name($vars["user_name"]))
		return message(__('User already exists.'));
	
	$uid = $phpcdb->create_user($vars["user_name"], $passwd, $make_admin);

	if(!empty($vars['groups'])) {
		foreach($vars['groups'] as $gid) {
			$phpcdb->user_add_group($uid, $gid);
		}
	}

        return message(__('Added user.'));
}
<?php
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function user_delete()
{
	global $vars, $phpcid, $phpcdb, $phpc_script;

	$html = tag('div', attributes('class="phpc-container"'));

	if(!is_admin()) {
		$html->add(tag('p', __('You must be an admin to delete users.')));
		return $html;
	}

	if(empty($vars["uid"])) {
		$html->add(tag('p', __('No user selected.')));
		return $html;
	}

	if (is_array($vars["uid"])) {
		$ids = $vars["uid"];
	} else {
		$ids = array($vars["uid"]);
	}

	if (empty($vars["confirm"])) {
		$list = tag('ul');
		foreach ($ids as $id) {
			$user = $phpcdb->get_user($id);
			$list->add(tag('li', "$id: ".$user->get_username()));
		}
		$html->add(tag('p', __('Confirm you want to delete:')));
		$html->add($list);
		$html->add(" [ ", create_action_link(__('Confirm'),
					"user_delete", array("uid" => $ids,
						"confirm" => "1")), " ] ");
		$html->add(" [ ", create_action_link(__('Deny'),
					"display_month"), " ] ");
		return $html;
	}

	foreach($ids as $id) {
		if($phpcdb->delete_user($id)) {
			$html->add(tag('p', __("Removed user: $id")));
		} else {        
			$html->add(tag('p', __("Could not remove user: $id")));
		}
	}

        return message_redirect($html, "$phpc_script?action=admin&phpcid=$phpcid");
}
<?php 
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function user_groups() {
	global $vars, $phpc_cal;

        if(!$phpc_cal->can_admin()) {
                return tag('div', __('Permission denied'));
        }

	if(!empty($vars['submit_form']))
		process_form();

	return display_form();

}

/**
 * @return Html
 */
function display_form() {
	global $phpc_script, $phpc_token, $phpcdb, $vars, $phpc_cal, $phpcid;

	$groups = array();
	foreach($phpc_cal->get_groups() as $group) {
		$groups[$group['gid']] = $group['name'];
	}

	$size = sizeof($groups);
	if($size > 6)
		$size = 6;

	$user = $phpcdb->get_user($vars["uid"]);

	$user_groups = array();
	foreach($user->get_groups() as $group) {
		$user_groups[] = $group['gid'];
	}

	return tag('form', attributes("action=\"$phpc_script\"",
                                'method="post"'),
			tag('div', attributes("class=\"phpc-container\""),
				tag('h2', __('Edit User Groups')),
				tag('div', create_select('groups[]', $groups,
					$user_groups,
					attrs('multiple', "size=\"$size\""))),
				tag('div',
					create_hidden('phpc_token',
						$phpc_token),
					create_hidden('uid', $vars['uid']),
					create_hidden('phpcid', $phpcid),
					create_hidden('action', 'user_groups'),
					create_hidden('submit_form',
						'submit_form'),
					create_submit(__('Submit')))));
}

function process_form()
{
    global $phpcid, $vars, $phpcdb, $phpc_cal;

	verify_token();

	$user = $phpcdb->get_user($vars["uid"]);
	// Remove existing groups for this calendar
	foreach($user->get_groups() as $group) {
		if($group["cid"] == $phpcid)
			$phpcdb->user_remove_group($vars["uid"], $group["gid"]);
	}
	
	$valid_groups = array();
	foreach($phpc_cal->get_groups() as $group) {
		$valid_groups[] = $group["gid"];
	}
	if(!empty($vars["groups"])) {
		foreach($vars["groups"] as $gid) {
			if(!in_array($gid, $valid_groups))
				soft_error("Invalid gid");

			$phpcdb->user_add_group($vars["uid"], $gid);
		}
	}

    return message(__('Groups updated.'));
}
<?php 
/*
 * Copyright 2012 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if(!defined('IN_PHPC')) {
       die("Hacking attempt");
}

/**
 * @return Html
 */
function user_permissions_submit()
{
	global $phpcid, $phpc_cal, $vars, $phpcdb, $phpc_script;

        if(!$phpc_cal->can_admin()) {
                return tag('div', __('Permission denied'));
        }

        if(empty($vars['uid'])) {
                return tag('div', __('No users'));
        }

	$users = array();

	foreach ($vars['uid'] as $uid) {
		$perm_names = array('read', 'write', 'readonly', 'modify',
				'admin');
		$old_perms = $phpcdb->get_permissions($phpcid, $uid);

		$new_perms = array();
		
		$different = false;
		foreach($perm_names as $perm_name) {
			$new_perms[$perm_name] =
				asbool(!empty($vars["$perm_name$uid"]));
			if(empty($old_perms[$perm_name]) !=
					empty($vars["$perm_name$uid"]))
				$different = true;
		}

		if ($different) {
			$user = $phpcdb->get_user($uid);
			$users[] = $user->get_username();
			$phpcdb->update_permissions($phpcid, $uid, $new_perms);
		}
	}
	if(sizeof($users) == 0)
		$message = __('No changes to make.');
	else
		$message = __('Updated user(s):').' ' .implode(', ', $users);

	return message_redirect($message, "$phpc_script?action=cadmin&phpcid=$phpcid");
}
<?php
/*
 * Copyright 2014 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if ( !defined('IN_PHPC') ) {
       die("Hacking attempt");
}

// called when some error happens
/**
 * @param string $message
 * @throws Exception
 */
function soft_error($message)
{
	throw new Exception(phpc_html_escape($message));
}

class PermissionException extends Exception {
}

/**
 * @param string $message
 * @throws PermissionException
 */
function permission_error($message)
{
	throw new PermissionException(phpc_html_escape($message));
}

/**
 * @param int $minute
 * @return string
 */
function minute_pad($minute)
{
	return sprintf('%02d', $minute);
}

/**
 * @param string $page
 */
function redirect($page) {
	global $phpc_script, $phpc_server, $phpc_redirect, $phpc_proto;

	session_write_close();

	$phpc_redirect = true;

	if($page[0] == "/") {
		$dir = '';
	} else {
		$dir = dirname($phpc_script) . "/";
	}
	$url = "$phpc_proto://$phpc_server$dir$page";

	header("Location: $url");
}

/**
 * @param string $message
 * @param string $page
 * @return Html
 */
function message_redirect($message, $page) {
	global $phpc_prefix;

	if(empty($_SESSION["{$phpc_prefix}messages"]))
		$_SESSION["{$phpc_prefix}messages"] = array();

	if (is_a($message, 'Html'))
		$message = $message->toString();
	
	$_SESSION["{$phpc_prefix}messages"][] = $message;
	redirect($page);

	$continue_url = $page . '&amp;clearmsg=1';

	return tag('div', attrs('class="phpc-box"'), "$message ",
 		tag('a', attrs("href=\"$continue_url\""), __("continue")));
}

/**
 * @param string $message
 */
function message($message) {
	global $phpc_messages;

	$phpc_messages[] = $message;
}

/**
 * @param array|string $var
 * @return array|string
 */
function stripslashes_r($var) {
	if (is_array($var))
		return array_map("stripslashes_r", $var);
	else
		return stripslashes($var);
}

/**
 * @param array|string $var
 * @return array|string
 */
function real_escape_r($var) {
	global $phpcdb;

	if(is_array($var))
		return array_map("real_escape_r", $var);
	else
		return mysqli_real_escape_string($phpcdb->dbh, $var);
}

/**
 * @param bool $val
 * @return string
 */
function asbool($val)
{
	return $val ? "1" : "0";
}

/**
 * @param int $timestamp
 * @param int $date_format
 * @param bool $hours24
 * @return string
 */
function format_timestamp_string($timestamp, $date_format, $hours24) {
	$year = date('Y', $timestamp);
	$month = date('n', $timestamp);
	$day = date('j', $timestamp);
	$hour = date('H', $timestamp);
	$minute = date('i', $timestamp);

	return format_date_string($year, $month, $day, $date_format) . ' '
		. __('at') . ' ' . format_time_string($hour, $minute, $hours24);
}

/**
 * @param int $year
 * @param int $month
 * @param int $day
 * @param int $date_format
 * @return string
 */
function format_date_string($year, $month, $day, $date_format)
{
	$month_name = short_month_name($month);
	switch($date_format) {
		case 0: // Month Day Year
			return "$month_name $day, $year";
		case 1: // Year Month Day
			return "$year $month_name $day";
		case 2: // Day Month Year
			return "$day $month_name $year";
		default:
			soft_error("Invalid date_format");
	}
}

/**
 * @param int $year
 * @param int $month
 * @param int $day
 * @param int $date_format
 * @return string
 */
function format_short_date_string($year, $month, $day, $date_format)
{
	switch($date_format) {
		case 0: // Month Day Year
			return "$month/$day/$year";
		case 1: // Year Month Day
			return "$year-$month-$day";
		case 2: // Day Month Year
			return "$day-$month-$year";
		default:
			soft_error("Invalid date_format");
	}
}

/**
 * @param int $hour
 * @param int $minute
 * @param bool $hour24
 * @return string
 */
function format_time_string($hour, $minute, $hour24)
{
	if(!$hour24) {
		if($hour >= 12) {
			$hour -= 12;
			$pm = ' PM';
		} else {
			$pm = ' AM';
		}
		if($hour == 0) {
			$hour = 12;
		}
	} else {
		$pm = '';
	}

	return sprintf('%d:%02d%s', $hour, $minute, $pm);
}

// called when some error happens
/**
 * @param string $str
 */
function display_error($str)
{
	echo '<html><head><title>', __('Error'), "</title></head>\n",
	     '<body><h1>', __('Software Error'), "</h1>\n",
	     "<h2>", __('Message:'), "</h2>\n",
	     "<pre>$str</pre>\n",
	     "<h2>", __('Backtrace'), "</h2>\n",
	     "<ol>\n";
	foreach(debug_backtrace() as $bt) {
		echo "<li>$bt[file]:$bt[line] - $bt[function]</li>\n";
	}
	echo "</ol>\n",
	     "</body></html>\n";
	exit;
}

/**
 * @param int $timestamp
 * @return int
 */
function days_in_year($timestamp) {
	return 365 + date('L', $timestamp);
}

/**
 * @param int|null $stamp
 * @param int $days
 * @return false|int|null
 */
function add_days($stamp, $days)
{
    if ($stamp == null)
        return null;

	return mktime(date('H', $stamp), date('i', $stamp), date('s', $stamp),
			date('n', $stamp), date('j', $stamp) + $days,
			date('Y', $stamp));
}

/**
 * @param int|null $stamp
 * @param int $months
 * @return false|int|null
 */
function add_months($stamp, $months)
{
    if ($stamp == null)
        return null;

	return mktime(date('H', $stamp), date('i', $stamp), date('s', $stamp),
			date('m', $stamp) + $months, date('d', $stamp),
			date('Y', $stamp));
}

/**
 * @param int|null $stamp
 * @param int $years
 * @return false|int|null
 */
function add_years($stamp, $years)
{
    if ($stamp == null)
        return null;

	return mktime(date('H', $stamp), date('i', $stamp), date('s', $stamp),
			date('m', $stamp), date('d', $stamp),
			date('Y', $stamp) + $years);
}

/**
 * @param int $ts1
 * @param int $ts2
 * @return int
 */
function days_between($ts1, $ts2) {
	// First date always comes first
	if($ts1 > $ts2)
		return -days_between($ts2, $ts1);

	// If we're in different years, keep adding years until we're in
	//   the same year
	if(date('Y', $ts2) > date('Y', $ts1))
		return days_in_year($ts1)
			+ days_between(add_years($ts1, 1), $ts2);

	// The years are equal, subtract day of the year of each
    return intval(date('z', $ts2)) - intval(date('z', $ts1));
}

// Stolen from Drupal
function phpc_random_bytes($count) {
	// $random_state does not use drupal_static as it stores random bytes.
	static $random_state, $bytes, $php_compatible;
	// Initialize on the first call. The contents of $_SERVER includes a
	// mix of user-specific and system information that varies a little
	// with each page.
	if (!isset($random_state)) {
		$random_state = print_r($_SERVER, TRUE);
		if (function_exists('getmypid')) {
			// Further initialize with the somewhat random PHP process ID.
			$random_state .= getmypid();
		}
		$bytes = '';
	}
	if (strlen($bytes) < $count) {
		// PHP versions prior 5.3.4 experienced openssl_random_pseudo_bytes()
		// locking on Windows and rendered it unusable.
		if (!isset($php_compatible)) {
			$php_compatible = version_compare(PHP_VERSION, '5.3.4', '>=');
		}
		// /dev/urandom is available on many *nix systems and is
		// considered the best commonly available pseudo-random source.
		if ($fh = @fopen('/dev/urandom', 'rb')) {
			// PHP only performs buffered reads, so in reality it
			// will always read at least 4096 bytes. Thus, it costs
			// nothing extra to read and store that much so as to
			// speed any additional invocations.
			$bytes .= fread($fh, max(4096, $count));
			fclose($fh);
		}
		// openssl_random_pseudo_bytes() will find entropy in a
		// system-dependent  way.
		elseif ($php_compatible && function_exists('openssl_random_pseudo_bytes')) {
			$bytes .= openssl_random_pseudo_bytes($count - strlen($bytes));
		}
		// If /dev/urandom is not available or returns no bytes, this
		// loop will generate a good set of pseudo-random bytes on any
		// system.
		// Note that it may be important that our $random_state is
		// passed through hash() prior to being rolled into $output,
		// that the two hash()
		// invocations are different, and that the extra input into the
		// first one - the microtime() - is prepended rather than
		// appended. This is to avoid directly leaking $random_state
		// via the $output stream, which could allow for trivial
		// prediction of further "random" numbers.
		while (strlen($bytes) < $count) {
			$random_state = hash('sha256', microtime() . mt_rand() . $random_state);
			$bytes .= hash('sha256', mt_rand() . $random_state, TRUE);
		}
	}
	$output = substr($bytes, 0, $count);
	$bytes = substr($bytes, $count);
	return $output;
}

// Adapted from Drupal
function phpc_get_private_key() {
	static $key;

	if(!isset($key))
		$key = phpc_hash_base64(phpc_random_bytes(55));

	return $key;
}

function phpc_get_token($value='') {
	return phpc_hmac_base64($value, session_id() . phpc_get_private_key()
			. phpc_get_hash_salt());
}

// Stolen from Drupal
function phpc_hmac_base64($data, $key) {
	$hmac = base64_encode(hash_hmac('sha256', $data, $key, TRUE));
	// Modify the hmac so it's safe to use in URLs.
	return strtr($hmac, array('+' => '-', '/' => '_', '=' => ''));
}

// Stolen from Drupal
function phpc_hash_base64($data) {
	$hash = base64_encode(hash('sha256', $data, TRUE));
	// Modify the hash so it's safe to use in URLs.
	return strtr($hash, array('+' => '-', '/' => '_', '=' => ''));
}

// Adapted from Drupal
function phpc_get_hash_salt() {
	return hash('sha256', SQL_HOST . SQL_USER . SQL_PASSWD . SQL_DATABASE . SQL_PREFIX);
}

function phpc_html_escape($str) {
	return htmlspecialchars($str, ENT_COMPAT, "UTF-8");
}
/*
 * Timepicker stylesheet
 * Highly inspired from datepicker
 * FG - Nov 2010 - Web3R 
 *
 * version 0.0.3 : Fixed some settings, more dynamic
 * version 0.0.4 : Removed width:100% on tables
 * version 0.1.1 : set width 0 on tables to fix an ie6 bug
 */

.ui-timepicker-inline { display: inline; }

#ui-timepicker-div { padding: 0.2em }
.ui-timepicker-table { display: inline-table; width: 0; }
.ui-timepicker-table table { margin:0.15em 0 0 0; border-collapse: collapse; }

.ui-timepicker-hours, .ui-timepicker-minutes { padding: 0.2em;  }

.ui-timepicker-table .ui-timepicker-title { line-height: 1.8em; text-align: center; }
.ui-timepicker-table td { padding: 0.1em; width: 2.2em; }
.ui-timepicker-table th.periods { padding: 0.1em; width: 2.2em; }

/* span for disabled cells */
.ui-timepicker-table td span {
	display:block;
    padding:0.2em 0.3em 0.2em 0.5em;
    width: 1.2em;

    text-align:right;
    text-decoration:none;
}
/* anchors for clickable cells */
.ui-timepicker-table td a {
    display:block;
    padding:0.2em 0.3em 0.2em 0.5em;
    width: 1.2em;

    text-align:right;
    text-decoration:none;
}
/*!
 * hoverIntent r7 // 2013.03.11 // jQuery 1.9.1+
 * http://cherne.net/brian/resources/jquery.hoverIntent.html
 *
 * You may use hoverIntent under the terms of the MIT license.
 * Copyright 2007, 2013 Brian Cherne
 */
(function(e){e.fn.hoverIntent=function(t,n,r){var i={interval:100,sensitivity:7,timeout:0};if(typeof t==="object"){i=e.extend(i,t)}else if(e.isFunction(n)){i=e.extend(i,{over:t,out:n,selector:r})}else{i=e.extend(i,{over:t,out:t,selector:n})}var s,o,u,a;var f=function(e){s=e.pageX;o=e.pageY};var l=function(t,n){n.hoverIntent_t=clearTimeout(n.hoverIntent_t);if(Math.abs(u-s)+Math.abs(a-o)<i.sensitivity){e(n).off("mousemove.hoverIntent",f);n.hoverIntent_s=1;return i.over.apply(n,[t])}else{u=s;a=o;n.hoverIntent_t=setTimeout(function(){l(t,n)},i.interval)}};var c=function(e,t){t.hoverIntent_t=clearTimeout(t.hoverIntent_t);t.hoverIntent_s=0;return i.out.apply(t,[e])};var h=function(t){var n=jQuery.extend({},t);var r=this;if(r.hoverIntent_t){r.hoverIntent_t=clearTimeout(r.hoverIntent_t)}if(t.type=="mouseenter"){u=n.pageX;a=n.pageY;e(r).on("mousemove.hoverIntent",f);if(r.hoverIntent_s!=1){r.hoverIntent_t=setTimeout(function(){l(n,r)},i.interval)}}else{e(r).off("mousemove.hoverIntent",f);if(r.hoverIntent_s==1){r.hoverIntent_t=setTimeout(function(){c(n,r)},i.timeout)}}};return this.on({"mouseenter.hoverIntent":h,"mouseleave.hoverIntent":h},i.selector)}})(jQuery)
/*
 * jQuery UI Timepicker 0.3.1
 *
 * Copyright 2010-2011, Francois Gelinas
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://fgelinas.com/code/timepicker
 *
 * Depends:
 *	jquery.ui.core.js
 *  jquery.ui.position.js (only if position settngs are used)
 *
 * Change version 0.1.0 - moved the t-rex up here
 *
                                                  ____
       ___                                      .-~. /_"-._
      `-._~-.                                  / /_ "~o\  :Y
          \  \                                / : \~x.  ` ')
           ]  Y                              /  |  Y< ~-.__j
          /   !                        _.--~T : l  l<  /.-~
         /   /                 ____.--~ .   ` l /~\ \<|Y
        /   /             .-~~"        /| .    ',-~\ \L|
       /   /             /     .^   \ Y~Y \.^>/l_   "--'
      /   Y           .-"(  .  l__  j_j l_/ /~_.-~    .
     Y    l          /    \  )    ~~~." / `/"~ / \.__/l_
     |     \     _.-"      ~-{__     l  :  l._Z~-.___.--~
     |      ~---~           /   ~~"---\_  ' __[>
     l  .                _.^   ___     _>-y~
      \  \     .      .-~   .-~   ~>--"  /
       \  ~---"            /     ./  _.-'
        "-.,_____.,_  _.--~\     _.-~
                    ~~     (   _}       -Row
                           `. ~(
                             )  \
                            /,`--'~\--'~\
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             ->T-Rex<-
*/

(function ($) {

    $.extend($.ui, { timepicker: { version: "0.3.2"} });

    var PROP_NAME = 'timepicker',
        tpuuid = new Date().getTime();

    /* Time picker manager.
    Use the singleton instance of this class, $.timepicker, to interact with the time picker.
    Settings for (groups of) time pickers are maintained in an instance object,
    allowing multiple different settings on the same page. */

    function Timepicker() {
        this.debug = true; // Change this to true to start debugging
        this._curInst = null; // The current instance in use
        this._disabledInputs = []; // List of time picker inputs that have been disabled
        this._timepickerShowing = false; // True if the popup picker is showing , false if not
        this._inDialog = false; // True if showing within a "dialog", false if not
        this._dialogClass = 'ui-timepicker-dialog'; // The name of the dialog marker class
        this._mainDivId = 'ui-timepicker-div'; // The ID of the main timepicker division
        this._inlineClass = 'ui-timepicker-inline'; // The name of the inline marker class
        this._currentClass = 'ui-timepicker-current'; // The name of the current hour / minutes marker class
        this._dayOverClass = 'ui-timepicker-days-cell-over'; // The name of the day hover marker class

        this.regional = []; // Available regional settings, indexed by language code
        this.regional[''] = { // Default regional settings
            hourText: 'Hour',           // Display text for hours section
            minuteText: 'Minute',       // Display text for minutes link
            amPmText: ['AM', 'PM'],     // Display text for AM PM
            closeButtonText: 'Done',        // Text for the confirmation button (ok button)
            nowButtonText: 'Now',           // Text for the now button
            deselectButtonText: 'Deselect'  // Text for the deselect button
        };
        this._defaults = { // Global defaults for all the time picker instances
            showOn: 'focus',    // 'focus' for popup on focus,
                                // 'button' for trigger button, or 'both' for either (not yet implemented)
            button: null,                   // 'button' element that will trigger the timepicker
            showAnim: 'fadeIn',             // Name of jQuery animation for popup
            showOptions: {},                // Options for enhanced animations
            appendText: '',                 // Display text following the input box, e.g. showing the format

            beforeShow: null,               // Define a callback function executed before the timepicker is shown
            onSelect: null,                 // Define a callback function when a hour / minutes is selected
            onClose: null,                  // Define a callback function when the timepicker is closed

            timeSeparator: ':',             // The character to use to separate hours and minutes.
            periodSeparator: ' ',           // The character to use to separate the time from the time period.
            showPeriod: false,              // Define whether or not to show AM/PM with selected time
            showPeriodLabels: true,         // Show the AM/PM labels on the left of the time picker
            showLeadingZero: true,          // Define whether or not to show a leading zero for hours < 10. [true/false]
            showMinutesLeadingZero: true,   // Define whether or not to show a leading zero for minutes < 10.
            altField: '',                   // Selector for an alternate field to store selected time into
            defaultTime: 'now',             // Used as default time when input field is empty or for inline timePicker
                                            // (set to 'now' for the current time, '' for no highlighted time)
            myPosition: 'left top',         // Position of the dialog relative to the input.
                                            // see the position utility for more info : http://jqueryui.com/demos/position/
            atPosition: 'left bottom',      // Position of the input element to match
                                            // Note : if the position utility is not loaded, the timepicker will attach left top to left bottom
            //NEW: 2011-02-03
            onHourShow: null,			    // callback for enabling / disabling on selectable hours  ex : function(hour) { return true; }
            onMinuteShow: null,             // callback for enabling / disabling on time selection  ex : function(hour,minute) { return true; }

            hours: {
                starts: 0,                  // first displayed hour
                ends: 23                    // last displayed hour
            },
            minutes: {
                starts: 0,                  // first displayed minute
                ends: 55,                   // last displayed minute
                interval: 5                 // interval of displayed minutes
            },
            rows: 4,                        // number of rows for the input tables, minimum 2, makes more sense if you use multiple of 2
            // 2011-08-05 0.2.4
            showHours: true,                // display the hours section of the dialog
            showMinutes: true,              // display the minute section of the dialog
            optionalMinutes: false,         // optionally parse inputs of whole hours with minutes omitted
						
            // buttons
            showCloseButton: false,         // shows an OK button to confirm the edit
            showNowButton: false,           // Shows the 'now' button
            showDeselectButton: false       // Shows the deselect time button

        };
        $.extend(this._defaults, this.regional['']);

        this.tpDiv = $('<div id="' + this._mainDivId + '" class="ui-timepicker ui-widget ui-helper-clearfix ui-corner-all " style="display: none"></div>');
    }

    $.extend(Timepicker.prototype, {
        /* Class name added to elements to indicate already configured with a time picker. */
        markerClassName: 'hasTimepicker',

        /* Debug logging (if enabled). */
        log: function () {
            if (this.debug)
                console.log.apply('', arguments);
        },

        _widgetTimepicker: function () {
            return this.tpDiv;
        },

        /* Override the default settings for all instances of the time picker.
        @param  settings  object - the new settings to use as defaults (anonymous object)
        @return the manager object */
        setDefaults: function (settings) {
            extendRemove(this._defaults, settings || {});
            return this;
        },

        /* Attach the time picker to a jQuery selection.
        @param  target    element - the target input field or division or span
        @param  settings  object - the new settings to use for this time picker instance (anonymous) */
        _attachTimepicker: function (target, settings) {
            // check for settings on the control itself - in namespace 'time:'
            var inlineSettings = null;
            for (var attrName in this._defaults) {
                var attrValue = target.getAttribute('time:' + attrName);
                if (attrValue) {
                    inlineSettings = inlineSettings || {};
                    try {
                        inlineSettings[attrName] = eval(attrValue);
                    } catch (err) {
                        inlineSettings[attrName] = attrValue;
                    }
                }
            }
            var nodeName = target.nodeName.toLowerCase();
            var inline = (nodeName == 'div' || nodeName == 'span');

            if (!target.id) {
                this.uuid += 1;
                target.id = 'tp' + this.uuid;
            }
            var inst = this._newInst($(target), inline);
            inst.settings = $.extend({}, settings || {}, inlineSettings || {});
            if (nodeName == 'input') {
                this._connectTimepicker(target, inst);
                // init inst.hours and inst.minutes from the input value
                this._setTimeFromField(inst);
            } else if (inline) {
                this._inlineTimepicker(target, inst);
            }


        },

        /* Create a new instance object. */
        _newInst: function (target, inline) {
            var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
            return {
                id: id, input: target, // associated target
                inline: inline, // is timepicker inline or not :
                tpDiv: (!inline ? this.tpDiv : // presentation div
                    $('<div class="' + this._inlineClass + ' ui-timepicker ui-widget  ui-helper-clearfix"></div>'))
            };
        },

        /* Attach the time picker to an input field. */
        _connectTimepicker: function (target, inst) {
            var input = $(target);
            inst.append = $([]);
            inst.trigger = $([]);
            if (input.hasClass(this.markerClassName)) { return; }
            this._attachments(input, inst);
            input.addClass(this.markerClassName).
                keydown(this._doKeyDown).
                keyup(this._doKeyUp).
                bind("setData.timepicker", function (event, key, value) {
                    inst.settings[key] = value;
                }).
                bind("getData.timepicker", function (event, key) {
                    return this._get(inst, key);
                });
            $.data(target, PROP_NAME, inst);
        },

        /* Handle keystrokes. */
        _doKeyDown: function (event) {
            var inst = $.timepicker._getInst(event.target);
            var handled = true;
            inst._keyEvent = true;
            if ($.timepicker._timepickerShowing) {
                switch (event.keyCode) {
                    case 9: $.timepicker._hideTimepicker();
                        handled = false;
                        break; // hide on tab out
                    case 13:
                        $.timepicker._updateSelectedValue(inst);
                        $.timepicker._hideTimepicker();
                            
						return false; // don't submit the form
						break; // select the value on enter
                    case 27: $.timepicker._hideTimepicker();
                        break; // hide on escape
                    default: handled = false;
                }
            }
            else if (event.keyCode == 36 && event.ctrlKey) { // display the time picker on ctrl+home
                $.timepicker._showTimepicker(this);
            }
            else {
                handled = false;
            }
            if (handled) {
                event.preventDefault();
                event.stopPropagation();
            }
        },

        /* Update selected time on keyUp */
        /* Added verion 0.0.5 */
        _doKeyUp: function (event) {
            var inst = $.timepicker._getInst(event.target);
            $.timepicker._setTimeFromField(inst);
            $.timepicker._updateTimepicker(inst);
        },

        /* Make attachments based on settings. */
        _attachments: function (input, inst) {
            var appendText = this._get(inst, 'appendText');
            var isRTL = this._get(inst, 'isRTL');
            if (inst.append) { inst.append.remove(); }
            if (appendText) {
                inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
                input[isRTL ? 'before' : 'after'](inst.append);
            }
            input.unbind('focus.timepicker', this._showTimepicker);
            input.unbind('click.timepicker', this._adjustZIndex);

            if (inst.trigger) { inst.trigger.remove(); }

            var showOn = this._get(inst, 'showOn');
            if (showOn == 'focus' || showOn == 'both') { // pop-up time picker when in the marked field
                input.bind("focus.timepicker", this._showTimepicker);
                input.bind("click.timepicker", this._adjustZIndex);
            }
            if (showOn == 'button' || showOn == 'both') { // pop-up time picker when 'button' element is clicked
                var button = this._get(inst, 'button');
                $(button).bind("click.timepicker", function () {
                    if ($.timepicker._timepickerShowing && $.timepicker._lastInput == input[0]) {
                        $.timepicker._hideTimepicker();
                    } else if (!inst.input.is(':disabled')) {
                        $.timepicker._showTimepicker(input[0]);
                    }
                    return false;
                });

            }
        },


        /* Attach an inline time picker to a div. */
        _inlineTimepicker: function(target, inst) {
            var divSpan = $(target);
            if (divSpan.hasClass(this.markerClassName))
                return;
            divSpan.addClass(this.markerClassName).append(inst.tpDiv).
                bind("setData.timepicker", function(event, key, value){
                    inst.settings[key] = value;
                }).bind("getData.timepicker", function(event, key){
                    return this._get(inst, key);
                });
            $.data(target, PROP_NAME, inst);

            this._setTimeFromField(inst);
            this._updateTimepicker(inst);
            inst.tpDiv.show();
        },

        _adjustZIndex: function(input) {
            input = input.target || input;
            var inst = $.timepicker._getInst(input);
            inst.tpDiv.css('zIndex', $.timepicker._getZIndex(input) +1);
        },

        /* Pop-up the time picker for a given input field.
        @param  input  element - the input field attached to the time picker or
        event - if triggered by focus */
        _showTimepicker: function (input) {
            input = input.target || input;
            if (input.nodeName.toLowerCase() != 'input') { input = $('input', input.parentNode)[0]; } // find from button/image trigger

            if ($.timepicker._isDisabledTimepicker(input) || $.timepicker._lastInput == input) { return; } // already here

            // fix v 0.0.8 - close current timepicker before showing another one
            $.timepicker._hideTimepicker();

            var inst = $.timepicker._getInst(input);
            if ($.timepicker._curInst && $.timepicker._curInst != inst) {
                $.timepicker._curInst.tpDiv.stop(true, true);
            }
            var beforeShow = $.timepicker._get(inst, 'beforeShow');
            extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
            inst.lastVal = null;
            $.timepicker._lastInput = input;

            $.timepicker._setTimeFromField(inst);

            // calculate default position
            if ($.timepicker._inDialog) { input.value = ''; } // hide cursor
            if (!$.timepicker._pos) { // position below input
                $.timepicker._pos = $.timepicker._findPos(input);
                $.timepicker._pos[1] += input.offsetHeight; // add the height
            }
            var isFixed = false;
            $(input).parents().each(function () {
                isFixed |= $(this).css('position') == 'fixed';
                return !isFixed;
            });
            if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
                $.timepicker._pos[0] -= document.documentElement.scrollLeft;
                $.timepicker._pos[1] -= document.documentElement.scrollTop;
            }

            var offset = { left: $.timepicker._pos[0], top: $.timepicker._pos[1] };

            $.timepicker._pos = null;
            // determine sizing offscreen
            inst.tpDiv.css({ position: 'absolute', display: 'block', top: '-1000px' });
            $.timepicker._updateTimepicker(inst);


            // position with the ui position utility, if loaded
            if ( ( ! inst.inline )  && ( typeof $.ui.position == 'object' ) ) {
                inst.tpDiv.position({
                    of: inst.input,
                    my: $.timepicker._get( inst, 'myPosition' ),
                    at: $.timepicker._get( inst, 'atPosition' ),
                    // offset: $( "#offset" ).val(),
                    // using: using,
                    collision: 'flip'
                });
                var offset = inst.tpDiv.offset();
                $.timepicker._pos = [offset.top, offset.left];
            }


            // reset clicked state
            inst._hoursClicked = false;
            inst._minutesClicked = false;

            // fix width for dynamic number of time pickers
            // and adjust position before showing
            offset = $.timepicker._checkOffset(inst, offset, isFixed);
            inst.tpDiv.css({ position: ($.timepicker._inDialog && $.blockUI ?
			    'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
                left: offset.left + 'px', top: offset.top + 'px'
            });
            if ( ! inst.inline ) {
                var showAnim = $.timepicker._get(inst, 'showAnim');
                var duration = $.timepicker._get(inst, 'duration');

                var postProcess = function () {
                    $.timepicker._timepickerShowing = true;
                    var borders = $.timepicker._getBorders(inst.tpDiv);
                    inst.tpDiv.find('iframe.ui-timepicker-cover'). // IE6- only
					css({ left: -borders[0], top: -borders[1],
					    width: inst.tpDiv.outerWidth(), height: inst.tpDiv.outerHeight()
					});
                };

                // Fixed the zIndex problem for real (I hope) - FG - v 0.2.9
                $.timepicker._adjustZIndex(input);
                //inst.tpDiv.css('zIndex', $.timepicker._getZIndex(input) +1);

                if ($.effects && $.effects[showAnim]) {
                    inst.tpDiv.show(showAnim, $.timepicker._get(inst, 'showOptions'), duration, postProcess);
                }
                else {
                    inst.tpDiv.show((showAnim ? duration : null), postProcess);
                }
                if (!showAnim || !duration) { postProcess(); }
                if (inst.input.is(':visible') && !inst.input.is(':disabled')) { inst.input.focus(); }
                $.timepicker._curInst = inst;
            }
        },

        // This is a copy of the zIndex function of UI core 1.8.??
        // Copied in the timepicker to stay backward compatible.
        _getZIndex: function (target) {
            var elem = $( target ), position, value;
            while ( elem.length && elem[ 0 ] !== document ) {
                position = elem.css( "position" );
                if ( position === "absolute" || position === "relative" || position === "fixed" ) {
                    value = parseInt( elem.css( "zIndex" ), 10 );
                    if ( !isNaN( value ) && value !== 0 ) {
                        return value;
                    }
                }
                elem = elem.parent();
            }
        },

        /* Refresh the time picker
           @param   target  element - The target input field or inline container element. */
        _refreshTimepicker: function(target) {
            var inst = this._getInst(target);
            if (inst) {
                this._updateTimepicker(inst);
            }
        },


        /* Generate the time picker content. */
        _updateTimepicker: function (inst) {
            inst.tpDiv.empty().append(this._generateHTML(inst));
            this._rebindDialogEvents(inst);

        },

        _rebindDialogEvents: function (inst) {
            var borders = $.timepicker._getBorders(inst.tpDiv),
                self = this;
            inst.tpDiv
			.find('iframe.ui-timepicker-cover') // IE6- only
				.css({ left: -borders[0], top: -borders[1],
				    width: inst.tpDiv.outerWidth(), height: inst.tpDiv.outerHeight()
				})
			.end()
            // after the picker html is appended bind the click & double click events (faster in IE this way
            // then letting the browser interpret the inline events)
            // the binding for the minute cells also exists in _updateMinuteDisplay
            .find('.ui-timepicker-minute-cell')
                .unbind()
                .bind("click", { fromDoubleClick:false }, $.proxy($.timepicker.selectMinutes, this))
                .bind("dblclick", { fromDoubleClick:true }, $.proxy($.timepicker.selectMinutes, this))
            .end()
            .find('.ui-timepicker-hour-cell')
                .unbind()
                .bind("click", { fromDoubleClick:false }, $.proxy($.timepicker.selectHours, this))
                .bind("dblclick", { fromDoubleClick:true }, $.proxy($.timepicker.selectHours, this))
            .end()
			.find('.ui-timepicker td a')
                .unbind()
				.bind('mouseout', function () {
				    $(this).removeClass('ui-state-hover');
				    if (this.className.indexOf('ui-timepicker-prev') != -1) $(this).removeClass('ui-timepicker-prev-hover');
				    if (this.className.indexOf('ui-timepicker-next') != -1) $(this).removeClass('ui-timepicker-next-hover');
				})
				.bind('mouseover', function () {
				    if ( ! self._isDisabledTimepicker(inst.inline ? inst.tpDiv.parent()[0] : inst.input[0])) {
				        $(this).parents('.ui-timepicker-calendar').find('a').removeClass('ui-state-hover');
				        $(this).addClass('ui-state-hover');
				        if (this.className.indexOf('ui-timepicker-prev') != -1) $(this).addClass('ui-timepicker-prev-hover');
				        if (this.className.indexOf('ui-timepicker-next') != -1) $(this).addClass('ui-timepicker-next-hover');
				    }
				})
			.end()
			.find('.' + this._dayOverClass + ' a')
				.trigger('mouseover')
			.end()
            .find('.ui-timepicker-now').bind("click", function(e) {
                    $.timepicker.selectNow(e);
            }).end()
            .find('.ui-timepicker-deselect').bind("click",function(e) {
                    $.timepicker.deselectTime(e);
            }).end()
            .find('.ui-timepicker-close').bind("click",function(e) {
                    $.timepicker._hideTimepicker();
            }).end();
        },

        /* Generate the HTML for the current state of the time picker. */
        _generateHTML: function (inst) {

            var h, m, row, col, html, hoursHtml, minutesHtml = '',
                showPeriod = (this._get(inst, 'showPeriod') == true),
                showPeriodLabels = (this._get(inst, 'showPeriodLabels') == true),
                showLeadingZero = (this._get(inst, 'showLeadingZero') == true),
                showHours = (this._get(inst, 'showHours') == true),
                showMinutes = (this._get(inst, 'showMinutes') == true),
                amPmText = this._get(inst, 'amPmText'),
                rows = this._get(inst, 'rows'),
                amRows = 0,
                pmRows = 0,
                amItems = 0,
                pmItems = 0,
                amFirstRow = 0,
                pmFirstRow = 0,
                hours = Array(),
                hours_options = this._get(inst, 'hours'),
                hoursPerRow = null,
                hourCounter = 0,
                hourLabel = this._get(inst, 'hourText'),
                showCloseButton = this._get(inst, 'showCloseButton'),
                closeButtonText = this._get(inst, 'closeButtonText'),
                showNowButton = this._get(inst, 'showNowButton'),
                nowButtonText = this._get(inst, 'nowButtonText'),
                showDeselectButton = this._get(inst, 'showDeselectButton'),
                deselectButtonText = this._get(inst, 'deselectButtonText'),
                showButtonPanel = showCloseButton || showNowButton || showDeselectButton;
            


            // prepare all hours and minutes, makes it easier to distribute by rows
            for (h = hours_options.starts; h <= hours_options.ends; h++) {
                hours.push (h);
            }
            hoursPerRow = Math.ceil(hours.length / rows); // always round up

            if (showPeriodLabels) {
                for (hourCounter = 0; hourCounter < hours.length; hourCounter++) {
                    if (hours[hourCounter] < 12) {
                        amItems++;
                    }
                    else {
                        pmItems++;
                    }
                }
                hourCounter = 0; 

                amRows = Math.floor(amItems / hours.length * rows);
                pmRows = Math.floor(pmItems / hours.length * rows);

                // assign the extra row to the period that is more densely populated
                if (rows != amRows + pmRows) {
                    // Make sure: AM Has Items and either PM Does Not, AM has no rows yet, or AM is more dense
                    if (amItems && (!pmItems || !amRows || (pmRows && amItems / amRows >= pmItems / pmRows))) {
                        amRows++;
                    } else {
                        pmRows++;
                    }
                }
                amFirstRow = Math.min(amRows, 1);
                pmFirstRow = amRows + 1;

                if (amRows == 0) {
                    hoursPerRow = Math.ceil(pmItems / pmRows);
                } else if (pmRows == 0) {
                    hoursPerRow = Math.ceil(amItems / amRows);
                } else {
                    hoursPerRow = Math.ceil(Math.max(amItems / amRows, pmItems / pmRows));
                }
            }


            html = '<table class="ui-timepicker-table ui-widget-content ui-corner-all"><tr>';

            if (showHours) {

                html += '<td class="ui-timepicker-hours">' +
                        '<div class="ui-timepicker-title ui-widget-header ui-helper-clearfix ui-corner-all">' +
                        hourLabel +
                        '</div>' +
                        '<table class="ui-timepicker">';

                for (row = 1; row <= rows; row++) {
                    html += '<tr>';
                    // AM
                    if (row == amFirstRow && showPeriodLabels) {
                        html += '<th rowspan="' + amRows.toString() + '" class="periods" scope="row">' + amPmText[0] + '</th>';
                    }
                    // PM
                    if (row == pmFirstRow && showPeriodLabels) {
                        html += '<th rowspan="' + pmRows.toString() + '" class="periods" scope="row">' + amPmText[1] + '</th>';
                    }
                    for (col = 1; col <= hoursPerRow; col++) {
                        if (showPeriodLabels && row < pmFirstRow && hours[hourCounter] >= 12) {
                            html += this._generateHTMLHourCell(inst, undefined, showPeriod, showLeadingZero);
                        } else {
                            html += this._generateHTMLHourCell(inst, hours[hourCounter], showPeriod, showLeadingZero);
                            hourCounter++;
                        }
                    }
                    html += '</tr>';
                }
                html += '</table>' + // Close the hours cells table
                        '</td>'; // Close the Hour td
            }

            if (showMinutes) {
                html += '<td class="ui-timepicker-minutes">';
                html += this._generateHTMLMinutes(inst);
                html += '</td>';
            }
            
            html += '</tr>';


            if (showButtonPanel) {
                var buttonPanel = '<tr><td colspan="3"><div class="ui-timepicker-buttonpane ui-widget-content">';
                if (showNowButton) {
                    buttonPanel += '<button type="button" class="ui-timepicker-now ui-state-default ui-corner-all" '
                                   + ' data-timepicker-instance-id="#' + inst.id.replace(/\\\\/g,"\\") + '" >'
                                   + nowButtonText + '</button>';
                }
                if (showDeselectButton) {
                    buttonPanel += '<button type="button" class="ui-timepicker-deselect ui-state-default ui-corner-all" '
                                   + ' data-timepicker-instance-id="#' + inst.id.replace(/\\\\/g,"\\") + '" >'
                                   + deselectButtonText + '</button>';
                }
                if (showCloseButton) {
                    buttonPanel += '<button type="button" class="ui-timepicker-close ui-state-default ui-corner-all" '
                                   + ' data-timepicker-instance-id="#' + inst.id.replace(/\\\\/g,"\\") + '" >'
                                   + closeButtonText + '</button>';
                }

                html += buttonPanel + '</div></td></tr>';
            }
            html += '</table>';

            return html;
        },

        /* Special function that update the minutes selection in currently visible timepicker
         * called on hour selection when onMinuteShow is defined  */
        _updateMinuteDisplay: function (inst) {
            var newHtml = this._generateHTMLMinutes(inst);
            inst.tpDiv.find('td.ui-timepicker-minutes').html(newHtml);
            this._rebindDialogEvents(inst);
                // after the picker html is appended bind the click & double click events (faster in IE this way
                // then letting the browser interpret the inline events)
                // yes I know, duplicate code, sorry
/*                .find('.ui-timepicker-minute-cell')
                    .bind("click", { fromDoubleClick:false }, $.proxy($.timepicker.selectMinutes, this))
                    .bind("dblclick", { fromDoubleClick:true }, $.proxy($.timepicker.selectMinutes, this));
*/

        },

        /*
         * Generate the minutes table
         * This is separated from the _generateHTML function because is can be called separately (when hours changes)
         */
        _generateHTMLMinutes: function (inst) {

            var m, row, html = '',
                rows = this._get(inst, 'rows'),
                minutes = Array(),
                minutes_options = this._get(inst, 'minutes'),
                minutesPerRow = null,
                minuteCounter = 0,
                showMinutesLeadingZero = (this._get(inst, 'showMinutesLeadingZero') == true),
                onMinuteShow = this._get(inst, 'onMinuteShow'),
                minuteLabel = this._get(inst, 'minuteText');

            if ( ! minutes_options.starts) {
                minutes_options.starts = 0;
            }
            if ( ! minutes_options.ends) {
                minutes_options.ends = 59;
            }
            for (m = minutes_options.starts; m <= minutes_options.ends; m += minutes_options.interval) {
                minutes.push(m);
            }
            minutesPerRow = Math.round(minutes.length / rows + 0.49); // always round up

            /*
             * The minutes table
             */
            // if currently selected minute is not enabled, we have a problem and need to select a new minute.
            if (onMinuteShow &&
                (onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours , inst.minutes]) == false) ) {
                // loop minutes and select first available
                for (minuteCounter = 0; minuteCounter < minutes.length; minuteCounter += 1) {
                    m = minutes[minuteCounter];
                    if (onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours, m])) {
                        inst.minutes = m;
                        break;
                    }
                }
            }



            html += '<div class="ui-timepicker-title ui-widget-header ui-helper-clearfix ui-corner-all">' +
                    minuteLabel +
                    '</div>' +
                    '<table class="ui-timepicker">';
            
            minuteCounter = 0;
            for (row = 1; row <= rows; row++) {
                html += '<tr>';
                while (minuteCounter < row * minutesPerRow) {
                    var m = minutes[minuteCounter];
                    var displayText = '';
                    if (m !== undefined ) {
                        displayText = (m < 10) && showMinutesLeadingZero ? "0" + m.toString() : m.toString();
                    }
                    html += this._generateHTMLMinuteCell(inst, m, displayText);
                    minuteCounter++;
                }
                html += '</tr>';
            }

            html += '</table>';

            return html;
        },

        /* Generate the content of a "Hour" cell */
        _generateHTMLHourCell: function (inst, hour, showPeriod, showLeadingZero) {

            var displayHour = hour;
            if ((hour > 12) && showPeriod) {
                displayHour = hour - 12;
            }
            if ((displayHour == 0) && showPeriod) {
                displayHour = 12;
            }
            if ((displayHour < 10) && showLeadingZero) {
                displayHour = '0' + displayHour;
            }

            var html = "";
            var enabled = true;
            var onHourShow = this._get(inst, 'onHourShow');		//custom callback

            if (hour == undefined) {
                html = '<td><span class="ui-state-default ui-state-disabled">&nbsp;</span></td>';
                return html;
            }

            if (onHourShow) {
            	enabled = onHourShow.apply((inst.input ? inst.input[0] : null), [hour]);
            }

            if (enabled) {
                html = '<td class="ui-timepicker-hour-cell" data-timepicker-instance-id="#' + inst.id.replace(/\\\\/g,"\\") + '" data-hour="' + hour.toString() + '">' +
                   '<a class="ui-state-default ' +
                   (hour == inst.hours ? 'ui-state-active' : '') +
                   '">' +
                   displayHour.toString() +
                   '</a></td>';
            }
            else {
            	html =
            		'<td>' +
		                '<span class="ui-state-default ui-state-disabled ' +
		                (hour == inst.hours ? ' ui-state-active ' : ' ') +
		                '">' +
		                displayHour.toString() +
		                '</span>' +
		            '</td>';
            }
            return html;
        },

        /* Generate the content of a "Hour" cell */
        _generateHTMLMinuteCell: function (inst, minute, displayText) {
        	 var html = "";
             var enabled = true;
             var onMinuteShow = this._get(inst, 'onMinuteShow');		//custom callback
             if (onMinuteShow) {
            	 //NEW: 2011-02-03  we should give the hour as a parameter as well!
             	enabled = onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours,minute]);		//trigger callback
             }

             if (minute == undefined) {
                 html = '<td><span class="ui-state-default ui-state-disabled">&nbsp;</span></td>';
                 return html;
             }

             if (enabled) {
	             html = '<td class="ui-timepicker-minute-cell" data-timepicker-instance-id="#' + inst.id.replace(/\\\\/g,"\\") + '" data-minute="' + minute.toString() + '" >' +
	                   '<a class="ui-state-default ' +
	                   (minute == inst.minutes ? 'ui-state-active' : '') +
	                   '" >' +
	                   displayText +
	                   '</a></td>';
             }
             else {

            	html = '<td>' +
	                 '<span class="ui-state-default ui-state-disabled" >' +
	                 	displayText +
	                 '</span>' +
                 '</td>';
             }
             return html;
        },


        /* Detach a timepicker from its control.
           @param  target    element - the target input field or division or span */
        _destroyTimepicker: function(target) {
            var $target = $(target);
            var inst = $.data(target, PROP_NAME);
            if (!$target.hasClass(this.markerClassName)) {
                return;
            }
            var nodeName = target.nodeName.toLowerCase();
            $.removeData(target, PROP_NAME);
            if (nodeName == 'input') {
                inst.append.remove();
                inst.trigger.remove();
                $target.removeClass(this.markerClassName)
                    .unbind('focus.timepicker', this._showTimepicker)
                    .unbind('click.timepicker', this._adjustZIndex);
            } else if (nodeName == 'div' || nodeName == 'span')
                $target.removeClass(this.markerClassName).empty();
        },

        /* Enable the date picker to a jQuery selection.
           @param  target    element - the target input field or division or span */
        _enableTimepicker: function(target) {
            var $target = $(target),
                target_id = $target.attr('id'),
                inst = $.data(target, PROP_NAME);
            
            if (!$target.hasClass(this.markerClassName)) {
                return;
            }
            var nodeName = target.nodeName.toLowerCase();
            if (nodeName == 'input') {
                target.disabled = false;
                var button = this._get(inst, 'button');
                $(button).removeClass('ui-state-disabled').disabled = false;
                inst.trigger.filter('button').
                    each(function() { this.disabled = false; }).end();
            }
            else if (nodeName == 'div' || nodeName == 'span') {
                var inline = $target.children('.' + this._inlineClass);
                inline.children().removeClass('ui-state-disabled');
                inline.find('button').each(
                    function() { this.disabled = false }
                )
            }
            this._disabledInputs = $.map(this._disabledInputs,
                function(value) { return (value == target_id ? null : value); }); // delete entry
        },

        /* Disable the time picker to a jQuery selection.
           @param  target    element - the target input field or division or span */
        _disableTimepicker: function(target) {
            var $target = $(target);
            var inst = $.data(target, PROP_NAME);
            if (!$target.hasClass(this.markerClassName)) {
                return;
            }
            var nodeName = target.nodeName.toLowerCase();
            if (nodeName == 'input') {
                var button = this._get(inst, 'button');

                $(button).addClass('ui-state-disabled').disabled = true;
                target.disabled = true;

                inst.trigger.filter('button').
                    each(function() { this.disabled = true; }).end();

            }
            else if (nodeName == 'div' || nodeName == 'span') {
                var inline = $target.children('.' + this._inlineClass);
                inline.children().addClass('ui-state-disabled');
                inline.find('button').each(
                    function() { this.disabled = true }
                )

            }
            this._disabledInputs = $.map(this._disabledInputs,
                function(value) { return (value == target ? null : value); }); // delete entry
            this._disabledInputs[this._disabledInputs.length] = $target.attr('id');
        },

        /* Is the first field in a jQuery collection disabled as a timepicker?
        @param  target_id element - the target input field or division or span
        @return boolean - true if disabled, false if enabled */
        _isDisabledTimepicker: function (target_id) {
            if ( ! target_id) { return false; }
            for (var i = 0; i < this._disabledInputs.length; i++) {
                if (this._disabledInputs[i] == target_id) { return true; }
            }
            return false;
        },

        /* Check positioning to remain on screen. */
        _checkOffset: function (inst, offset, isFixed) {
            var tpWidth = inst.tpDiv.outerWidth();
            var tpHeight = inst.tpDiv.outerHeight();
            var inputWidth = inst.input ? inst.input.outerWidth() : 0;
            var inputHeight = inst.input ? inst.input.outerHeight() : 0;
            var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
            var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();

            offset.left -= (this._get(inst, 'isRTL') ? (tpWidth - inputWidth) : 0);
            offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
            offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;

            // now check if datepicker is showing outside window viewport - move to a better place if so.
            offset.left -= Math.min(offset.left, (offset.left + tpWidth > viewWidth && viewWidth > tpWidth) ?
			Math.abs(offset.left + tpWidth - viewWidth) : 0);
            offset.top -= Math.min(offset.top, (offset.top + tpHeight > viewHeight && viewHeight > tpHeight) ?
			Math.abs(tpHeight + inputHeight) : 0);

            return offset;
        },

        /* Find an object's position on the screen. */
        _findPos: function (obj) {
            var inst = this._getInst(obj);
            var isRTL = this._get(inst, 'isRTL');
            while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) {
                obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
            }
            var position = $(obj).offset();
            return [position.left, position.top];
        },

        /* Retrieve the size of left and top borders for an element.
        @param  elem  (jQuery object) the element of interest
        @return  (number[2]) the left and top borders */
        _getBorders: function (elem) {
            var convert = function (value) {
                return { thin: 1, medium: 2, thick: 3}[value] || value;
            };
            return [parseFloat(convert(elem.css('border-left-width'))),
			parseFloat(convert(elem.css('border-top-width')))];
        },


        /* Close time picker if clicked elsewhere. */
        _checkExternalClick: function (event) {
            if (!$.timepicker._curInst) { return; }
            var $target = $(event.target);
            if ($target[0].id != $.timepicker._mainDivId &&
				$target.parents('#' + $.timepicker._mainDivId).length == 0 &&
				!$target.hasClass($.timepicker.markerClassName) &&
				!$target.hasClass($.timepicker._triggerClass) &&
				$.timepicker._timepickerShowing && !($.timepicker._inDialog && $.blockUI))
                $.timepicker._hideTimepicker();
        },

        /* Hide the time picker from view.
        @param  input  element - the input field attached to the time picker */
        _hideTimepicker: function (input) {
            var inst = this._curInst;
            if (!inst || (input && inst != $.data(input, PROP_NAME))) { return; }
            if (this._timepickerShowing) {
                var showAnim = this._get(inst, 'showAnim');
                var duration = this._get(inst, 'duration');
                var postProcess = function () {
                    $.timepicker._tidyDialog(inst);
                    this._curInst = null;
                };
                if ($.effects && $.effects[showAnim]) {
                    inst.tpDiv.hide(showAnim, $.timepicker._get(inst, 'showOptions'), duration, postProcess);
                }
                else {
                    inst.tpDiv[(showAnim == 'slideDown' ? 'slideUp' :
					    (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
                }
                if (!showAnim) { postProcess(); }

                this._timepickerShowing = false;

                this._lastInput = null;
                if (this._inDialog) {
                    this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
                    if ($.blockUI) {
                        $.unblockUI();
                        $('body').append(this.tpDiv);
                    }
                }
                this._inDialog = false;

                var onClose = this._get(inst, 'onClose');
                 if (onClose) {
                     onClose.apply(
                         (inst.input ? inst.input[0] : null),
 					    [(inst.input ? inst.input.val() : ''), inst]);  // trigger custom callback
                 }

            }
        },



        /* Tidy up after a dialog display. */
        _tidyDialog: function (inst) {
            inst.tpDiv.removeClass(this._dialogClass).unbind('.ui-timepicker');
        },

        /* Retrieve the instance data for the target control.
        @param  target  element - the target input field or division or span
        @return  object - the associated instance data
        @throws  error if a jQuery problem getting data */
        _getInst: function (target) {
            try {
                return $.data(target, PROP_NAME);
            }
            catch (err) {
                throw 'Missing instance data for this timepicker';
            }
        },

        /* Get a setting value, defaulting if necessary. */
        _get: function (inst, name) {
            return inst.settings[name] !== undefined ?
			inst.settings[name] : this._defaults[name];
        },

        /* Parse existing time and initialise time picker. */
        _setTimeFromField: function (inst) {
            if (inst.input.val() == inst.lastVal) { return; }
            var defaultTime = this._get(inst, 'defaultTime');

            var timeToParse = defaultTime == 'now' ? this._getCurrentTimeRounded(inst) : defaultTime;
            if ((inst.inline == false) && (inst.input.val() != '')) { timeToParse = inst.input.val() }

            if (timeToParse instanceof Date) {
                inst.hours = timeToParse.getHours();
                inst.minutes = timeToParse.getMinutes();
            } else {
                var timeVal = inst.lastVal = timeToParse;
                if (timeToParse == '') {
                    inst.hours = -1;
                    inst.minutes = -1;
                } else {
                    var time = this.parseTime(inst, timeVal);
                    inst.hours = time.hours;
                    inst.minutes = time.minutes;
                }
            }


            $.timepicker._updateTimepicker(inst);
        },

        /* Update or retrieve the settings for an existing time picker.
           @param  target  element - the target input field or division or span
           @param  name    object - the new settings to update or
                           string - the name of the setting to change or retrieve,
                           when retrieving also 'all' for all instance settings or
                           'defaults' for all global defaults
           @param  value   any - the new value for the setting
                       (omit if above is an object or to retrieve a value) */
        _optionTimepicker: function(target, name, value) {
            var inst = this._getInst(target);
            if (arguments.length == 2 && typeof name == 'string') {
                return (name == 'defaults' ? $.extend({}, $.timepicker._defaults) :
                    (inst ? (name == 'all' ? $.extend({}, inst.settings) :
                    this._get(inst, name)) : null));
            }
            var settings = name || {};
            if (typeof name == 'string') {
                settings = {};
                settings[name] = value;
            }
            if (inst) {
                if (this._curInst == inst) {
                    this._hideTimepicker();
                }
                extendRemove(inst.settings, settings);
                this._updateTimepicker(inst);
            }
        },


        /* Set the time for a jQuery selection.
	    @param  target  element - the target input field or division or span
	    @param  time    String - the new time */
	    _setTimeTimepicker: function(target, time) {
		    var inst = this._getInst(target);
		    if (inst) {
			    this._setTime(inst, time);
    			this._updateTimepicker(inst);
	    		this._updateAlternate(inst, time);
		    }
	    },

        /* Set the time directly. */
        _setTime: function(inst, time, noChange) {
            var origHours = inst.hours;
            var origMinutes = inst.minutes;
            if (time instanceof Date) {
                inst.hours = time.getHours();
                inst.minutes = time.getMinutes();
            } else {
                var time = this.parseTime(inst, time);
                inst.hours = time.hours;
                inst.minutes = time.minutes;
            }

            if ((origHours != inst.hours || origMinutes != inst.minutes) && !noChange) {
                inst.input.trigger('change');
            }
            this._updateTimepicker(inst);
            this._updateSelectedValue(inst);
        },

        /* Return the current time, ready to be parsed, rounded to the closest 5 minute */
        _getCurrentTimeRounded: function (inst) {
            var currentTime = new Date(),
                currentMinutes = currentTime.getMinutes(),
                // round to closest 5
                adjustedMinutes = Math.round( currentMinutes / 5 ) * 5;
            currentTime.setMinutes(adjustedMinutes);
            return currentTime;
        },

        /*
        * Parse a time string into hours and minutes
        */
        parseTime: function (inst, timeVal) {
            var retVal = new Object();
            retVal.hours = -1;
            retVal.minutes = -1;
            
            if(!timeVal)
                return '';

            var timeSeparator = this._get(inst, 'timeSeparator'),
                amPmText = this._get(inst, 'amPmText'),
                showHours = this._get(inst, 'showHours'),
                showMinutes = this._get(inst, 'showMinutes'),
                optionalMinutes = this._get(inst, 'optionalMinutes'),
                showPeriod = (this._get(inst, 'showPeriod') == true),
                p = timeVal.indexOf(timeSeparator);

            // check if time separator found
            if (p != -1) {
                retVal.hours = parseInt(timeVal.substr(0, p), 10);
                retVal.minutes = parseInt(timeVal.substr(p + 1), 10);
            }
            // check for hours only
            else if ( (showHours) && ( !showMinutes || optionalMinutes ) ) {
                retVal.hours = parseInt(timeVal, 10);
            }
            // check for minutes only
            else if ( ( ! showHours) && (showMinutes) ) {
                retVal.minutes = parseInt(timeVal, 10);
            }

            if (showHours) {
                var timeValUpper = timeVal.toUpperCase();
                if ((retVal.hours < 12) && (showPeriod) && (timeValUpper.indexOf(amPmText[1].toUpperCase()) != -1)) {
                    retVal.hours += 12;
                }
                // fix for 12 AM
                if ((retVal.hours == 12) && (showPeriod) && (timeValUpper.indexOf(amPmText[0].toUpperCase()) != -1)) {
                    retVal.hours = 0;
                }
            }
            
            return retVal;
        },

        selectNow: function(event) {
            var id = $(event.target).attr("data-timepicker-instance-id"),
                $target = $(id),
                inst = this._getInst($target[0]);
            //if (!inst || (input && inst != $.data(input, PROP_NAME))) { return; }
            var currentTime = new Date();
            inst.hours = currentTime.getHours();
            inst.minutes = currentTime.getMinutes();
            this._updateSelectedValue(inst);
            this._updateTimepicker(inst);
            this._hideTimepicker();
        },

        deselectTime: function(event) {
            var id = $(event.target).attr("data-timepicker-instance-id"),
                $target = $(id),
                inst = this._getInst($target[0]);
            inst.hours = -1;
            inst.minutes = -1;
            this._updateSelectedValue(inst);
            this._hideTimepicker();
        },


        selectHours: function (event) {
            var $td = $(event.currentTarget),
                id = $td.attr("data-timepicker-instance-id"),
                newHours = parseInt($td.attr("data-hour")),
                fromDoubleClick = event.data.fromDoubleClick,
                $target = $(id),
                inst = this._getInst($target[0]),
                showMinutes = (this._get(inst, 'showMinutes') == true);

            // don't select if disabled
            if ( $.timepicker._isDisabledTimepicker($target.attr('id')) ) { return false }

            $td.parents('.ui-timepicker-hours:first').find('a').removeClass('ui-state-active');
            $td.children('a').addClass('ui-state-active');
            inst.hours = newHours;

            // added for onMinuteShow callback
            var onMinuteShow = this._get(inst, 'onMinuteShow');
            if (onMinuteShow) {
                // this will trigger a callback on selected hour to make sure selected minute is allowed. 
                this._updateMinuteDisplay(inst);
            }

            this._updateSelectedValue(inst);

            inst._hoursClicked = true;
            if ((inst._minutesClicked) || (fromDoubleClick) || (showMinutes == false)) {
                $.timepicker._hideTimepicker();
            }
            // return false because if used inline, prevent the url to change to a hashtag
            return false;
        },

        selectMinutes: function (event) {
            var $td = $(event.currentTarget),
                id = $td.attr("data-timepicker-instance-id"),
                newMinutes = parseInt($td.attr("data-minute")),
                fromDoubleClick = event.data.fromDoubleClick,
                $target = $(id),
                inst = this._getInst($target[0]),
                showHours = (this._get(inst, 'showHours') == true);

            // don't select if disabled
            if ( $.timepicker._isDisabledTimepicker($target.attr('id')) ) { return false }

            $td.parents('.ui-timepicker-minutes:first').find('a').removeClass('ui-state-active');
            $td.children('a').addClass('ui-state-active');

            inst.minutes = newMinutes;
            this._updateSelectedValue(inst);

            inst._minutesClicked = true;
            if ((inst._hoursClicked) || (fromDoubleClick) || (showHours == false)) {
                $.timepicker._hideTimepicker();
                // return false because if used inline, prevent the url to change to a hashtag
                return false;
            }

            // return false because if used inline, prevent the url to change to a hashtag
            return false;
        },

        _updateSelectedValue: function (inst) {
            var newTime = this._getParsedTime(inst);
            if (inst.input) {
                inst.input.val(newTime);
                inst.input.trigger('change');
            }
            var onSelect = this._get(inst, 'onSelect');
            if (onSelect) { onSelect.apply((inst.input ? inst.input[0] : null), [newTime, inst]); } // trigger custom callback
            this._updateAlternate(inst, newTime);
            return newTime;
        },
        
        /* this function process selected time and return it parsed according to instance options */
        _getParsedTime: function(inst) {

            if (inst.hours == -1 && inst.minutes == -1) {
                return '';
            }

            // default to 0 AM if hours is not valid
            if ((inst.hours < inst.hours.starts) || (inst.hours > inst.hours.ends )) { inst.hours = 0; }
            // default to 0 minutes if minute is not valid
            if ((inst.minutes < inst.minutes.starts) || (inst.minutes > inst.minutes.ends)) { inst.minutes = 0; }

            var period = "",
                showPeriod = (this._get(inst, 'showPeriod') == true),
                showLeadingZero = (this._get(inst, 'showLeadingZero') == true),
                showHours = (this._get(inst, 'showHours') == true),
                showMinutes = (this._get(inst, 'showMinutes') == true),
                optionalMinutes = (this._get(inst, 'optionalMinutes') == true),
                amPmText = this._get(inst, 'amPmText'),
                selectedHours = inst.hours ? inst.hours : 0,
                selectedMinutes = inst.minutes ? inst.minutes : 0,
                displayHours = selectedHours ? selectedHours : 0,
                parsedTime = '';

            // fix some display problem when hours or minutes are not selected yet
            if (displayHours == -1) { displayHours = 0 }
            if (selectedMinutes == -1) { selectedMinutes = 0 }

            if (showPeriod) { 
                if (inst.hours == 0) {
                    displayHours = 12;
                }
                if (inst.hours < 12) {
                    period = amPmText[0];
                }
                else {
                    period = amPmText[1];
                    if (displayHours > 12) {
                        displayHours -= 12;
                    }
                }
            }

            var h = displayHours.toString();
            if (showLeadingZero && (displayHours < 10)) { h = '0' + h; }

            var m = selectedMinutes.toString();
            if (selectedMinutes < 10) { m = '0' + m; }

            if (showHours) {
                parsedTime += h;
            }
            if (showHours && showMinutes && (!optionalMinutes || m != 0)) {
                parsedTime += this._get(inst, 'timeSeparator');
            }
            if (showMinutes && (!optionalMinutes || m != 0)) {
                parsedTime += m;
            }
            if (showHours) {
                if (period.length > 0) { parsedTime += this._get(inst, 'periodSeparator') + period; }
            }
            
            return parsedTime;
        },
        
        /* Update any alternate field to synchronise with the main field. */
        _updateAlternate: function(inst, newTime) {
            var altField = this._get(inst, 'altField');
            if (altField) { // update alternate field too
                $(altField).each(function(i,e) {
                    $(e).val(newTime);
                });
            }
        },

        _getTimeAsDateTimepicker: function(input) {
            var inst = this._getInst(input);
            if (inst.hours == -1 && inst.minutes == -1) {
                return '';
            }

            // default to 0 AM if hours is not valid
            if ((inst.hours < inst.hours.starts) || (inst.hours > inst.hours.ends )) { inst.hours = 0; }
            // default to 0 minutes if minute is not valid
            if ((inst.minutes < inst.minutes.starts) || (inst.minutes > inst.minutes.ends)) { inst.minutes = 0; }

            return new Date(0, 0, 0, inst.hours, inst.minutes, 0);
        },
        /* This might look unused but it's called by the $.fn.timepicker function with param getTime */
        /* added v 0.2.3 - gitHub issue #5 - Thanks edanuff */
        _getTimeTimepicker : function(input) {
            var inst = this._getInst(input);
            return this._getParsedTime(inst);
        },
        _getHourTimepicker: function(input) {
            var inst = this._getInst(input);
            if ( inst == undefined) { return -1; }
            return inst.hours;
        },
        _getMinuteTimepicker: function(input) {
            var inst= this._getInst(input);
            if ( inst == undefined) { return -1; }
            return inst.minutes;
        }

    });



    /* Invoke the timepicker functionality.
    @param  options  string - a command, optionally followed by additional parameters or
    Object - settings for attaching new timepicker functionality
    @return  jQuery object */
    $.fn.timepicker = function (options) {

        /* Initialise the time picker. */
        if (!$.timepicker.initialized) {
            $(document).mousedown($.timepicker._checkExternalClick).
			find('body').append($.timepicker.tpDiv);
            $.timepicker.initialized = true;
        }



        var otherArgs = Array.prototype.slice.call(arguments, 1);
        if (typeof options == 'string' && (options == 'getTime' || options == 'getTimeAsDate' || options == 'getHour' || options == 'getMinute' ))
            return $.timepicker['_' + options + 'Timepicker'].
			    apply($.timepicker, [this[0]].concat(otherArgs));
        if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
            return $.timepicker['_' + options + 'Timepicker'].
                apply($.timepicker, [this[0]].concat(otherArgs));
        return this.each(function () {
            typeof options == 'string' ?
			$.timepicker['_' + options + 'Timepicker'].
				apply($.timepicker, [this].concat(otherArgs)) :
			$.timepicker._attachTimepicker(this, options);
        });
    };

    /* jQuery extend now ignores nulls! */
    function extendRemove(target, props) {
        $.extend(target, props);
        for (var name in props)
            if (props[name] == null || props[name] == undefined)
                target[name] = props[name];
        return target;
    };

    $.timepicker = new Timepicker(); // singleton instance
    $.timepicker.initialized = false;
    $.timepicker.uuid = new Date().getTime();
    $.timepicker.version = "0.3.2";

    // Workaround for #4055
    // Add another global to avoid noConflict issues with inline event handlers
    window['TP_jQuery_' + tpuuid] = $;

})(jQuery);
/*
 * Copyright 2013 Sean Proctor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

body {
  margin: 0 2em;
  padding: 0;
}

.php-calendar h1 {
  text-align: center;
  font-size: 2em !important;
}

.php-calendar h1 a {
  text-decoration: none;
}

.php-calendar h2 {
  text-align: center;
}

.phpc-bar {
  margin: .5em 0;
  text-align: center;
  padding: 4px;
}

.phpc-bar a {
  margin: 0 .25em;
  text-decoration: none;
}

.php-calendar a:hover {
  opacity: .7;
  filter:Alpha(Opacity=70);
}

.php-calendar a.ui-state-default,
.php-calendar .ui-state-default a {
  opacity: 1;
  filter:Alpha(Opacity=100);
}

.php-calendar table {
  border-collapse: collapse;
  margin-left: auto;
  margin-right: auto;
}

.phpc-container {
  min-width: 50%;
}

.php-create-category {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

table.phpc-main {
  width: 100%;
}

div.phpc-main {
  padding: 0;
}

.phpc-main h2 {
  text-align: left;
  margin: 0;
  padding: 2px .5em; 
}

.phpc-main div {
  padding-left: .5em;
  padding-right: .5em;
}

.phpc-event-header {
  padding: .5em;
}

.phpc-event li a {
  text-decoration: none;
  margin: 0 .25em;
}

p.phpc-desc {
  padding: .5em;
  text-align: justify;
}

.php-calendar caption {
  font-weight: bolder;
}

.php-calendar tfoot {
  text-align: center;
}

col.phpc-week {
  width: 3%;
}

col.phpc-day {
  width: 14%;
}

.phpc-calendar td, .phpc-calendar th {
  border-collapse: collapse;
  vertical-align: text-top;
}

.phpc-calendar td {
  padding: 0;
  text-align: left;
  height: 100px;
}

.phpc-calendar li {
  margin: 4px;
}

.phpc-main ul {
  list-style-type: none;
  padding: 0;
}

.phpc-calendar li a {
  font-weight: normal !important;
  display: block;
  padding: 2px;
  text-decoration: none;
}

.phpc-button {
  text-align: center;
}

a.phpc-add {
  float: right;
  padding: 0;
  font-size: .5em !important;
}

#phpc-summary-view {
  display: none;
  position: absolute;
  width: 300px;
  max-height: 250px;
  overflow: hidden;
  z-index: 1;
}

#phpc-summary-head {
  border-bottom: 1px solid inherit;
  padding: 5px;
}

#phpc-summary-body {
  padding: 5px;
}

.form table {
  width: 100%;
}

.phpc-date {
  padding: 5px 3px;
  cursor: pointer;
}

.phpc-calendar th.ui-state-default {
  cursor: pointer;
}

.phpc-date > a {
  text-decoration: none;
}

.phpc-shadow {
  opacity: .5;
  filter:Alpha(Opacity=5);
}

td.form-color {
  padding: 2px;
  width: 20px;
  height: 20px;
  border-style: none;
}

td.form-color-selected {
  border: 2px dotted #000000;
  padding: 0;
}

.phpc-message {
  padding: 4px;
  margin: .5em 0;
}

.phpc-logged {
  padding: 4px;
  z-index: 1;
  float: right;
}

.phpc-logged span {
  font-weight: bold;
  margin-left: 1em;
}

/* labels associated with checkboxes */
.php-calendar label,
.php-calendar input[type=submit],
.php-calendar tfoot a {
  font-size: .9em !important;
}

.form-submit div {
  text-align: center;
}

div.ui-datepicker, div.ui-timepicker {
  font-size: .9em;
}

.php-calendar.ui-widget {
  font-size: 1em;
}

.phpc-dropdown-list-title {
  margin-right: 2px;
}

.phpc-dropdown-list ul {
  position: absolute;
  margin: 0;
  padding: 0;
  list-style-type: none;
  z-index: 99;
}

.phpc-dropdown-list li {
  text-align: left;
  font-size: medium;
  font-weight: normal;
  padding: 0.1em;
}

.phpc-dropdown-list {
  margin-right: 1em;
}

.phpc-dropdown-list-button {
  display: inline-block !important;
}
var activeRequest = null;
var cache = new Object;
 
$(document).ready(function(){
  // Add theme to appropriate items
  // All widgets
  $(".phpc-event-list a, .phpc-message, .phpc-date, .phpc-bar, .php-calendar h1, #phpc-summary-view, .phpc-logged, .php-calendar td, .php-calendar th, .phpc-message, .phpc-dropdown-list ul").addClass("ui-widget");
  // Buttons
  $(".phpc-add").button({
      text: false,
      icons: { primary: "ui-icon-plus" }
    });
  $(".php-calendar input[type=submit], .php-calendar tfoot a, .phpc-button").button();
  // The buttons are too hard to read waiting on:
  //    http://wiki.jqueryui.com/w/page/12137730/Checkbox
  // $(".php-calendar input[type=checkbox] + label").prev().button();
  $(".phpc-date, .phpc-event-list a, .phpc-calendar th.ui-state-default").on('mouseover mouseout',
      function (event) {
        $(this).toggleClass("ui-state-hover");
      });
  $(".phpc-date .phpc-add").on('mouseover mouseout',
      function (event) {
        $(this).parent(".phpc-date").toggleClass("ui-state-hover");
      });
  // fancy corners
  $(".phpc-event-list a, .phpc-message, .phpc-bar, .php-calendar h1, #phpc-summary-view, .phpc-logged, .phpc-dropdown-list ul").addClass("ui-corner-all");
  // add jquery ui style classes
  $(".php-calendar td, #phpc-summary-view, .phpc-dropdown-list ul").addClass("ui-widget-content");
  $(".phpc-event-list a, .phpc-message").addClass("ui-state-default");
  // Tabs
  $(".phpc-tabs").tabs();

  // Find the color of ui-widget-content
  var $tempElem = $("<p class=ui-widget-content></p>").hide().appendTo("body");
  var color = $tempElem.css("color");
  $(".phpc-dropdown-list ul a").css("color", color);
  $tempElem.remove();

  // Replace descriptions with the description run through markdown
  var converter = new showdown.Converter();
  $(".phpc-desc").each(function() {
    var text = $(this).text();
    var html = converter.makeHtml(text);
    $(this).html(html);
  });

  // Summary init
  $("#phpc-summary-view").hide();
  $(".phpc-event-list a").hoverIntent(
    function() { showSummary(this); },
    function() { hideSummary(this); });

  // Multi select stuff
  var select_id = 1;
  var options = new Array();
  var default_option = false;
  $(".phpc-multi-select").each(function() {
    var master_id = "phpc-multi-master"+select_id
    $(this).before("<select class=\"phpc-multi-master\" id=\""+master_id+"\"></select>");
    $(this).children().each(function() {
      if($(this).prop("tagName") == "OPTION") {
        var val = $(this).attr("value");
        $("#"+master_id).append("<option value=\""+val+"\">"+$(this).text()+"</option>");
        options[val] = [this];
        if($(this).attr("selected") == "selected")
          default_option = val;
      } else if($(this).prop("tagName") == "OPTGROUP") {
        var val = $(this).attr("label");
        var sub_options = new Array();
        $("#"+master_id).append("<option value=\""+val+"\">"+val+"</option>");
        $(this).children().each(function() {
          sub_options.push(this);
          if($(this).attr("selected") == "selected")
            default_option = val;
        });
        options[val] = sub_options;
      }
    });
    if(default_option !== false)
      $("#"+master_id).val(default_option);
    var select = this;
    $("#"+master_id).each(function() {
      var val = $("#"+master_id+" option:selected").attr("value");
      $(select).empty();
      for(var key in options[val]) {
        $(select).append(options[val][key]);
      }
    });
    $("#"+master_id).change(function() {
      var val = $("#"+master_id+" option:selected").attr("value");
      $(select).empty();
      for(var key in options[val]) {
        $(select).append(options[val][key]);
      }
    });
    select_id++;
  });

  // Generic form stuff
  $(".form-select").each(function(){
    formSelectUpdate($(this));
  });
  $(".form-select").change(function(){
    formSelectUpdate($(this));
  });
  $(".form-color-input").spectrum({ preferredFormat: "hex", showInput: true });

  // Dropdown list stuff
  $(".phpc-dropdown-list").each(function(index, elem) {
    var titleElement = $(elem).children(".phpc-dropdown-list-header");
    var listElement = $(elem).children("ul");
    $(document).mouseup(function(e) {
      var container = $(elem);

      if (!container.is(e.target) // if the target of the click isn't the container...
        && container.has(e.target).length === 0) // ... nor a descendant of the container
      {
        listElement.hide();
      }
    });
    var positionList = function() {
        listElement.css("left", titleElement.offset().left);
        listElement.css("top", titleElement.offset().top +
		titleElement.outerHeight());
        listElement.css("min-width", titleElement.outerWidth());
    }
    var button = $("<a>")
      .appendTo(titleElement)
      .addClass("phpc-dropdown-list-button ui-icon ui-icon-circle-triangle-s")
      .click(function() {
        $(window).resize(positionList);
        positionList();
        listElement.toggle();
      });

    listElement.hide();
  });

  // Calendar specific/hacky stuff
  if($("#phpc-modify").length > 0 && !$("#phpc-modify").prop("checked"))
    toggle_when(false);

  $("#phpc-modify").click(function() {
      toggle_when($(this).prop("checked"));
    });

  $("#time-type").change(function(){
    if($(this).val() == "normal") {
      $("#start-time").show();
      $("#end-time").show();
    } else {
      $("#start-time").hide();
      $("#end-time").hide();
    }
  });

  $("#time-type").each(function(){
    if($(this).val() == "normal") {
      $("#start-time").show();
      $("#end-time").show();
    } else {
      $("#start-time").hide();
      $("#end-time").hide();
    }
  });

  var dateRelation = compareDates("start", "end");
  $("#start-date select").change(function(){
    if(dateRelation == 0) {
      copyDate("start", "end");
    } else {
      dateRelation = compareDates("start", "end");
      /*if(dateRelation > 0) {
        copyDate("start", "end");
	dateRelation = 0;
      }*/
    }
  });
  $("#end-date select").change(function(){
    dateRelation = compareDates("start", "end");
    /*if(dateRelation > 0) {
      copyDate("end", "start");
      dateRelation = 0;
    }*/
  });

});

function toggle_when(on) {
  $('.phpc-when input[name!="phpc-modify"], .phpc-when select').prop('disabled', !on);
}

function formSelectUpdate(select) {
  var idPrefix = "#" + select.attr("name") + "-";
  select.children("option:not(:selected)").each(function(){
    $(idPrefix + $(this).val()).hide();
  });
  select.children("option:selected").each(function(){
    $(idPrefix + $(this).val()).show();
  });
}

// return 0 on equal 1 on prefix1 > prefix, -1 on prefix1 < prefix2
function compareDates(prefix1, prefix2) {
  var year1 = parseInt($("#" + prefix1 + "-year").val());
  var year2 = parseInt($("#" + prefix2 + "-year").val());
  if(year1 > year2)
    return 1;
  if(year1 < year2)
    return -1;

  var month1 = parseInt($("#" + prefix1 + "-month").val());
  var month2 = parseInt($("#" + prefix2 + "-month").val());
  if(month1 > month2)
    return 1;
  if(month1 < month2)
    return -1;

  var day1 = parseInt($("#" + prefix1 + "-day").val());
  var day2 = parseInt($("#" + prefix2 + "-day").val());
  if(day1 > day2)
    return 1;
  if(day1 < day2)
    return -1;

  return 0;
}

function copyDate(date1, date2) {
  $("#" + date2 + "-year").val($("#" + date1 + "-year").val());
  $("#" + date2 + "-month").val($("#" + date1 + "-month").val());
  $("#" + date2 + "-day").val($("#" + date1 + "-day").val());
}

//based on http://haacked.com/archive/2009/12/29/convert-rgb-to-hex.aspx
function rgbToHex(color) {
  if (color.substr(0, 1) == '#') {
    return color.toUpperCase();
  }
  var digits = /(.*?)RGB\((\d+), (\d+), (\d+)\)/.exec(color.toUpperCase());
  var red =  '0' + parseInt(digits[2]).toString(16);
  var green = '0' + parseInt(digits[3]).toString(16);
  var blue = '0' + parseInt(digits[4]).toString(16);
  return ('#' + red.substring(red.length-2) + green.substring(green.length-2) + blue.substring(blue.length-2)).toUpperCase();
}

function textcolor(bgcolor) {
  var red = parseInt(bgcolor.substr(1, 2),16);
  var green = parseInt(bgcolor.substr(3, 2),16);
  var blue = parseInt(bgcolor.substr(5, 2),16);
  var luminance= (red*0.3 + green*0.59 + blue*0.11);
  if (luminance <128) 
  {
    return "#FFFFFF"
  }
  else
  {
    return "#000000";
  }
}

// sets he specified text in the floating div
function setSummaryText(title,author,time,description,category) {
  var converter = new showdown.Converter();
	$("#phpc-summary-title").html(title);
	$("#phpc-summary-author").html(author);
	$("#phpc-summary-time").html(time);
	$("#phpc-summary-body").html(converter.makeHtml(description));
	$("#phpc-summary-category").html(category);
}
 
// set the location of the div relative to the current link and display it
function showSummaryDiv(link) {
	
	var div = $("#phpc-summary-view");
	var jLink = $(link);
	var win = $(window);
	var newTop = jLink.offset().top + jLink.outerHeight();
	if( newTop + div.outerHeight()  > win.height() + win.scrollTop() )
		newTop -= (jLink.outerHeight() + div.outerHeight());
	
	var newLeft = jLink.offset().left - ((div.outerWidth() - jLink.outerWidth())/2)
	if( newLeft < 1 )
		newLeft = 1;
	else if( newLeft + div.outerWidth() > win.width() ) 
		newLeft -=  (newLeft + div.outerWidth()) - win.width();

	div.css("top", newTop + "px");
	div.css("left", newLeft + "px");
	div.show();
}
 
// shows the summary for a particular anchor's url. This will display cached data after the first request
function showSummary(link) {
	if( cache[link.href] != null ) {
		var data = cache[link.href];
		setSummaryText(data.title,data.author,data.time,data.body,
				data.category);
		showSummaryDiv(link);
	}
	else {
		// abort any pending requests
		if( activeRequest != null )
			activeRequest.abort();
		
		// get the calendar data
		activeRequest = $.getJSON(link.href + "&contentType=json",
			function(data) {
				cache[link.href] = data;
				setSummaryText(data.title,data.author,data.time,
					data.body,data.category);
				showSummaryDiv(link);
				activeRequest = null;
			});
	}	
}
 
// hides the event summary information
function hideSummary(link) {
	// abort any pending requests
	if( activeRequest != null )
		activeRequest.abort();

	$("#phpc-summary-view").hide();
	setSummaryText('','','','','');
}
/***
Spectrum Colorpicker v1.8.0
https://github.com/bgrins/spectrum
Author: Brian Grinstead
License: MIT
***/

.sp-container {
    position:absolute;
    top:0;
    left:0;
    display:inline-block;
    *display: inline;
    *zoom: 1;
    /* https://github.com/bgrins/spectrum/issues/40 */
    z-index: 9999994;
    overflow: hidden;
}
.sp-container.sp-flat {
    position: relative;
}

/* Fix for * { box-sizing: border-box; } */
.sp-container,
.sp-container * {
    -webkit-box-sizing: content-box;
       -moz-box-sizing: content-box;
            box-sizing: content-box;
}

/* http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio */
.sp-top {
  position:relative;
  width: 100%;
  display:inline-block;
}
.sp-top-inner {
   position:absolute;
   top:0;
   left:0;
   bottom:0;
   right:0;
}
.sp-color {
    position: absolute;
    top:0;
    left:0;
    bottom:0;
    right:20%;
}
.sp-hue {
    position: absolute;
    top:0;
    right:0;
    bottom:0;
    left:84%;
    height: 100%;
}

.sp-clear-enabled .sp-hue {
    top:33px;
    height: 77.5%;
}

.sp-fill {
    padding-top: 80%;
}
.sp-sat, .sp-val {
    position: absolute;
    top:0;
    left:0;
    right:0;
    bottom:0;
}

.sp-alpha-enabled .sp-top {
    margin-bottom: 18px;
}
.sp-alpha-enabled .sp-alpha {
    display: block;
}
.sp-alpha-handle {
    position:absolute;
    top:-4px;
    bottom: -4px;
    width: 6px;
    left: 50%;
    cursor: pointer;
    border: 1px solid black;
    background: white;
    opacity: .8;
}
.sp-alpha {
    display: none;
    position: absolute;
    bottom: -14px;
    right: 0;
    left: 0;
    height: 8px;
}
.sp-alpha-inner {
    border: solid 1px #333;
}

.sp-clear {
    display: none;
}

.sp-clear.sp-clear-display {
    background-position: center;
}

.sp-clear-enabled .sp-clear {
    display: block;
    position:absolute;
    top:0px;
    right:0;
    bottom:0;
    left:84%;
    height: 28px;
}

/* Don't allow text selection */
.sp-container, .sp-replacer, .sp-preview, .sp-dragger, .sp-slider, .sp-alpha, .sp-clear, .sp-alpha-handle, .sp-container.sp-dragging .sp-input, .sp-container button  {
    -webkit-user-select:none;
    -moz-user-select: -moz-none;
    -o-user-select:none;
    user-select: none;
}

.sp-container.sp-input-disabled .sp-input-container {
    display: none;
}
.sp-container.sp-buttons-disabled .sp-button-container {
    display: none;
}
.sp-container.sp-palette-buttons-disabled .sp-palette-button-container {
    display: none;
}
.sp-palette-only .sp-picker-container {
    display: none;
}
.sp-palette-disabled .sp-palette-container {
    display: none;
}

.sp-initial-disabled .sp-initial {
    display: none;
}


/* Gradients for hue, saturation and value instead of images.  Not pretty... but it works */
.sp-sat {
    background-image: -webkit-gradient(linear,  0 0, 100% 0, from(#FFF), to(rgba(204, 154, 129, 0)));
    background-image: -webkit-linear-gradient(left, #FFF, rgba(204, 154, 129, 0));
    background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
    background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
    background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
    background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0));
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";
    filter : progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81');
}
.sp-val {
    background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000000), to(rgba(204, 154, 129, 0)));
    background-image: -webkit-linear-gradient(bottom, #000000, rgba(204, 154, 129, 0));
    background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
    background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
    background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
    background-image: linear-gradient(to top, #000, rgba(204, 154, 129, 0));
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";
    filter : progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000');
}

.sp-hue {
    background: -moz-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
    background: -ms-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
    background: -o-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
    background: -webkit-gradient(linear, left top, left bottom, from(#ff0000), color-stop(0.17, #ffff00), color-stop(0.33, #00ff00), color-stop(0.5, #00ffff), color-stop(0.67, #0000ff), color-stop(0.83, #ff00ff), to(#ff0000));
    background: -webkit-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
    background: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
}

/* IE filters do not support multiple color stops.
   Generate 6 divs, line them up, and do two color gradients for each.
   Yes, really.
 */
.sp-1 {
    height:17%;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00');
}
.sp-2 {
    height:16%;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00');
}
.sp-3 {
    height:17%;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff');
}
.sp-4 {
    height:17%;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff');
}
.sp-5 {
    height:16%;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff');
}
.sp-6 {
    height:17%;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000');
}

.sp-hidden {
    display: none !important;
}

/* Clearfix hack */
.sp-cf:before, .sp-cf:after { content: ""; display: table; }
.sp-cf:after { clear: both; }
.sp-cf { *zoom: 1; }

/* Mobile devices, make hue slider bigger so it is easier to slide */
@media (max-device-width: 480px) {
    .sp-color { right: 40%; }
    .sp-hue { left: 63%; }
    .sp-fill { padding-top: 60%; }
}
.sp-dragger {
   border-radius: 5px;
   height: 5px;
   width: 5px;
   border: 1px solid #fff;
   background: #000;
   cursor: pointer;
   position:absolute;
   top:0;
   left: 0;
}
.sp-slider {
    position: absolute;
    top:0;
    cursor:pointer;
    height: 3px;
    left: -1px;
    right: -1px;
    border: 1px solid #000;
    background: white;
    opacity: .8;
}

/*
Theme authors:
Here are the basic themeable display options (colors, fonts, global widths).
See http://bgrins.github.io/spectrum/themes/ for instructions.
*/

.sp-container {
    border-radius: 0;
    background-color: #ECECEC;
    border: solid 1px #f0c49B;
    padding: 0;
}
.sp-container, .sp-container button, .sp-container input, .sp-color, .sp-hue, .sp-clear {
    font: normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}
.sp-top {
    margin-bottom: 3px;
}
.sp-color, .sp-hue, .sp-clear {
    border: solid 1px #666;
}

/* Input */
.sp-input-container {
    float:right;
    width: 100px;
    margin-bottom: 4px;
}
.sp-initial-disabled  .sp-input-container {
    width: 100%;
}
.sp-input {
   font-size: 12px !important;
   border: 1px inset;
   padding: 4px 5px;
   margin: 0;
   width: 100%;
   background:transparent;
   border-radius: 3px;
   color: #222;
}
.sp-input:focus  {
    border: 1px solid orange;
}
.sp-input.sp-validation-error {
    border: 1px solid red;
    background: #fdd;
}
.sp-picker-container , .sp-palette-container {
    float:left;
    position: relative;
    padding: 10px;
    padding-bottom: 300px;
    margin-bottom: -290px;
}
.sp-picker-container {
    width: 172px;
    border-left: solid 1px #fff;
}

/* Palettes */
.sp-palette-container {
    border-right: solid 1px #ccc;
}

.sp-palette-only .sp-palette-container {
    border: 0;
}

.sp-palette .sp-thumb-el {
    display: block;
    position:relative;
    float:left;
    width: 24px;
    height: 15px;
    margin: 3px;
    cursor: pointer;
    border:solid 2px transparent;
}
.sp-palette .sp-thumb-el:hover, .sp-palette .sp-thumb-el.sp-thumb-active {
    border-color: orange;
}
.sp-thumb-el {
    position:relative;
}

/* Initial */
.sp-initial {
    float: left;
    border: solid 1px #333;
}
.sp-initial span {
    width: 30px;
    height: 25px;
    border:none;
    display:block;
    float:left;
    margin:0;
}

.sp-initial .sp-clear-display {
    background-position: center;
}

/* Buttons */
.sp-palette-button-container,
.sp-button-container {
    float: right;
}

/* Replacer (the little preview div that shows up instead of the <input>) */
.sp-replacer {
    margin:0;
    overflow:hidden;
    cursor:pointer;
    padding: 4px;
    display:inline-block;
    *zoom: 1;
    *display: inline;
    border: solid 1px #91765d;
    background: #eee;
    color: #333;
    vertical-align: middle;
}
.sp-replacer:hover, .sp-replacer.sp-active {
    border-color: #F0C49B;
    color: #111;
}
.sp-replacer.sp-disabled {
    cursor:default;
    border-color: silver;
    color: silver;
}
.sp-dd {
    padding: 2px 0;
    height: 16px;
    line-height: 16px;
    float:left;
    font-size:10px;
}
.sp-preview {
    position:relative;
    width:25px;
    height: 20px;
    border: solid 1px #222;
    margin-right: 5px;
    float:left;
    z-index: 0;
}

.sp-palette {
    *width: 220px;
    max-width: 220px;
}
.sp-palette .sp-thumb-el {
    width:16px;
    height: 16px;
    margin:2px 1px;
    border: solid 1px #d0d0d0;
}

.sp-container {
    padding-bottom:0;
}


/* Buttons: http://hellohappy.org/css3-buttons/ */
.sp-container button {
  background-color: #eeeeee;
  background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc);
  background-image: -moz-linear-gradient(top, #eeeeee, #cccccc);
  background-image: -ms-linear-gradient(top, #eeeeee, #cccccc);
  background-image: -o-linear-gradient(top, #eeeeee, #cccccc);
  background-image: linear-gradient(to bottom, #eeeeee, #cccccc);
  border: 1px solid #ccc;
  border-bottom: 1px solid #bbb;
  border-radius: 3px;
  color: #333;
  font-size: 14px;
  line-height: 1;
  padding: 5px 4px;
  text-align: center;
  text-shadow: 0 1px 0 #eee;
  vertical-align: middle;
}
.sp-container button:hover {
    background-color: #dddddd;
    background-image: -webkit-linear-gradient(top, #dddddd, #bbbbbb);
    background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb);
    background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb);
    background-image: -o-linear-gradient(top, #dddddd, #bbbbbb);
    background-image: linear-gradient(to bottom, #dddddd, #bbbbbb);
    border: 1px solid #bbb;
    border-bottom: 1px solid #999;
    cursor: pointer;
    text-shadow: 0 1px 0 #ddd;
}
.sp-container button:active {
    border: 1px solid #aaa;
    border-bottom: 1px solid #888;
    -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
    -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
    -ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
    -o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
    box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
}
.sp-cancel {
    font-size: 11px;
    color: #d93f3f !important;
    margin:0;
    padding:2px;
    margin-right: 5px;
    vertical-align: middle;
    text-decoration:none;

}
.sp-cancel:hover {
    color: #d93f3f !important;
    text-decoration: underline;
}


.sp-palette span:hover, .sp-palette span.sp-thumb-active {
    border-color: #000;
}

.sp-preview, .sp-alpha, .sp-thumb-el {
    position:relative;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);
}
.sp-preview-inner, .sp-alpha-inner, .sp-thumb-inner {
    display:block;
    position:absolute;
    top:0;left:0;bottom:0;right:0;
}

.sp-palette .sp-thumb-inner {
    background-position: 50% 50%;
    background-repeat: no-repeat;
}

.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=);
}

.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=);
}

.sp-clear-display {
    background-repeat:no-repeat;
    background-position: center;
    background-image: url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==);
}
// Spectrum Colorpicker v1.8.0
// https://github.com/bgrins/spectrum
// Author: Brian Grinstead
// License: MIT

(function (factory) {
    "use strict";

    if (typeof define === 'function' && define.amd) { // AMD
        define(['jquery'], factory);
    }
    else if (typeof exports == "object" && typeof module == "object") { // CommonJS
        module.exports = factory(require('jquery'));
    }
    else { // Browser
        factory(jQuery);
    }
})(function($, undefined) {
    "use strict";

    var defaultOpts = {

        // Callbacks
        beforeShow: noop,
        move: noop,
        change: noop,
        show: noop,
        hide: noop,

        // Options
        color: false,
        flat: false,
        showInput: false,
        allowEmpty: false,
        showButtons: true,
        clickoutFiresChange: true,
        showInitial: false,
        showPalette: false,
        showPaletteOnly: false,
        hideAfterPaletteSelect: false,
        togglePaletteOnly: false,
        showSelectionPalette: true,
        localStorageKey: false,
        appendTo: "body",
        maxSelectionSize: 7,
        cancelText: "cancel",
        chooseText: "choose",
        togglePaletteMoreText: "more",
        togglePaletteLessText: "less",
        clearText: "Clear Color Selection",
        noColorSelectedText: "No Color Selected",
        preferredFormat: false,
        className: "", // Deprecated - use containerClassName and replacerClassName instead.
        containerClassName: "",
        replacerClassName: "",
        showAlpha: false,
        theme: "sp-light",
        palette: [["#ffffff", "#000000", "#ff0000", "#ff8000", "#ffff00", "#008000", "#0000ff", "#4b0082", "#9400d3"]],
        selectionPalette: [],
        disabled: false,
        offset: null
    },
    spectrums = [],
    IE = !!/msie/i.exec( window.navigator.userAgent ),
    rgbaSupport = (function() {
        function contains( str, substr ) {
            return !!~('' + str).indexOf(substr);
        }

        var elem = document.createElement('div');
        var style = elem.style;
        style.cssText = 'background-color:rgba(0,0,0,.5)';
        return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla');
    })(),
    replaceInput = [
        "<div class='sp-replacer'>",
            "<div class='sp-preview'><div class='sp-preview-inner'></div></div>",
            "<div class='sp-dd'>&#9660;</div>",
        "</div>"
    ].join(''),
    markup = (function () {

        // IE does not support gradients with multiple stops, so we need to simulate
        //  that for the rainbow slider with 8 divs that each have a single gradient
        var gradientFix = "";
        if (IE) {
            for (var i = 1; i <= 6; i++) {
                gradientFix += "<div class='sp-" + i + "'></div>";
            }
        }

        return [
            "<div class='sp-container sp-hidden'>",
                "<div class='sp-palette-container'>",
                    "<div class='sp-palette sp-thumb sp-cf'></div>",
                    "<div class='sp-palette-button-container sp-cf'>",
                        "<button type='button' class='sp-palette-toggle'></button>",
                    "</div>",
                "</div>",
                "<div class='sp-picker-container'>",
                    "<div class='sp-top sp-cf'>",
                        "<div class='sp-fill'></div>",
                        "<div class='sp-top-inner'>",
                            "<div class='sp-color'>",
                                "<div class='sp-sat'>",
                                    "<div class='sp-val'>",
                                        "<div class='sp-dragger'></div>",
                                    "</div>",
                                "</div>",
                            "</div>",
                            "<div class='sp-clear sp-clear-display'>",
                            "</div>",
                            "<div class='sp-hue'>",
                                "<div class='sp-slider'></div>",
                                gradientFix,
                            "</div>",
                        "</div>",
                        "<div class='sp-alpha'><div class='sp-alpha-inner'><div class='sp-alpha-handle'></div></div></div>",
                    "</div>",
                    "<div class='sp-input-container sp-cf'>",
                        "<input class='sp-input' type='text' spellcheck='false'  />",
                    "</div>",
                    "<div class='sp-initial sp-thumb sp-cf'></div>",
                    "<div class='sp-button-container sp-cf'>",
                        "<a class='sp-cancel' href='#'></a>",
                        "<button type='button' class='sp-choose'></button>",
                    "</div>",
                "</div>",
            "</div>"
        ].join("");
    })();

    function paletteTemplate (p, color, className, opts) {
        var html = [];
        for (var i = 0; i < p.length; i++) {
            var current = p[i];
            if(current) {
                var tiny = tinycolor(current);
                var c = tiny.toHsl().l < 0.5 ? "sp-thumb-el sp-thumb-dark" : "sp-thumb-el sp-thumb-light";
                c += (tinycolor.equals(color, current)) ? " sp-thumb-active" : "";
                var formattedString = tiny.toString(opts.preferredFormat || "rgb");
                var swatchStyle = rgbaSupport ? ("background-color:" + tiny.toRgbString()) : "filter:" + tiny.toFilter();
                html.push('<span title="' + formattedString + '" data-color="' + tiny.toRgbString() + '" class="' + c + '"><span class="sp-thumb-inner" style="' + swatchStyle + ';" /></span>');
            } else {
                var cls = 'sp-clear-display';
                html.push($('<div />')
                    .append($('<span data-color="" style="background-color:transparent;" class="' + cls + '"></span>')
                        .attr('title', opts.noColorSelectedText)
                    )
                    .html()
                );
            }
        }
        return "<div class='sp-cf " + className + "'>" + html.join('') + "</div>";
    }

    function hideAll() {
        for (var i = 0; i < spectrums.length; i++) {
            if (spectrums[i]) {
                spectrums[i].hide();
            }
        }
    }

    function instanceOptions(o, callbackContext) {
        var opts = $.extend({}, defaultOpts, o);
        opts.callbacks = {
            'move': bind(opts.move, callbackContext),
            'change': bind(opts.change, callbackContext),
            'show': bind(opts.show, callbackContext),
            'hide': bind(opts.hide, callbackContext),
            'beforeShow': bind(opts.beforeShow, callbackContext)
        };

        return opts;
    }

    function spectrum(element, o) {

        var opts = instanceOptions(o, element),
            flat = opts.flat,
            showSelectionPalette = opts.showSelectionPalette,
            localStorageKey = opts.localStorageKey,
            theme = opts.theme,
            callbacks = opts.callbacks,
            resize = throttle(reflow, 10),
            visible = false,
            isDragging = false,
            dragWidth = 0,
            dragHeight = 0,
            dragHelperHeight = 0,
            slideHeight = 0,
            slideWidth = 0,
            alphaWidth = 0,
            alphaSlideHelperWidth = 0,
            slideHelperHeight = 0,
            currentHue = 0,
            currentSaturation = 0,
            currentValue = 0,
            currentAlpha = 1,
            palette = [],
            paletteArray = [],
            paletteLookup = {},
            selectionPalette = opts.selectionPalette.slice(0),
            maxSelectionSize = opts.maxSelectionSize,
            draggingClass = "sp-dragging",
            shiftMovementDirection = null;

        var doc = element.ownerDocument,
            body = doc.body,
            boundElement = $(element),
            disabled = false,
            container = $(markup, doc).addClass(theme),
            pickerContainer = container.find(".sp-picker-container"),
            dragger = container.find(".sp-color"),
            dragHelper = container.find(".sp-dragger"),
            slider = container.find(".sp-hue"),
            slideHelper = container.find(".sp-slider"),
            alphaSliderInner = container.find(".sp-alpha-inner"),
            alphaSlider = container.find(".sp-alpha"),
            alphaSlideHelper = container.find(".sp-alpha-handle"),
            textInput = container.find(".sp-input"),
            paletteContainer = container.find(".sp-palette"),
            initialColorContainer = container.find(".sp-initial"),
            cancelButton = container.find(".sp-cancel"),
            clearButton = container.find(".sp-clear"),
            chooseButton = container.find(".sp-choose"),
            toggleButton = container.find(".sp-palette-toggle"),
            isInput = boundElement.is("input"),
            isInputTypeColor = isInput && boundElement.attr("type") === "color" && inputTypeColorSupport(),
            shouldReplace = isInput && !flat,
            replacer = (shouldReplace) ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName) : $([]),
            offsetElement = (shouldReplace) ? replacer : boundElement,
            previewElement = replacer.find(".sp-preview-inner"),
            initialColor = opts.color || (isInput && boundElement.val()),
            colorOnShow = false,
            currentPreferredFormat = opts.preferredFormat,
            clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange,
            isEmpty = !initialColor,
            allowEmpty = opts.allowEmpty && !isInputTypeColor;

        function applyOptions() {

            if (opts.showPaletteOnly) {
                opts.showPalette = true;
            }

            toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);

            if (opts.palette) {
                palette = opts.palette.slice(0);
                paletteArray = $.isArray(palette[0]) ? palette : [palette];
                paletteLookup = {};
                for (var i = 0; i < paletteArray.length; i++) {
                    for (var j = 0; j < paletteArray[i].length; j++) {
                        var rgb = tinycolor(paletteArray[i][j]).toRgbString();
                        paletteLookup[rgb] = true;
                    }
                }
            }

            container.toggleClass("sp-flat", flat);
            container.toggleClass("sp-input-disabled", !opts.showInput);
            container.toggleClass("sp-alpha-enabled", opts.showAlpha);
            container.toggleClass("sp-clear-enabled", allowEmpty);
            container.toggleClass("sp-buttons-disabled", !opts.showButtons);
            container.toggleClass("sp-palette-buttons-disabled", !opts.togglePaletteOnly);
            container.toggleClass("sp-palette-disabled", !opts.showPalette);
            container.toggleClass("sp-palette-only", opts.showPaletteOnly);
            container.toggleClass("sp-initial-disabled", !opts.showInitial);
            container.addClass(opts.className).addClass(opts.containerClassName);

            reflow();
        }

        function initialize() {

            if (IE) {
                container.find("*:not(input)").attr("unselectable", "on");
            }

            applyOptions();

            if (shouldReplace) {
                boundElement.after(replacer).hide();
            }

            if (!allowEmpty) {
                clearButton.hide();
            }

            if (flat) {
                boundElement.after(container).hide();
            }
            else {

                var appendTo = opts.appendTo === "parent" ? boundElement.parent() : $(opts.appendTo);
                if (appendTo.length !== 1) {
                    appendTo = $("body");
                }

                appendTo.append(container);
            }

            updateSelectionPaletteFromStorage();

            offsetElement.bind("click.spectrum touchstart.spectrum", function (e) {
                if (!disabled) {
                    toggle();
                }

                e.stopPropagation();

                if (!$(e.target).is("input")) {
                    e.preventDefault();
                }
            });

            if(boundElement.is(":disabled") || (opts.disabled === true)) {
                disable();
            }

            // Prevent clicks from bubbling up to document.  This would cause it to be hidden.
            container.click(stopPropagation);

            // Handle user typed input
            textInput.change(setFromTextInput);
            textInput.bind("paste", function () {
                setTimeout(setFromTextInput, 1);
            });
            textInput.keydown(function (e) { if (e.keyCode == 13) { setFromTextInput(); } });

            cancelButton.text(opts.cancelText);
            cancelButton.bind("click.spectrum", function (e) {
                e.stopPropagation();
                e.preventDefault();
                revert();
                hide();
            });

            clearButton.attr("title", opts.clearText);
            clearButton.bind("click.spectrum", function (e) {
                e.stopPropagation();
                e.preventDefault();
                isEmpty = true;
                move();

                if(flat) {
                    //for the flat style, this is a change event
                    updateOriginalInput(true);
                }
            });

            chooseButton.text(opts.chooseText);
            chooseButton.bind("click.spectrum", function (e) {
                e.stopPropagation();
                e.preventDefault();

                if (IE && textInput.is(":focus")) {
                    textInput.trigger('change');
                }

                if (isValid()) {
                    updateOriginalInput(true);
                    hide();
                }
            });

            toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);
            toggleButton.bind("click.spectrum", function (e) {
                e.stopPropagation();
                e.preventDefault();

                opts.showPaletteOnly = !opts.showPaletteOnly;

                // To make sure the Picker area is drawn on the right, next to the
                // Palette area (and not below the palette), first move the Palette
                // to the left to make space for the picker, plus 5px extra.
                // The 'applyOptions' function puts the whole container back into place
                // and takes care of the button-text and the sp-palette-only CSS class.
                if (!opts.showPaletteOnly && !flat) {
                    container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5));
                }
                applyOptions();
            });

            draggable(alphaSlider, function (dragX, dragY, e) {
                currentAlpha = (dragX / alphaWidth);
                isEmpty = false;
                if (e.shiftKey) {
                    currentAlpha = Math.round(currentAlpha * 10) / 10;
                }

                move();
            }, dragStart, dragStop);

            draggable(slider, function (dragX, dragY) {
                currentHue = parseFloat(dragY / slideHeight);
                isEmpty = false;
                if (!opts.showAlpha) {
                    currentAlpha = 1;
                }
                move();
            }, dragStart, dragStop);

            draggable(dragger, function (dragX, dragY, e) {

                // shift+drag should snap the movement to either the x or y axis.
                if (!e.shiftKey) {
                    shiftMovementDirection = null;
                }
                else if (!shiftMovementDirection) {
                    var oldDragX = currentSaturation * dragWidth;
                    var oldDragY = dragHeight - (currentValue * dragHeight);
                    var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY);

                    shiftMovementDirection = furtherFromX ? "x" : "y";
                }

                var setSaturation = !shiftMovementDirection || shiftMovementDirection === "x";
                var setValue = !shiftMovementDirection || shiftMovementDirection === "y";

                if (setSaturation) {
                    currentSaturation = parseFloat(dragX / dragWidth);
                }
                if (setValue) {
                    currentValue = parseFloat((dragHeight - dragY) / dragHeight);
                }

                isEmpty = false;
                if (!opts.showAlpha) {
                    currentAlpha = 1;
                }

                move();

            }, dragStart, dragStop);

            if (!!initialColor) {
                set(initialColor);

                // In case color was black - update the preview UI and set the format
                // since the set function will not run (default color is black).
                updateUI();
                currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).format;

                addColorToSelectionPalette(initialColor);
            }
            else {
                updateUI();
            }

            if (flat) {
                show();
            }

            function paletteElementClick(e) {
                if (e.data && e.data.ignore) {
                    set($(e.target).closest(".sp-thumb-el").data("color"));
                    move();
                }
                else {
                    set($(e.target).closest(".sp-thumb-el").data("color"));
                    move();
                    updateOriginalInput(true);
                    if (opts.hideAfterPaletteSelect) {
                      hide();
                    }
                }

                return false;
            }

            var paletteEvent = IE ? "mousedown.spectrum" : "click.spectrum touchstart.spectrum";
            paletteContainer.delegate(".sp-thumb-el", paletteEvent, paletteElementClick);
            initialColorContainer.delegate(".sp-thumb-el:nth-child(1)", paletteEvent, { ignore: true }, paletteElementClick);
        }

        function updateSelectionPaletteFromStorage() {

            if (localStorageKey && window.localStorage) {

                // Migrate old palettes over to new format.  May want to remove this eventually.
                try {
                    var oldPalette = window.localStorage[localStorageKey].split(",#");
                    if (oldPalette.length > 1) {
                        delete window.localStorage[localStorageKey];
                        $.each(oldPalette, function(i, c) {
                             addColorToSelectionPalette(c);
                        });
                    }
                }
                catch(e) { }

                try {
                    selectionPalette = window.localStorage[localStorageKey].split(";");
                }
                catch (e) { }
            }
        }

        function addColorToSelectionPalette(color) {
            if (showSelectionPalette) {
                var rgb = tinycolor(color).toRgbString();
                if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) {
                    selectionPalette.push(rgb);
                    while(selectionPalette.length > maxSelectionSize) {
                        selectionPalette.shift();
                    }
                }

                if (localStorageKey && window.localStorage) {
                    try {
                        window.localStorage[localStorageKey] = selectionPalette.join(";");
                    }
                    catch(e) { }
                }
            }
        }

        function getUniqueSelectionPalette() {
            var unique = [];
            if (opts.showPalette) {
                for (var i = 0; i < selectionPalette.length; i++) {
                    var rgb = tinycolor(selectionPalette[i]).toRgbString();

                    if (!paletteLookup[rgb]) {
                        unique.push(selectionPalette[i]);
                    }
                }
            }

            return unique.reverse().slice(0, opts.maxSelectionSize);
        }

        function drawPalette() {

            var currentColor = get();

            var html = $.map(paletteArray, function (palette, i) {
                return paletteTemplate(palette, currentColor, "sp-palette-row sp-palette-row-" + i, opts);
            });

            updateSelectionPaletteFromStorage();

            if (selectionPalette) {
                html.push(paletteTemplate(getUniqueSelectionPalette(), currentColor, "sp-palette-row sp-palette-row-selection", opts));
            }

            paletteContainer.html(html.join(""));
        }

        function drawInitial() {
            if (opts.showInitial) {
                var initial = colorOnShow;
                var current = get();
                initialColorContainer.html(paletteTemplate([initial, current], current, "sp-palette-row-initial", opts));
            }
        }

        function dragStart() {
            if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) {
                reflow();
            }
            isDragging = true;
            container.addClass(draggingClass);
            shiftMovementDirection = null;
            boundElement.trigger('dragstart.spectrum', [ get() ]);
        }

        function dragStop() {
            isDragging = false;
            container.removeClass(draggingClass);
            boundElement.trigger('dragstop.spectrum', [ get() ]);
        }

        function setFromTextInput() {

            var value = textInput.val();

            if ((value === null || value === "") && allowEmpty) {
                set(null);
                updateOriginalInput(true);
            }
            else {
                var tiny = tinycolor(value);
                if (tiny.isValid()) {
                    set(tiny);
                    updateOriginalInput(true);
                }
                else {
                    textInput.addClass("sp-validation-error");
                }
            }
        }

        function toggle() {
            if (visible) {
                hide();
            }
            else {
                show();
            }
        }

        function show() {
            var event = $.Event('beforeShow.spectrum');

            if (visible) {
                reflow();
                return;
            }

            boundElement.trigger(event, [ get() ]);

            if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) {
                return;
            }

            hideAll();
            visible = true;

            $(doc).bind("keydown.spectrum", onkeydown);
            $(doc).bind("click.spectrum", clickout);
            $(window).bind("resize.spectrum", resize);
            replacer.addClass("sp-active");
            container.removeClass("sp-hidden");

            reflow();
            updateUI();

            colorOnShow = get();

            drawInitial();
            callbacks.show(colorOnShow);
            boundElement.trigger('show.spectrum', [ colorOnShow ]);
        }

        function onkeydown(e) {
            // Close on ESC
            if (e.keyCode === 27) {
                hide();
            }
        }

        function clickout(e) {
            // Return on right click.
            if (e.button == 2) { return; }

            // If a drag event was happening during the mouseup, don't hide
            // on click.
            if (isDragging) { return; }

            if (clickoutFiresChange) {
                updateOriginalInput(true);
            }
            else {
                revert();
            }
            hide();
        }

        function hide() {
            // Return if hiding is unnecessary
            if (!visible || flat) { return; }
            visible = false;

            $(doc).unbind("keydown.spectrum", onkeydown);
            $(doc).unbind("click.spectrum", clickout);
            $(window).unbind("resize.spectrum", resize);

            replacer.removeClass("sp-active");
            container.addClass("sp-hidden");

            callbacks.hide(get());
            boundElement.trigger('hide.spectrum', [ get() ]);
        }

        function revert() {
            set(colorOnShow, true);
        }

        function set(color, ignoreFormatChange) {
            if (tinycolor.equals(color, get())) {
                // Update UI just in case a validation error needs
                // to be cleared.
                updateUI();
                return;
            }

            var newColor, newHsv;
            if (!color && allowEmpty) {
                isEmpty = true;
            } else {
                isEmpty = false;
                newColor = tinycolor(color);
                newHsv = newColor.toHsv();

                currentHue = (newHsv.h % 360) / 360;
                currentSaturation = newHsv.s;
                currentValue = newHsv.v;
                currentAlpha = newHsv.a;
            }
            updateUI();

            if (newColor && newColor.isValid() && !ignoreFormatChange) {
                currentPreferredFormat = opts.preferredFormat || newColor.getFormat();
            }
        }

        function get(opts) {
            opts = opts || { };

            if (allowEmpty && isEmpty) {
                return null;
            }

            return tinycolor.fromRatio({
                h: currentHue,
                s: currentSaturation,
                v: currentValue,
                a: Math.round(currentAlpha * 100) / 100
            }, { format: opts.format || currentPreferredFormat });
        }

        function isValid() {
            return !textInput.hasClass("sp-validation-error");
        }

        function move() {
            updateUI();

            callbacks.move(get());
            boundElement.trigger('move.spectrum', [ get() ]);
        }

        function updateUI() {

            textInput.removeClass("sp-validation-error");

            updateHelperLocations();

            // Update dragger background color (gradients take care of saturation and value).
            var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 });
            dragger.css("background-color", flatColor.toHexString());

            // Get a format that alpha will be included in (hex and names ignore alpha)
            var format = currentPreferredFormat;
            if (currentAlpha < 1 && !(currentAlpha === 0 && format === "name")) {
                if (format === "hex" || format === "hex3" || format === "hex6" || format === "name") {
                    format = "rgb";
                }
            }

            var realColor = get({ format: format }),
                displayColor = '';

             //reset background info for preview element
            previewElement.removeClass("sp-clear-display");
            previewElement.css('background-color', 'transparent');

            if (!realColor && allowEmpty) {
                // Update the replaced elements background with icon indicating no color selection
                previewElement.addClass("sp-clear-display");
            }
            else {
                var realHex = realColor.toHexString(),
                    realRgb = realColor.toRgbString();

                // Update the replaced elements background color (with actual selected color)
                if (rgbaSupport || realColor.alpha === 1) {
                    previewElement.css("background-color", realRgb);
                }
                else {
                    previewElement.css("background-color", "transparent");
                    previewElement.css("filter", realColor.toFilter());
                }

                if (opts.showAlpha) {
                    var rgb = realColor.toRgb();
                    rgb.a = 0;
                    var realAlpha = tinycolor(rgb).toRgbString();
                    var gradient = "linear-gradient(left, " + realAlpha + ", " + realHex + ")";

                    if (IE) {
                        alphaSliderInner.css("filter", tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex));
                    }
                    else {
                        alphaSliderInner.css("background", "-webkit-" + gradient);
                        alphaSliderInner.css("background", "-moz-" + gradient);
                        alphaSliderInner.css("background", "-ms-" + gradient);
                        // Use current syntax gradient on unprefixed property.
                        alphaSliderInner.css("background",
                            "linear-gradient(to right, " + realAlpha + ", " + realHex + ")");
                    }
                }

                displayColor = realColor.toString(format);
            }

            // Update the text entry input as it changes happen
            if (opts.showInput) {
                textInput.val(displayColor);
            }

            if (opts.showPalette) {
                drawPalette();
            }

            drawInitial();
        }

        function updateHelperLocations() {
            var s = currentSaturation;
            var v = currentValue;

            if(allowEmpty && isEmpty) {
                //if selected color is empty, hide the helpers
                alphaSlideHelper.hide();
                slideHelper.hide();
                dragHelper.hide();
            }
            else {
                //make sure helpers are visible
                alphaSlideHelper.show();
                slideHelper.show();
                dragHelper.show();

                // Where to show the little circle in that displays your current selected color
                var dragX = s * dragWidth;
                var dragY = dragHeight - (v * dragHeight);
                dragX = Math.max(
                    -dragHelperHeight,
                    Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight)
                );
                dragY = Math.max(
                    -dragHelperHeight,
                    Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight)
                );
                dragHelper.css({
                    "top": dragY + "px",
                    "left": dragX + "px"
                });

                var alphaX = currentAlpha * alphaWidth;
                alphaSlideHelper.css({
                    "left": (alphaX - (alphaSlideHelperWidth / 2)) + "px"
                });

                // Where to show the bar that displays your current selected hue
                var slideY = (currentHue) * slideHeight;
                slideHelper.css({
                    "top": (slideY - slideHelperHeight) + "px"
                });
            }
        }

        function updateOriginalInput(fireCallback) {
            var color = get(),
                displayColor = '',
                hasChanged = !tinycolor.equals(color, colorOnShow);

            if (color) {
                displayColor = color.toString(currentPreferredFormat);
                // Update the selection palette with the current color
                addColorToSelectionPalette(color);
            }

            if (isInput) {
                boundElement.val(displayColor);
            }

            if (fireCallback && hasChanged) {
                callbacks.change(color);
                boundElement.trigger('change', [ color ]);
            }
        }

        function reflow() {
            if (!visible) {
                return; // Calculations would be useless and wouldn't be reliable anyways
            }
            dragWidth = dragger.width();
            dragHeight = dragger.height();
            dragHelperHeight = dragHelper.height();
            slideWidth = slider.width();
            slideHeight = slider.height();
            slideHelperHeight = slideHelper.height();
            alphaWidth = alphaSlider.width();
            alphaSlideHelperWidth = alphaSlideHelper.width();

            if (!flat) {
                container.css("position", "absolute");
                if (opts.offset) {
                    container.offset(opts.offset);
                } else {
                    container.offset(getOffset(container, offsetElement));
                }
            }

            updateHelperLocations();

            if (opts.showPalette) {
                drawPalette();
            }

            boundElement.trigger('reflow.spectrum');
        }

        function destroy() {
            boundElement.show();
            offsetElement.unbind("click.spectrum touchstart.spectrum");
            container.remove();
            replacer.remove();
            spectrums[spect.id] = null;
        }

        function option(optionName, optionValue) {
            if (optionName === undefined) {
                return $.extend({}, opts);
            }
            if (optionValue === undefined) {
                return opts[optionName];
            }

            opts[optionName] = optionValue;

            if (optionName === "preferredFormat") {
                currentPreferredFormat = opts.preferredFormat;
            }
            applyOptions();
        }

        function enable() {
            disabled = false;
            boundElement.attr("disabled", false);
            offsetElement.removeClass("sp-disabled");
        }

        function disable() {
            hide();
            disabled = true;
            boundElement.attr("disabled", true);
            offsetElement.addClass("sp-disabled");
        }

        function setOffset(coord) {
            opts.offset = coord;
            reflow();
        }

        initialize();

        var spect = {
            show: show,
            hide: hide,
            toggle: toggle,
            reflow: reflow,
            option: option,
            enable: enable,
            disable: disable,
            offset: setOffset,
            set: function (c) {
                set(c);
                updateOriginalInput();
            },
            get: get,
            destroy: destroy,
            container: container
        };

        spect.id = spectrums.push(spect) - 1;

        return spect;
    }

    /**
    * checkOffset - get the offset below/above and left/right element depending on screen position
    * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js
    */
    function getOffset(picker, input) {
        var extraY = 0;
        var dpWidth = picker.outerWidth();
        var dpHeight = picker.outerHeight();
        var inputHeight = input.outerHeight();
        var doc = picker[0].ownerDocument;
        var docElem = doc.documentElement;
        var viewWidth = docElem.clientWidth + $(doc).scrollLeft();
        var viewHeight = docElem.clientHeight + $(doc).scrollTop();
        var offset = input.offset();
        offset.top += inputHeight;

        offset.left -=
            Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
            Math.abs(offset.left + dpWidth - viewWidth) : 0);

        offset.top -=
            Math.min(offset.top, ((offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
            Math.abs(dpHeight + inputHeight - extraY) : extraY));

        return offset;
    }

    /**
    * noop - do nothing
    */
    function noop() {

    }

    /**
    * stopPropagation - makes the code only doing this a little easier to read in line
    */
    function stopPropagation(e) {
        e.stopPropagation();
    }

    /**
    * Create a function bound to a given object
    * Thanks to underscore.js
    */
    function bind(func, obj) {
        var slice = Array.prototype.slice;
        var args = slice.call(arguments, 2);
        return function () {
            return func.apply(obj, args.concat(slice.call(arguments)));
        };
    }

    /**
    * Lightweight drag helper.  Handles containment within the element, so that
    * when dragging, the x is within [0,element.width] and y is within [0,element.height]
    */
    function draggable(element, onmove, onstart, onstop) {
        onmove = onmove || function () { };
        onstart = onstart || function () { };
        onstop = onstop || function () { };
        var doc = document;
        var dragging = false;
        var offset = {};
        var maxHeight = 0;
        var maxWidth = 0;
        var hasTouch = ('ontouchstart' in window);

        var duringDragEvents = {};
        duringDragEvents["selectstart"] = prevent;
        duringDragEvents["dragstart"] = prevent;
        duringDragEvents["touchmove mousemove"] = move;
        duringDragEvents["touchend mouseup"] = stop;

        function prevent(e) {
            if (e.stopPropagation) {
                e.stopPropagation();
            }
            if (e.preventDefault) {
                e.preventDefault();
            }
            e.returnValue = false;
        }

        function move(e) {
            if (dragging) {
                // Mouseup happened outside of window
                if (IE && doc.documentMode < 9 && !e.button) {
                    return stop();
                }

                var t0 = e.originalEvent && e.originalEvent.touches && e.originalEvent.touches[0];
                var pageX = t0 && t0.pageX || e.pageX;
                var pageY = t0 && t0.pageY || e.pageY;

                var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth));
                var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight));

                if (hasTouch) {
                    // Stop scrolling in iOS
                    prevent(e);
                }

                onmove.apply(element, [dragX, dragY, e]);
            }
        }

        function start(e) {
            var rightclick = (e.which) ? (e.which == 3) : (e.button == 2);

            if (!rightclick && !dragging) {
                if (onstart.apply(element, arguments) !== false) {
                    dragging = true;
                    maxHeight = $(element).height();
                    maxWidth = $(element).width();
                    offset = $(element).offset();

                    $(doc).bind(duringDragEvents);
                    $(doc.body).addClass("sp-dragging");

                    move(e);

                    prevent(e);
                }
            }
        }

        function stop() {
            if (dragging) {
                $(doc).unbind(duringDragEvents);
                $(doc.body).removeClass("sp-dragging");

                // Wait a tick before notifying observers to allow the click event
                // to fire in Chrome.
                setTimeout(function() {
                    onstop.apply(element, arguments);
                }, 0);
            }
            dragging = false;
        }

        $(element).bind("touchstart mousedown", start);
    }

    function throttle(func, wait, debounce) {
        var timeout;
        return function () {
            var context = this, args = arguments;
            var throttler = function () {
                timeout = null;
                func.apply(context, args);
            };
            if (debounce) clearTimeout(timeout);
            if (debounce || !timeout) timeout = setTimeout(throttler, wait);
        };
    }

    function inputTypeColorSupport() {
        return $.fn.spectrum.inputTypeColorSupport();
    }

    /**
    * Define a jQuery plugin
    */
    var dataID = "spectrum.id";
    $.fn.spectrum = function (opts, extra) {

        if (typeof opts == "string") {

            var returnValue = this;
            var args = Array.prototype.slice.call( arguments, 1 );

            this.each(function () {
                var spect = spectrums[$(this).data(dataID)];
                if (spect) {
                    var method = spect[opts];
                    if (!method) {
                        throw new Error( "Spectrum: no such method: '" + opts + "'" );
                    }

                    if (opts == "get") {
                        returnValue = spect.get();
                    }
                    else if (opts == "container") {
                        returnValue = spect.container;
                    }
                    else if (opts == "option") {
                        returnValue = spect.option.apply(spect, args);
                    }
                    else if (opts == "destroy") {
                        spect.destroy();
                        $(this).removeData(dataID);
                    }
                    else {
                        method.apply(spect, args);
                    }
                }
            });

            return returnValue;
        }

        // Initializing a new instance of spectrum
        return this.spectrum("destroy").each(function () {
            var options = $.extend({}, opts, $(this).data());
            var spect = spectrum(this, options);
            $(this).data(dataID, spect.id);
        });
    };

    $.fn.spectrum.load = true;
    $.fn.spectrum.loadOpts = {};
    $.fn.spectrum.draggable = draggable;
    $.fn.spectrum.defaults = defaultOpts;
    $.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() {
        if (typeof inputTypeColorSupport._cachedResult === "undefined") {
            var colorInput = $("<input type='color'/>")[0]; // if color element is supported, value will default to not null
            inputTypeColorSupport._cachedResult = colorInput.type === "color" && colorInput.value !== "";
        }
        return inputTypeColorSupport._cachedResult;
    };

    $.spectrum = { };
    $.spectrum.localization = { };
    $.spectrum.palettes = { };

    $.fn.spectrum.processNativeColorInputs = function () {
        var colorInputs = $("input[type=color]");
        if (colorInputs.length && !inputTypeColorSupport()) {
            colorInputs.spectrum({
                preferredFormat: "hex6"
            });
        }
    };

    // TinyColor v1.1.2
    // https://github.com/bgrins/TinyColor
    // Brian Grinstead, MIT License

    (function() {

    var trimLeft = /^[\s,#]+/,
        trimRight = /\s+$/,
        tinyCounter = 0,
        math = Math,
        mathRound = math.round,
        mathMin = math.min,
        mathMax = math.max,
        mathRandom = math.random;

    var tinycolor = function(color, opts) {

        color = (color) ? color : '';
        opts = opts || { };

        // If input is already a tinycolor, return itself
        if (color instanceof tinycolor) {
           return color;
        }
        // If we are called as a function, call using new instead
        if (!(this instanceof tinycolor)) {
            return new tinycolor(color, opts);
        }

        var rgb = inputToRGB(color);
        this._originalInput = color,
        this._r = rgb.r,
        this._g = rgb.g,
        this._b = rgb.b,
        this._a = rgb.a,
        this._roundA = mathRound(100*this._a) / 100,
        this._format = opts.format || rgb.format;
        this._gradientType = opts.gradientType;

        // Don't let the range of [0,255] come back in [0,1].
        // Potentially lose a little bit of precision here, but will fix issues where
        // .5 gets interpreted as half of the total, instead of half of 1
        // If it was supposed to be 128, this was already taken care of by `inputToRgb`
        if (this._r < 1) { this._r = mathRound(this._r); }
        if (this._g < 1) { this._g = mathRound(this._g); }
        if (this._b < 1) { this._b = mathRound(this._b); }

        this._ok = rgb.ok;
        this._tc_id = tinyCounter++;
    };

    tinycolor.prototype = {
        isDark: function() {
            return this.getBrightness() < 128;
        },
        isLight: function() {
            return !this.isDark();
        },
        isValid: function() {
            return this._ok;
        },
        getOriginalInput: function() {
          return this._originalInput;
        },
        getFormat: function() {
            return this._format;
        },
        getAlpha: function() {
            return this._a;
        },
        getBrightness: function() {
            var rgb = this.toRgb();
            return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
        },
        setAlpha: function(value) {
            this._a = boundAlpha(value);
            this._roundA = mathRound(100*this._a) / 100;
            return this;
        },
        toHsv: function() {
            var hsv = rgbToHsv(this._r, this._g, this._b);
            return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };
        },
        toHsvString: function() {
            var hsv = rgbToHsv(this._r, this._g, this._b);
            var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);
            return (this._a == 1) ?
              "hsv("  + h + ", " + s + "%, " + v + "%)" :
              "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")";
        },
        toHsl: function() {
            var hsl = rgbToHsl(this._r, this._g, this._b);
            return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };
        },
        toHslString: function() {
            var hsl = rgbToHsl(this._r, this._g, this._b);
            var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);
            return (this._a == 1) ?
              "hsl("  + h + ", " + s + "%, " + l + "%)" :
              "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")";
        },
        toHex: function(allow3Char) {
            return rgbToHex(this._r, this._g, this._b, allow3Char);
        },
        toHexString: function(allow3Char) {
            return '#' + this.toHex(allow3Char);
        },
        toHex8: function() {
            return rgbaToHex(this._r, this._g, this._b, this._a);
        },
        toHex8String: function() {
            return '#' + this.toHex8();
        },
        toRgb: function() {
            return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };
        },
        toRgbString: function() {
            return (this._a == 1) ?
              "rgb("  + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" :
              "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")";
        },
        toPercentageRgb: function() {
            return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a };
        },
        toPercentageRgbString: function() {
            return (this._a == 1) ?
              "rgb("  + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" :
              "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")";
        },
        toName: function() {
            if (this._a === 0) {
                return "transparent";
            }

            if (this._a < 1) {
                return false;
            }

            return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;
        },
        toFilter: function(secondColor) {
            var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a);
            var secondHex8String = hex8String;
            var gradientType = this._gradientType ? "GradientType = 1, " : "";

            if (secondColor) {
                var s = tinycolor(secondColor);
                secondHex8String = s.toHex8String();
            }

            return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")";
        },
        toString: function(format) {
            var formatSet = !!format;
            format = format || this._format;

            var formattedString = false;
            var hasAlpha = this._a < 1 && this._a >= 0;
            var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "name");

            if (needsAlphaFormat) {
                // Special case for "transparent", all other non-alpha formats
                // will return rgba when there is transparency.
                if (format === "name" && this._a === 0) {
                    return this.toName();
                }
                return this.toRgbString();
            }
            if (format === "rgb") {
                formattedString = this.toRgbString();
            }
            if (format === "prgb") {
                formattedString = this.toPercentageRgbString();
            }
            if (format === "hex" || format === "hex6") {
                formattedString = this.toHexString();
            }
            if (format === "hex3") {
                formattedString = this.toHexString(true);
            }
            if (format === "hex8") {
                formattedString = this.toHex8String();
            }
            if (format === "name") {
                formattedString = this.toName();
            }
            if (format === "hsl") {
                formattedString = this.toHslString();
            }
            if (format === "hsv") {
                formattedString = this.toHsvString();
            }

            return formattedString || this.toHexString();
        },

        _applyModification: function(fn, args) {
            var color = fn.apply(null, [this].concat([].slice.call(args)));
            this._r = color._r;
            this._g = color._g;
            this._b = color._b;
            this.setAlpha(color._a);
            return this;
        },
        lighten: function() {
            return this._applyModification(lighten, arguments);
        },
        brighten: function() {
            return this._applyModification(brighten, arguments);
        },
        darken: function() {
            return this._applyModification(darken, arguments);
        },
        desaturate: function() {
            return this._applyModification(desaturate, arguments);
        },
        saturate: function() {
            return this._applyModification(saturate, arguments);
        },
        greyscale: function() {
            return this._applyModification(greyscale, arguments);
        },
        spin: function() {
            return this._applyModification(spin, arguments);
        },

        _applyCombination: function(fn, args) {
            return fn.apply(null, [this].concat([].slice.call(args)));
        },
        analogous: function() {
            return this._applyCombination(analogous, arguments);
        },
        complement: function() {
            return this._applyCombination(complement, arguments);
        },
        monochromatic: function() {
            return this._applyCombination(monochromatic, arguments);
        },
        splitcomplement: function() {
            return this._applyCombination(splitcomplement, arguments);
        },
        triad: function() {
            return this._applyCombination(triad, arguments);
        },
        tetrad: function() {
            return this._applyCombination(tetrad, arguments);
        }
    };

    // If input is an object, force 1 into "1.0" to handle ratios properly
    // String input requires "1.0" as input, so 1 will be treated as 1
    tinycolor.fromRatio = function(color, opts) {
        if (typeof color == "object") {
            var newColor = {};
            for (var i in color) {
                if (color.hasOwnProperty(i)) {
                    if (i === "a") {
                        newColor[i] = color[i];
                    }
                    else {
                        newColor[i] = convertToPercentage(color[i]);
                    }
                }
            }
            color = newColor;
        }

        return tinycolor(color, opts);
    };

    // Given a string or object, convert that input to RGB
    // Possible string inputs:
    //
    //     "red"
    //     "#f00" or "f00"
    //     "#ff0000" or "ff0000"
    //     "#ff000000" or "ff000000"
    //     "rgb 255 0 0" or "rgb (255, 0, 0)"
    //     "rgb 1.0 0 0" or "rgb (1, 0, 0)"
    //     "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
    //     "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
    //     "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
    //     "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
    //     "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
    //
    function inputToRGB(color) {

        var rgb = { r: 0, g: 0, b: 0 };
        var a = 1;
        var ok = false;
        var format = false;

        if (typeof color == "string") {
            color = stringInputToObject(color);
        }

        if (typeof color == "object") {
            if (color.hasOwnProperty("r") && color.hasOwnProperty("g") && color.hasOwnProperty("b")) {
                rgb = rgbToRgb(color.r, color.g, color.b);
                ok = true;
                format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
            }
            else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("v")) {
                color.s = convertToPercentage(color.s);
                color.v = convertToPercentage(color.v);
                rgb = hsvToRgb(color.h, color.s, color.v);
                ok = true;
                format = "hsv";
            }
            else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("l")) {
                color.s = convertToPercentage(color.s);
                color.l = convertToPercentage(color.l);
                rgb = hslToRgb(color.h, color.s, color.l);
                ok = true;
                format = "hsl";
            }

            if (color.hasOwnProperty("a")) {
                a = color.a;
            }
        }

        a = boundAlpha(a);

        return {
            ok: ok,
            format: color.format || format,
            r: mathMin(255, mathMax(rgb.r, 0)),
            g: mathMin(255, mathMax(rgb.g, 0)),
            b: mathMin(255, mathMax(rgb.b, 0)),
            a: a
        };
    }


    // Conversion Functions
    // --------------------

    // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
    // <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>

    // `rgbToRgb`
    // Handle bounds / percentage checking to conform to CSS color spec
    // <http://www.w3.org/TR/css3-color/>
    // *Assumes:* r, g, b in [0, 255] or [0, 1]
    // *Returns:* { r, g, b } in [0, 255]
    function rgbToRgb(r, g, b){
        return {
            r: bound01(r, 255) * 255,
            g: bound01(g, 255) * 255,
            b: bound01(b, 255) * 255
        };
    }

    // `rgbToHsl`
    // Converts an RGB color value to HSL.
    // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
    // *Returns:* { h, s, l } in [0,1]
    function rgbToHsl(r, g, b) {

        r = bound01(r, 255);
        g = bound01(g, 255);
        b = bound01(b, 255);

        var max = mathMax(r, g, b), min = mathMin(r, g, b);
        var h, s, l = (max + min) / 2;

        if(max == min) {
            h = s = 0; // achromatic
        }
        else {
            var d = max - min;
            s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
            switch(max) {
                case r: h = (g - b) / d + (g < b ? 6 : 0); break;
                case g: h = (b - r) / d + 2; break;
                case b: h = (r - g) / d + 4; break;
            }

            h /= 6;
        }

        return { h: h, s: s, l: l };
    }

    // `hslToRgb`
    // Converts an HSL color value to RGB.
    // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
    // *Returns:* { r, g, b } in the set [0, 255]
    function hslToRgb(h, s, l) {
        var r, g, b;

        h = bound01(h, 360);
        s = bound01(s, 100);
        l = bound01(l, 100);

        function hue2rgb(p, q, t) {
            if(t < 0) t += 1;
            if(t > 1) t -= 1;
            if(t < 1/6) return p + (q - p) * 6 * t;
            if(t < 1/2) return q;
            if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
            return p;
        }

        if(s === 0) {
            r = g = b = l; // achromatic
        }
        else {
            var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
            var p = 2 * l - q;
            r = hue2rgb(p, q, h + 1/3);
            g = hue2rgb(p, q, h);
            b = hue2rgb(p, q, h - 1/3);
        }

        return { r: r * 255, g: g * 255, b: b * 255 };
    }

    // `rgbToHsv`
    // Converts an RGB color value to HSV
    // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
    // *Returns:* { h, s, v } in [0,1]
    function rgbToHsv(r, g, b) {

        r = bound01(r, 255);
        g = bound01(g, 255);
        b = bound01(b, 255);

        var max = mathMax(r, g, b), min = mathMin(r, g, b);
        var h, s, v = max;

        var d = max - min;
        s = max === 0 ? 0 : d / max;

        if(max == min) {
            h = 0; // achromatic
        }
        else {
            switch(max) {
                case r: h = (g - b) / d + (g < b ? 6 : 0); break;
                case g: h = (b - r) / d + 2; break;
                case b: h = (r - g) / d + 4; break;
            }
            h /= 6;
        }
        return { h: h, s: s, v: v };
    }

    // `hsvToRgb`
    // Converts an HSV color value to RGB.
    // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
    // *Returns:* { r, g, b } in the set [0, 255]
     function hsvToRgb(h, s, v) {

        h = bound01(h, 360) * 6;
        s = bound01(s, 100);
        v = bound01(v, 100);

        var i = math.floor(h),
            f = h - i,
            p = v * (1 - s),
            q = v * (1 - f * s),
            t = v * (1 - (1 - f) * s),
            mod = i % 6,
            r = [v, q, p, p, t, v][mod],
            g = [t, v, v, q, p, p][mod],
            b = [p, p, t, v, v, q][mod];

        return { r: r * 255, g: g * 255, b: b * 255 };
    }

    // `rgbToHex`
    // Converts an RGB color to hex
    // Assumes r, g, and b are contained in the set [0, 255]
    // Returns a 3 or 6 character hex
    function rgbToHex(r, g, b, allow3Char) {

        var hex = [
            pad2(mathRound(r).toString(16)),
            pad2(mathRound(g).toString(16)),
            pad2(mathRound(b).toString(16))
        ];

        // Return a 3 character hex if possible
        if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {
            return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
        }

        return hex.join("");
    }
        // `rgbaToHex`
        // Converts an RGBA color plus alpha transparency to hex
        // Assumes r, g, b and a are contained in the set [0, 255]
        // Returns an 8 character hex
        function rgbaToHex(r, g, b, a) {

            var hex = [
                pad2(convertDecimalToHex(a)),
                pad2(mathRound(r).toString(16)),
                pad2(mathRound(g).toString(16)),
                pad2(mathRound(b).toString(16))
            ];

            return hex.join("");
        }

    // `equals`
    // Can be called with any tinycolor input
    tinycolor.equals = function (color1, color2) {
        if (!color1 || !color2) { return false; }
        return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();
    };
    tinycolor.random = function() {
        return tinycolor.fromRatio({
            r: mathRandom(),
            g: mathRandom(),
            b: mathRandom()
        });
    };


    // Modification Functions
    // ----------------------
    // Thanks to less.js for some of the basics here
    // <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>

    function desaturate(color, amount) {
        amount = (amount === 0) ? 0 : (amount || 10);
        var hsl = tinycolor(color).toHsl();
        hsl.s -= amount / 100;
        hsl.s = clamp01(hsl.s);
        return tinycolor(hsl);
    }

    function saturate(color, amount) {
        amount = (amount === 0) ? 0 : (amount || 10);
        var hsl = tinycolor(color).toHsl();
        hsl.s += amount / 100;
        hsl.s = clamp01(hsl.s);
        return tinycolor(hsl);
    }

    function greyscale(color) {
        return tinycolor(color).desaturate(100);
    }

    function lighten (color, amount) {
        amount = (amount === 0) ? 0 : (amount || 10);
        var hsl = tinycolor(color).toHsl();
        hsl.l += amount / 100;
        hsl.l = clamp01(hsl.l);
        return tinycolor(hsl);
    }

    function brighten(color, amount) {
        amount = (amount === 0) ? 0 : (amount || 10);
        var rgb = tinycolor(color).toRgb();
        rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));
        rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));
        rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));
        return tinycolor(rgb);
    }

    function darken (color, amount) {
        amount = (amount === 0) ? 0 : (amount || 10);
        var hsl = tinycolor(color).toHsl();
        hsl.l -= amount / 100;
        hsl.l = clamp01(hsl.l);
        return tinycolor(hsl);
    }

    // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.
    // Values outside of this range will be wrapped into this range.
    function spin(color, amount) {
        var hsl = tinycolor(color).toHsl();
        var hue = (mathRound(hsl.h) + amount) % 360;
        hsl.h = hue < 0 ? 360 + hue : hue;
        return tinycolor(hsl);
    }

    // Combination Functions
    // ---------------------
    // Thanks to jQuery xColor for some of the ideas behind these
    // <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>

    function complement(color) {
        var hsl = tinycolor(color).toHsl();
        hsl.h = (hsl.h + 180) % 360;
        return tinycolor(hsl);
    }

    function triad(color) {
        var hsl = tinycolor(color).toHsl();
        var h = hsl.h;
        return [
            tinycolor(color),
            tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),
            tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })
        ];
    }

    function tetrad(color) {
        var hsl = tinycolor(color).toHsl();
        var h = hsl.h;
        return [
            tinycolor(color),
            tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),
            tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),
            tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })
        ];
    }

    function splitcomplement(color) {
        var hsl = tinycolor(color).toHsl();
        var h = hsl.h;
        return [
            tinycolor(color),
            tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),
            tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})
        ];
    }

    function analogous(color, results, slices) {
        results = results || 6;
        slices = slices || 30;

        var hsl = tinycolor(color).toHsl();
        var part = 360 / slices;
        var ret = [tinycolor(color)];

        for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {
            hsl.h = (hsl.h + part) % 360;
            ret.push(tinycolor(hsl));
        }
        return ret;
    }

    function monochromatic(color, results) {
        results = results || 6;
        var hsv = tinycolor(color).toHsv();
        var h = hsv.h, s = hsv.s, v = hsv.v;
        var ret = [];
        var modification = 1 / results;

        while (results--) {
            ret.push(tinycolor({ h: h, s: s, v: v}));
            v = (v + modification) % 1;
        }

        return ret;
    }

    // Utility Functions
    // ---------------------

    tinycolor.mix = function(color1, color2, amount) {
        amount = (amount === 0) ? 0 : (amount || 50);

        var rgb1 = tinycolor(color1).toRgb();
        var rgb2 = tinycolor(color2).toRgb();

        var p = amount / 100;
        var w = p * 2 - 1;
        var a = rgb2.a - rgb1.a;

        var w1;

        if (w * a == -1) {
            w1 = w;
        } else {
            w1 = (w + a) / (1 + w * a);
        }

        w1 = (w1 + 1) / 2;

        var w2 = 1 - w1;

        var rgba = {
            r: rgb2.r * w1 + rgb1.r * w2,
            g: rgb2.g * w1 + rgb1.g * w2,
            b: rgb2.b * w1 + rgb1.b * w2,
            a: rgb2.a * p  + rgb1.a * (1 - p)
        };

        return tinycolor(rgba);
    };


    // Readability Functions
    // ---------------------
    // <http://www.w3.org/TR/AERT#color-contrast>

    // `readability`
    // Analyze the 2 colors and returns an object with the following properties:
    //    `brightness`: difference in brightness between the two colors
    //    `color`: difference in color/hue between the two colors
    tinycolor.readability = function(color1, color2) {
        var c1 = tinycolor(color1);
        var c2 = tinycolor(color2);
        var rgb1 = c1.toRgb();
        var rgb2 = c2.toRgb();
        var brightnessA = c1.getBrightness();
        var brightnessB = c2.getBrightness();
        var colorDiff = (
            Math.max(rgb1.r, rgb2.r) - Math.min(rgb1.r, rgb2.r) +
            Math.max(rgb1.g, rgb2.g) - Math.min(rgb1.g, rgb2.g) +
            Math.max(rgb1.b, rgb2.b) - Math.min(rgb1.b, rgb2.b)
        );

        return {
            brightness: Math.abs(brightnessA - brightnessB),
            color: colorDiff
        };
    };

    // `readable`
    // http://www.w3.org/TR/AERT#color-contrast
    // Ensure that foreground and background color combinations provide sufficient contrast.
    // *Example*
    //    tinycolor.isReadable("#000", "#111") => false
    tinycolor.isReadable = function(color1, color2) {
        var readability = tinycolor.readability(color1, color2);
        return readability.brightness > 125 && readability.color > 500;
    };

    // `mostReadable`
    // Given a base color and a list of possible foreground or background
    // colors for that base, returns the most readable color.
    // *Example*
    //    tinycolor.mostReadable("#123", ["#fff", "#000"]) => "#000"
    tinycolor.mostReadable = function(baseColor, colorList) {
        var bestColor = null;
        var bestScore = 0;
        var bestIsReadable = false;
        for (var i=0; i < colorList.length; i++) {

            // We normalize both around the "acceptable" breaking point,
            // but rank brightness constrast higher than hue.

            var readability = tinycolor.readability(baseColor, colorList[i]);
            var readable = readability.brightness > 125 && readability.color > 500;
            var score = 3 * (readability.brightness / 125) + (readability.color / 500);

            if ((readable && ! bestIsReadable) ||
                (readable && bestIsReadable && score > bestScore) ||
                ((! readable) && (! bestIsReadable) && score > bestScore)) {
                bestIsReadable = readable;
                bestScore = score;
                bestColor = tinycolor(colorList[i]);
            }
        }
        return bestColor;
    };


    // Big List of Colors
    // ------------------
    // <http://www.w3.org/TR/css3-color/#svg-color>
    var names = tinycolor.names = {
        aliceblue: "f0f8ff",
        antiquewhite: "faebd7",
        aqua: "0ff",
        aquamarine: "7fffd4",
        azure: "f0ffff",
        beige: "f5f5dc",
        bisque: "ffe4c4",
        black: "000",
        blanchedalmond: "ffebcd",
        blue: "00f",
        blueviolet: "8a2be2",
        brown: "a52a2a",
        burlywood: "deb887",
        burntsienna: "ea7e5d",
        cadetblue: "5f9ea0",
        chartreuse: "7fff00",
        chocolate: "d2691e",
        coral: "ff7f50",
        cornflowerblue: "6495ed",
        cornsilk: "fff8dc",
        crimson: "dc143c",
        cyan: "0ff",
        darkblue: "00008b",
        darkcyan: "008b8b",
        darkgoldenrod: "b8860b",
        darkgray: "a9a9a9",
        darkgreen: "006400",
        darkgrey: "a9a9a9",
        darkkhaki: "bdb76b",
        darkmagenta: "8b008b",
        darkolivegreen: "556b2f",
        darkorange: "ff8c00",
        darkorchid: "9932cc",
        darkred: "8b0000",
        darksalmon: "e9967a",
        darkseagreen: "8fbc8f",
        darkslateblue: "483d8b",
        darkslategray: "2f4f4f",
        darkslategrey: "2f4f4f",
        darkturquoise: "00ced1",
        darkviolet: "9400d3",
        deeppink: "ff1493",
        deepskyblue: "00bfff",
        dimgray: "696969",
        dimgrey: "696969",
        dodgerblue: "1e90ff",
        firebrick: "b22222",
        floralwhite: "fffaf0",
        forestgreen: "228b22",
        fuchsia: "f0f",
        gainsboro: "dcdcdc",
        ghostwhite: "f8f8ff",
        gold: "ffd700",
        goldenrod: "daa520",
        gray: "808080",
        green: "008000",
        greenyellow: "adff2f",
        grey: "808080",
        honeydew: "f0fff0",
        hotpink: "ff69b4",
        indianred: "cd5c5c",
        indigo: "4b0082",
        ivory: "fffff0",
        khaki: "f0e68c",
        lavender: "e6e6fa",
        lavenderblush: "fff0f5",
        lawngreen: "7cfc00",
        lemonchiffon: "fffacd",
        lightblue: "add8e6",
        lightcoral: "f08080",
        lightcyan: "e0ffff",
        lightgoldenrodyellow: "fafad2",
        lightgray: "d3d3d3",
        lightgreen: "90ee90",
        lightgrey: "d3d3d3",
        lightpink: "ffb6c1",
        lightsalmon: "ffa07a",
        lightseagreen: "20b2aa",
        lightskyblue: "87cefa",
        lightslategray: "789",
        lightslategrey: "789",
        lightsteelblue: "b0c4de",
        lightyellow: "ffffe0",
        lime: "0f0",
        limegreen: "32cd32",
        linen: "faf0e6",
        magenta: "f0f",
        maroon: "800000",
        mediumaquamarine: "66cdaa",
        mediumblue: "0000cd",
        mediumorchid: "ba55d3",
        mediumpurple: "9370db",
        mediumseagreen: "3cb371",
        mediumslateblue: "7b68ee",
        mediumspringgreen: "00fa9a",
        mediumturquoise: "48d1cc",
        mediumvioletred: "c71585",
        midnightblue: "191970",
        mintcream: "f5fffa",
        mistyrose: "ffe4e1",
        moccasin: "ffe4b5",
        navajowhite: "ffdead",
        navy: "000080",
        oldlace: "fdf5e6",
        olive: "808000",
        olivedrab: "6b8e23",
        orange: "ffa500",
        orangered: "ff4500",
        orchid: "da70d6",
        palegoldenrod: "eee8aa",
        palegreen: "98fb98",
        paleturquoise: "afeeee",
        palevioletred: "db7093",
        papayawhip: "ffefd5",
        peachpuff: "ffdab9",
        peru: "cd853f",
        pink: "ffc0cb",
        plum: "dda0dd",
        powderblue: "b0e0e6",
        purple: "800080",
        rebeccapurple: "663399",
        red: "f00",
        rosybrown: "bc8f8f",
        royalblue: "4169e1",
        saddlebrown: "8b4513",
        salmon: "fa8072",
        sandybrown: "f4a460",
        seagreen: "2e8b57",
        seashell: "fff5ee",
        sienna: "a0522d",
        silver: "c0c0c0",
        skyblue: "87ceeb",
        slateblue: "6a5acd",
        slategray: "708090",
        slategrey: "708090",
        snow: "fffafa",
        springgreen: "00ff7f",
        steelblue: "4682b4",
        tan: "d2b48c",
        teal: "008080",
        thistle: "d8bfd8",
        tomato: "ff6347",
        turquoise: "40e0d0",
        violet: "ee82ee",
        wheat: "f5deb3",
        white: "fff",
        whitesmoke: "f5f5f5",
        yellow: "ff0",
        yellowgreen: "9acd32"
    };

    // Make it easy to access colors via `hexNames[hex]`
    var hexNames = tinycolor.hexNames = flip(names);


    // Utilities
    // ---------

    // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`
    function flip(o) {
        var flipped = { };
        for (var i in o) {
            if (o.hasOwnProperty(i)) {
                flipped[o[i]] = i;
            }
        }
        return flipped;
    }

    // Return a valid alpha value [0,1] with all invalid values being set to 1
    function boundAlpha(a) {
        a = parseFloat(a);

        if (isNaN(a) || a < 0 || a > 1) {
            a = 1;
        }

        return a;
    }

    // Take input from [0, n] and return it as [0, 1]
    function bound01(n, max) {
        if (isOnePointZero(n)) { n = "100%"; }

        var processPercent = isPercentage(n);
        n = mathMin(max, mathMax(0, parseFloat(n)));

        // Automatically convert percentage into number
        if (processPercent) {
            n = parseInt(n * max, 10) / 100;
        }

        // Handle floating point rounding errors
        if ((math.abs(n - max) < 0.000001)) {
            return 1;
        }

        // Convert into [0, 1] range if it isn't already
        return (n % max) / parseFloat(max);
    }

    // Force a number between 0 and 1
    function clamp01(val) {
        return mathMin(1, mathMax(0, val));
    }

    // Parse a base-16 hex value into a base-10 integer
    function parseIntFromHex(val) {
        return parseInt(val, 16);
    }

    // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
    // <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
    function isOnePointZero(n) {
        return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1;
    }

    // Check to see if string passed in is a percentage
    function isPercentage(n) {
        return typeof n === "string" && n.indexOf('%') != -1;
    }

    // Force a hex value to have 2 characters
    function pad2(c) {
        return c.length == 1 ? '0' + c : '' + c;
    }

    // Replace a decimal with it's percentage value
    function convertToPercentage(n) {
        if (n <= 1) {
            n = (n * 100) + "%";
        }

        return n;
    }

    // Converts a decimal to a hex value
    function convertDecimalToHex(d) {
        return Math.round(parseFloat(d) * 255).toString(16);
    }
    // Converts a hex value to a decimal
    function convertHexToDecimal(h) {
        return (parseIntFromHex(h) / 255);
    }

    var matchers = (function() {

        // <http://www.w3.org/TR/css3-values/#integers>
        var CSS_INTEGER = "[-\\+]?\\d+%?";

        // <http://www.w3.org/TR/css3-values/#number-value>
        var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";

        // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.
        var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";

        // Actual matching.
        // Parentheses and commas are optional, but not required.
        // Whitespace can take the place of commas or opening paren
        var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
        var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";

        return {
            rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
            rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
            hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
            hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
            hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
            hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
            hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
            hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
            hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
        };
    })();

    // `stringInputToObject`
    // Permissive string parsing.  Take in a number of formats, and output an object
    // based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
    function stringInputToObject(color) {

        color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
        var named = false;
        if (names[color]) {
            color = names[color];
            named = true;
        }
        else if (color == 'transparent') {
            return { r: 0, g: 0, b: 0, a: 0, format: "name" };
        }

        // Try to match string input using regular expressions.
        // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
        // Just return an object and let the conversion functions handle that.
        // This way the result will be the same whether the tinycolor is initialized with string or object.
        var match;
        if ((match = matchers.rgb.exec(color))) {
            return { r: match[1], g: match[2], b: match[3] };
        }
        if ((match = matchers.rgba.exec(color))) {
            return { r: match[1], g: match[2], b: match[3], a: match[4] };
        }
        if ((match = matchers.hsl.exec(color))) {
            return { h: match[1], s: match[2], l: match[3] };
        }
        if ((match = matchers.hsla.exec(color))) {
            return { h: match[1], s: match[2], l: match[3], a: match[4] };
        }
        if ((match = matchers.hsv.exec(color))) {
            return { h: match[1], s: match[2], v: match[3] };
        }
        if ((match = matchers.hsva.exec(color))) {
            return { h: match[1], s: match[2], v: match[3], a: match[4] };
        }
        if ((match = matchers.hex8.exec(color))) {
            return {
                a: convertHexToDecimal(match[1]),
                r: parseIntFromHex(match[2]),
                g: parseIntFromHex(match[3]),
                b: parseIntFromHex(match[4]),
                format: named ? "name" : "hex8"
            };
        }
        if ((match = matchers.hex6.exec(color))) {
            return {
                r: parseIntFromHex(match[1]),
                g: parseIntFromHex(match[2]),
                b: parseIntFromHex(match[3]),
                format: named ? "name" : "hex"
            };
        }
        if ((match = matchers.hex3.exec(color))) {
            return {
                r: parseIntFromHex(match[1] + '' + match[1]),
                g: parseIntFromHex(match[2] + '' + match[2]),
                b: parseIntFromHex(match[3] + '' + match[3]),
                format: named ? "name" : "hex"
            };
        }

        return false;
    }

    window.tinycolor = tinycolor;
    })();

    $(function () {
        if ($.fn.spectrum.load) {
            $.fn.spectrum.processNativeColorInputs();
        }
    });

});