pull/66/head
Andy Wermke 12 years ago
commit 92cd7f34b0

@ -31,7 +31,8 @@ RewriteEngine On
RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico
# security rules
RewriteRule .git - [F]
RewriteRule ^/?(README(.md)?|INSTALL|LICENSE|SQL|bin|CHANGELOG)$ - [F]
RewriteRule ^/?(README(.md)?|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ - [F]
RewriteRule ^/?(SQL|bin) - [F]
</IfModule>
<IfModule mod_deflate.c>

@ -0,0 +1,80 @@
[main]
host = https://www.transifex.com
lang_map = be: be_BE, sr: sr_CS, fa: fa_AF
type = PHP_ALT_ARRAY
[roundcube-webmail.labels]
file_filter = program/localization/<lang>/labels.inc
source_file = program/localization/en_US/labels.inc
source_lang = en_US
[roundcube-webmail.messages]
file_filter = program/localization/<lang>/messages.inc
source_file = program/localization/en_US/messages.inc
source_lang = en_US
[roundcube-webmail.plugin-acl]
file_filter = plugins/acl/localization/<lang>.inc
source_file = plugins/acl/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-archive]
file_filter = plugins/archive/localization/<lang>.inc
source_file = plugins/archive/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-help]
file_filter = plugins/help/localization/<lang>.inc
source_file = plugins/help/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-hide_blockquote]
file_filter = plugins/hide_blockquote/localization/<lang>.inc
source_file = plugins/hide_blockquote/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-managesieve]
file_filter = plugins/managesieve/localization/<lang>.inc
source_file = plugins/managesieve/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-markasjunk]
file_filter = plugins/markasjunk/localization/<lang>.inc
source_file = plugins/markasjunk/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-new_user_dialog]
file_filter = plugins/new_user_dialog/localization/<lang>.inc
source_file = plugins/new_user_dialog/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-newmail_notifier]
file_filter = plugins/newmail_notifier/localization/<lang>.inc
source_file = plugins/newmail_notifier/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-password]
file_filter = plugins/password/localization/<lang>.inc
source_file = plugins/password/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-subscriptions_option]
file_filter = plugins/subscriptions_option/localization/<lang>.inc
source_file = plugins/subscriptions_option/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-userinfo]
file_filter = plugins/userinfo/localization/<lang>.inc
source_file = plugins/userinfo/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-vcard_attachments]
file_filter = plugins/vcard_attachments/localization/<lang>.inc
source_file = plugins/vcard_attachments/localization/en_US.inc
source_lang = en_US
[roundcube-webmail.plugin-zipdownload]
file_filter = plugins/zipdownload/localization/<lang>.inc
source_file = plugins/zipdownload/localization/en_US.inc
source_lang = en_US

@ -1,13 +1,87 @@
CHANGELOG Roundcube Webmail
===========================
- Fix possible header duplicates when using additional headers (#1489033)
- Fix session issues with use_https=true (#1488986)
- Fix blockquote width in sent mail (#1489031)
- Fix keyboard events on list widgets in Internet Explorer (#1489025)
- Call resize handler in intervals to prevent lags and double onresize calls in Chrome (#1489005)
- Add rel="noreferrer" for links in displayed messages (#1484686)
- Add ability to toggle between HTML and text while viewing a message (#1486939)
- Remove "HTML message" from attachments list while viewing a message in text mode (#1486939)
- Support IMAP MOVE extension [RFC 6851]
- Add attachment menu with Open and Download options (#1488975)
- Display user-friendly message on IMAP "over quota" errors (#1484164)
- Extended archive plugin with user-configurable options to store messages into subfolders
- Fix export of selected contacts from search result (#1488905)
- Feature to export only selected contacts from addressbook (by Phil Weir)
RELEASE 0.9-rc2
---------------
- Fix security issue in save-pref command
- Remove sig_above configuration option, use reply_mode only (#1489001)
- Refresh current folder in opener window after draft save or message sent (#1488997)
- Fix saving draft just after entering compose window (#1489012)
- Fix javascript error in IE9 when loading form with placeholders into an iframe (#1489008)
- Fix handling of some conditional comment tags in HTML message (#1489004)
- Fix so forward as attachment works if additional attachment is added by message_compose hook (#1489000)
- Better handling of session errors in ajax requests (#1488960)
- Fix HTML part detection for some specific message structures (#1488992)
- Don't show fake address - phishing prevention (#1488981)
- Fix forward as attachment bug with editormode != 1 (#1488991)
- Fix LIMIT/OFFSET queries handling on MS SQL Server (#1488984)
- Fix so task name can really contain all from a-z0-9_- characters (#1488941)
- Fix javascript errors when working in a page opened with taget="_blank"
- Mention SQLite database format change in UPGRADING file (#1488983)
- Increase maxlength to 254 chars for email input fields in addressbook (#1488987)
- Fix thumbnail size when GD extension is used for image resize (#1488985)
- Display notice that message is encrypted also for application/pkcs7-mime messages (#1488526)
RELEASE 0.9-rc
--------------
- Fix plain text spellchecker incorrect highlighting in non-ASCII text (#1488973)
- Add workaround for invalid message charset detection by IMAP servers (#1488968)
- Fix NUL characters in content-type of ms-tnef attachment (#1488964)
- Fix regression in handling LDAP contact identifiers (#1488959)
- Updated translations from Transifex
- Fix buggy error template in a frame (#1488938)
- Add addressbook widget on compose page in classic skin
- Add search box to compose address book widget (#1488381)
- Fix login in case when default_host is an array with one element (#1488928)
- Use LDAP fallback hosts on connect + bind instead of ldap_connect() only.
- Add config option for LDAP bind timeout (sets LDAP_OPT_NETWORK_TIMEOUT option)
- Submit Addressbook advanced search form with Enter key (#1488568)
- Also block remote images in HTML part view (#1488827)
- Improved database schema upgrade procedure, added updatedb.sh script
- Force autocommit mode in mysql database driver (#1488902)
RELEASE 0.9-beta
----------------
- Fix searching by date in address book (#1488888)
- Improve charset detection by prioritizing charset according to user language (#1485669)
- Fix handling of escaped separator in vCard file (#1488896)
- Add option to use envelope From address for MDN responses (#1488880)
- Add possibility to search in message body only (#1488770)
- Support "multipart/relative" as an alias for "multipart/related" type (#1488886)
- Display PGP/MIME signature attachments as "Digital Signature" (#1488570)
- Workaround UW-IMAP bug where hierarchy separator is added to the shared folder name (#1488879)
- Fix version comparisons with -stable suffix (#1488876)
- Add unsupported alternative parts to attachments list (#1488870)
- Add Compose button on message view page (#1488747)
- Display 'Sender' header in message preview
- Plugin API: Added message_before_send hook
- Fix contact copy/add-to-group operations on search result (#1488862)
- Use matching identity in MDN response (#1488864)
- Fix handling of signatures on draft edit (#1488798)
- Fix so compacting of non-empty folder is possible also when messages list is empty (#1488858)
- Allow forwarding of multiple emails (#1486854)
- Fix big memory consumption of DB layer (#1488856)
- Fix broken message/part bodies when FETCH response contains more untagged lines (#1488836)
- Fix empty email on identities list after identity update (#1488834)
- Add new identities_level: (4) one identity with possibility to edit only signature
- Use Delivered-To and Envelope-To headers for identity selection (#1488840, #1488553)
- Fix XSS vulnerability using Flash files (#1488828)
- Fix absolute positioning in HTML messages (#1488819)
- Fix cache (in)validation after setting \Deleted flag
- Fix keybord events on messages list in opera browser (#1488823)
- Fix selection of collapsed thread rows (#1488772)
- Always save drafts with format=flowed in order to keep original line wraps (#1488799)
- Fix wrapping of quoted text with format=flowed (#1488177)
- Select default_addressbook on the list in Address Book (#1488280)
- Fix so mobile phone has TYPE=CELL in exported vCard (#1488812)
- Support contacts import from CSV file (#1486399)
@ -65,6 +139,18 @@ CHANGELOG Roundcube Webmail
Better classes separation
Framework files moved to lib/Roundcube
RELEASE 0.8.5
-------------
- Fix #countcontrols issue in IE<=8 when text is very long (#1488890)
- Fix unwanted horizontal scrollbar in message preview header (#1488866)
- Add workaround for IE<=8 bug where Content-Disposition:inline was ignored (#1488844)
- Fix XSS vulnerability in vbscript: and data:text links handling (#1488850)
- Fix absolute positioning in HTML messages (#1488819)
- Fix cache (in)validation after setting \Deleted flag
- Fix keybord events on messages list in opera browser (#1488823)
- Fix selection of collapsed thread rows (#1488772)
- Fix wrapping of quoted text with format=flowed (#1488177)
RELEASE 0.8.4
-------------
- Fix regression where unintentional page reload was done after request abort (#1488802)

@ -12,9 +12,11 @@ REQUIREMENTS
* The Apache, Lighttpd, Cherokee or Hiawatha web server
* .htaccess support allowing overrides for DirectoryIndex
* PHP Version 5.2.1 or greater including
- PDO, PCRE, DOM, JSON, XML, Session, Sockets (required)
- libiconv, zip (recommended)
- mbstring, fileinfo, mcrypt (optional)
- PCRE, DOM, JSON, XML, Session, Sockets (required)
- PHP Data Objects (PDO) with driver for either MySQL, PostgreSQL or SQLite (required)
Note: MySQL database driver requires PHP 5.3 or newer.
- Libiconv, Zip (recommended)
- Fileinfo, Mcrypt, mbstring (optional)
* PEAR packages distributed with Roundcube or external:
- Mail_Mime 1.8.1 or newer
- Mail_mimeDecode 1.5.5 or newer
@ -32,7 +34,7 @@ REQUIREMENTS
- magic_quotes_runtime disabled
- magic_quotes_sybase disabled
* PHP compiled with OpenSSL to connect to IMAPS and to use the spell checker
* A MySQL (4.0.8 or newer), PostgreSQL, MSSQL database engine
* A MySQL (4.0.8 or newer), PostgreSQL, MS SQL Server (2005 or newer) database engine
or SQLite support in PHP
* One of the above databases with permission to create tables
* An SMTP server (recommended) or PHP configured for mail delivery
@ -230,5 +232,3 @@ $HTTP["host"] == "www.example.com" {
compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml", "image/gif", "image/png")
}

@ -115,6 +115,12 @@ CREATE TABLE [dbo].[searches] (
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[system] (
[name] [varchar] (64) COLLATE Latin1_General_CI_AI NOT NULL ,
[value] [text] COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_index] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
@ -185,6 +191,13 @@ ALTER TABLE [dbo].[searches] WITH NOCHECK ADD
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[system] WITH NOCHECK ADD
CONSTRAINT [PK_system_name] PRIMARY KEY CLUSTERED
(
[name]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache] ADD
CONSTRAINT [DF_cache_user_id] DEFAULT ('0') FOR [user_id],
CONSTRAINT [DF_cache_cache_key] DEFAULT ('') FOR [cache_key],
@ -358,3 +371,6 @@ CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]
WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)
GO
INSERT INTO [dbo].[system] ([name], [value]) VALUES ('roundcube-version', '2013011700')
GO

@ -1,273 +0,0 @@
-- Roundcube Webmail update script for MSSQL databases
-- Updates from version 0.3.1
ALTER TABLE [dbo].[messages] ADD CONSTRAINT [FK_messages_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[cache] ADD CONSTRAINT [FK_cache_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [FK_contacts_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[identities] ADD CONSTRAINT [FK_identities_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[identities] ADD [changed] [datetime] NULL
GO
CREATE TABLE [dbo].[contactgroups] (
[contactgroup_id] [int] IDENTITY (1, 1) NOT NULL ,
[user_id] [int] NOT NULL ,
[changed] [datetime] NOT NULL ,
[del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
[name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[contactgroupmembers] (
[contactgroup_id] [int] NOT NULL ,
[contact_id] [int] NOT NULL ,
[created] [datetime] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[contactgroups] WITH NOCHECK ADD
CONSTRAINT [PK_contactgroups_contactgroup_id] PRIMARY KEY CLUSTERED
(
[contactgroup_id]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[contactgroupmembers] WITH NOCHECK ADD
CONSTRAINT [PK_contactgroupmembers_id] PRIMARY KEY CLUSTERED
(
[contactgroup_id], [contact_id]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[contactgroups] ADD
CONSTRAINT [DF_contactgroups_user_id] DEFAULT (0) FOR [user_id],
CONSTRAINT [DF_contactgroups_changed] DEFAULT (getdate()) FOR [changed],
CONSTRAINT [DF_contactgroups_del] DEFAULT ('0') FOR [del],
CONSTRAINT [DF_contactgroups_name] DEFAULT ('') FOR [name],
CONSTRAINT [CK_contactgroups_del] CHECK ([del] = '1' or [del] = '0')
GO
CREATE INDEX [IX_contactgroups_user_id] ON [dbo].[contacts]([user_id]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[contactgroupmembers] ADD
CONSTRAINT [DF_contactgroupmembers_contactgroup_id] DEFAULT (0) FOR [contactgroup_id],
CONSTRAINT [DF_contactgroupmembers_contact_id] DEFAULT (0) FOR [contact_id],
CONSTRAINT [DF_contactgroupmembers_created] DEFAULT (getdate()) FOR [created]
GO
ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_contactgroup_id]
FOREIGN KEY ([contactgroup_id]) REFERENCES [dbo].[contactgroups] ([contactgroup_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]
AFTER DELETE AS
DELETE FROM [dbo].[contactgroupmembers]
WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)
GO
ALTER TABLE [dbo].[contactgroups] ADD CONSTRAINT [FK_contactgroups_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
-- Updates from version 0.4.2
DROP INDEX [IX_users_username]
GO
CREATE UNIQUE INDEX [IX_users_username] ON [dbo].[users]([username],[mail_host]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[contacts] ALTER COLUMN [email] [varchar] (255) COLLATE Latin1_General_CI_AI NOT NULL
GO
-- Updates from version 0.5.1
-- Updates from version 0.5.2
-- Updates from version 0.5.3
-- Updates from version 0.5.4
ALTER TABLE [dbo].[contacts] ADD [words] [text] COLLATE Latin1_General_CI_AI NULL
GO
CREATE INDEX [IX_contactgroupmembers_contact_id] ON [dbo].[contactgroupmembers]([contact_id]) ON [PRIMARY]
GO
DELETE FROM [dbo].[messages]
GO
DELETE FROM [dbo].[cache]
GO
-- Updates from version 0.6
CREATE TABLE [dbo].[dictionary] (
[user_id] [int] ,
[language] [varchar] (5) COLLATE Latin1_General_CI_AI NOT NULL ,
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE UNIQUE INDEX [IX_dictionary_user_language] ON [dbo].[dictionary]([user_id],[language]) ON [PRIMARY]
GO
CREATE TABLE [dbo].[searches] (
[search_id] [int] IDENTITY (1, 1) NOT NULL ,
[user_id] [int] NOT NULL ,
[type] [tinyint] NOT NULL ,
[name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[searches] WITH NOCHECK ADD
CONSTRAINT [PK_searches_search_id] PRIMARY KEY CLUSTERED
(
[search_id]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[searches] ADD
CONSTRAINT [DF_searches_user] DEFAULT (0) FOR [user_id],
CONSTRAINT [DF_searches_type] DEFAULT (0) FOR [type],
GO
CREATE UNIQUE INDEX [IX_searches_user_type_name] ON [dbo].[searches]([user_id],[type],[name]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[searches] ADD CONSTRAINT [FK_searches_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
DROP TABLE [dbo].[messages]
GO
CREATE TABLE [dbo].[cache_index] (
[user_id] [int] NOT NULL ,
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
[changed] [datetime] NOT NULL ,
[valid] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[cache_thread] (
[user_id] [int] NOT NULL ,
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
[changed] [datetime] NOT NULL ,
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[cache_messages] (
[user_id] [int] NOT NULL ,
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
[uid] [int] NOT NULL ,
[changed] [datetime] NOT NULL ,
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL ,
[flags] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_index] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[user_id],[mailbox]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_thread] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[user_id],[mailbox]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_messages] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[user_id],[mailbox],[uid]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_index] ADD
CONSTRAINT [DF_cache_index_changed] DEFAULT (getdate()) FOR [changed],
CONSTRAINT [DF_cache_index_valid] DEFAULT ('0') FOR [valid]
GO
CREATE INDEX [IX_cache_index_user_id] ON [dbo].[cache_index]([user_id]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_thread] ADD
CONSTRAINT [DF_cache_thread_changed] DEFAULT (getdate()) FOR [changed]
GO
CREATE INDEX [IX_cache_thread_user_id] ON [dbo].[cache_thread]([user_id]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_messages] ADD
CONSTRAINT [DF_cache_messages_changed] DEFAULT (getdate()) FOR [changed],
CONSTRAINT [DF_cache_messages_flags] DEFAULT (0) FOR [flags]
GO
CREATE INDEX [IX_cache_messages_user_id] ON [dbo].[cache_messages]([user_id]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_index] ADD CONSTRAINT [FK_cache_index_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[cache_thread] ADD CONSTRAINT [FK_cache_thread_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[cache_messages] ADD CONSTRAINT [FK_cache_messages_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
-- Updates from version 0.7-beta
ALTER TABLE [dbo].[session] ALTER COLUMN [sess_id] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL
GO
-- Updates from version 0.7
ALTER TABLE [dbo].[contacts] DROP CONSTRAINT [DF_contacts_email]
GO
ALTER TABLE [dbo].[contacts] ALTER COLUMN [email] [text] COLLATE Latin1_General_CI_AI NOT NULL
GO
ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [DF_contacts_email] DEFAULT ('') FOR [email]
GO
-- Updates from version 0.8-rc
ALTER TABLE [dbo].[contacts] DROP CONSTRAINT [DF_contacts_email]
GO
ALTER TABLE [dbo].[contacts] ALTER COLUMN [email] [varchar] (8000) COLLATE Latin1_General_CI_AI NOT NULL
GO
ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [DF_contacts_email] DEFAULT ('') FOR [email]
GO
-- Updates from version 0.8
ALTER TABLE [dbo].[cache] DROP COLUMN [cache_id]
GO
ALTER TABLE [dbo].[users] DROP COLUMN [alias]
GO
CREATE INDEX [IX_identities_email] ON [dbo].[identities]([email],[del]) ON [PRIMARY]
GO

@ -0,0 +1,87 @@
-- Updates from version 0.3.1
ALTER TABLE [dbo].[messages] ADD CONSTRAINT [FK_messages_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[cache] ADD CONSTRAINT [FK_cache_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [FK_contacts_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[identities] ADD CONSTRAINT [FK_identities_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[identities] ADD [changed] [datetime] NULL
GO
CREATE TABLE [dbo].[contactgroups] (
[contactgroup_id] [int] IDENTITY (1, 1) NOT NULL ,
[user_id] [int] NOT NULL ,
[changed] [datetime] NOT NULL ,
[del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
[name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[contactgroupmembers] (
[contactgroup_id] [int] NOT NULL ,
[contact_id] [int] NOT NULL ,
[created] [datetime] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[contactgroups] WITH NOCHECK ADD
CONSTRAINT [PK_contactgroups_contactgroup_id] PRIMARY KEY CLUSTERED
(
[contactgroup_id]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[contactgroupmembers] WITH NOCHECK ADD
CONSTRAINT [PK_contactgroupmembers_id] PRIMARY KEY CLUSTERED
(
[contactgroup_id], [contact_id]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[contactgroups] ADD
CONSTRAINT [DF_contactgroups_user_id] DEFAULT (0) FOR [user_id],
CONSTRAINT [DF_contactgroups_changed] DEFAULT (getdate()) FOR [changed],
CONSTRAINT [DF_contactgroups_del] DEFAULT ('0') FOR [del],
CONSTRAINT [DF_contactgroups_name] DEFAULT ('') FOR [name],
CONSTRAINT [CK_contactgroups_del] CHECK ([del] = '1' or [del] = '0')
GO
CREATE INDEX [IX_contactgroups_user_id] ON [dbo].[contacts]([user_id]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[contactgroupmembers] ADD
CONSTRAINT [DF_contactgroupmembers_contactgroup_id] DEFAULT (0) FOR [contactgroup_id],
CONSTRAINT [DF_contactgroupmembers_contact_id] DEFAULT (0) FOR [contact_id],
CONSTRAINT [DF_contactgroupmembers_created] DEFAULT (getdate()) FOR [created]
GO
ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_contactgroup_id]
FOREIGN KEY ([contactgroup_id]) REFERENCES [dbo].[contactgroups] ([contactgroup_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]
AFTER DELETE AS
DELETE FROM [dbo].[contactgroupmembers]
WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)
GO
ALTER TABLE [dbo].[contactgroups] ADD CONSTRAINT [FK_contactgroups_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO

@ -0,0 +1,9 @@
-- Updates from version 0.4.2
DROP INDEX [IX_users_username]
GO
CREATE UNIQUE INDEX [IX_users_username] ON [dbo].[users]([username],[mail_host]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[contacts] ALTER COLUMN [email] [varchar] (255) COLLATE Latin1_General_CI_AI NOT NULL
GO

@ -0,0 +1,10 @@
-- Updates from version 0.5.x
ALTER TABLE [dbo].[contacts] ADD [words] [text] COLLATE Latin1_General_CI_AI NULL
GO
CREATE INDEX [IX_contactgroupmembers_contact_id] ON [dbo].[contactgroupmembers]([contact_id]) ON [PRIMARY]
GO
DELETE FROM [dbo].[messages]
GO
DELETE FROM [dbo].[cache]
GO

@ -0,0 +1,127 @@
-- Updates from version 0.6
CREATE TABLE [dbo].[dictionary] (
[user_id] [int] ,
[language] [varchar] (5) COLLATE Latin1_General_CI_AI NOT NULL ,
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE UNIQUE INDEX [IX_dictionary_user_language] ON [dbo].[dictionary]([user_id],[language]) ON [PRIMARY]
GO
CREATE TABLE [dbo].[searches] (
[search_id] [int] IDENTITY (1, 1) NOT NULL ,
[user_id] [int] NOT NULL ,
[type] [tinyint] NOT NULL ,
[name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[searches] WITH NOCHECK ADD
CONSTRAINT [PK_searches_search_id] PRIMARY KEY CLUSTERED
(
[search_id]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[searches] ADD
CONSTRAINT [DF_searches_user] DEFAULT (0) FOR [user_id],
CONSTRAINT [DF_searches_type] DEFAULT (0) FOR [type],
GO
CREATE UNIQUE INDEX [IX_searches_user_type_name] ON [dbo].[searches]([user_id],[type],[name]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[searches] ADD CONSTRAINT [FK_searches_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
DROP TABLE [dbo].[messages]
GO
CREATE TABLE [dbo].[cache_index] (
[user_id] [int] NOT NULL ,
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
[changed] [datetime] NOT NULL ,
[valid] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[cache_thread] (
[user_id] [int] NOT NULL ,
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
[changed] [datetime] NOT NULL ,
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[cache_messages] (
[user_id] [int] NOT NULL ,
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
[uid] [int] NOT NULL ,
[changed] [datetime] NOT NULL ,
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL ,
[flags] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_index] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[user_id],[mailbox]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_thread] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[user_id],[mailbox]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_messages] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[user_id],[mailbox],[uid]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_index] ADD
CONSTRAINT [DF_cache_index_changed] DEFAULT (getdate()) FOR [changed],
CONSTRAINT [DF_cache_index_valid] DEFAULT ('0') FOR [valid]
GO
CREATE INDEX [IX_cache_index_user_id] ON [dbo].[cache_index]([user_id]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_thread] ADD
CONSTRAINT [DF_cache_thread_changed] DEFAULT (getdate()) FOR [changed]
GO
CREATE INDEX [IX_cache_thread_user_id] ON [dbo].[cache_thread]([user_id]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_messages] ADD
CONSTRAINT [DF_cache_messages_changed] DEFAULT (getdate()) FOR [changed],
CONSTRAINT [DF_cache_messages_flags] DEFAULT (0) FOR [flags]
GO
CREATE INDEX [IX_cache_messages_user_id] ON [dbo].[cache_messages]([user_id]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cache_index] ADD CONSTRAINT [FK_cache_index_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[cache_thread] ADD CONSTRAINT [FK_cache_thread_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[cache_messages] ADD CONSTRAINT [FK_cache_messages_user_id]
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
ON DELETE CASCADE ON UPDATE CASCADE
GO

@ -0,0 +1,4 @@
-- Updates from version 0.7-beta
ALTER TABLE [dbo].[session] ALTER COLUMN [sess_id] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL
GO

@ -0,0 +1,9 @@
-- Updates from version 0.7
ALTER TABLE [dbo].[contacts] DROP CONSTRAINT [DF_contacts_email]
GO
ALTER TABLE [dbo].[contacts] ALTER COLUMN [email] [text] COLLATE Latin1_General_CI_AI NOT NULL
GO
ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [DF_contacts_email] DEFAULT ('') FOR [email]
GO

@ -0,0 +1,18 @@
-- Updates from version 0.8-rc
ALTER TABLE [dbo].[contacts] DROP CONSTRAINT [DF_contacts_email]
GO
ALTER TABLE [dbo].[contacts] ALTER COLUMN [email] [varchar] (8000) COLLATE Latin1_General_CI_AI NOT NULL
GO
ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [DF_contacts_email] DEFAULT ('') FOR [email]
GO
-- Updates from version 0.8
ALTER TABLE [dbo].[cache] DROP COLUMN [cache_id]
GO
ALTER TABLE [dbo].[users] DROP COLUMN [alias]
GO
CREATE INDEX [IX_identities_email] ON [dbo].[identities]([email],[del]) ON [PRIMARY]
GO

@ -0,0 +1,8 @@
-- Updates from version 0.8
ALTER TABLE [dbo].[cache] DROP COLUMN [cache_id]
GO
ALTER TABLE [dbo].[users] DROP COLUMN [alias]
GO
CREATE INDEX [IX_identities_email] ON [dbo].[identities]([email],[del]) ON [PRIMARY]
GO

@ -0,0 +1,14 @@
-- Upgrades from 0.9-beta
CREATE TABLE [dbo].[system] (
[name] [varchar] (64) COLLATE Latin1_General_CI_AI NOT NULL ,
[value] [text] COLLATE Latin1_General_CI_AI
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[system] WITH NOCHECK ADD
CONSTRAINT [PK_system_name] PRIMARY KEY CLUSTERED
(
[name]
) ON [PRIMARY]
GO

@ -186,4 +186,14 @@ CREATE TABLE `searches` (
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Table structure for table `system`
CREATE TABLE `system` (
`name` varchar(64) NOT NULL,
`value` mediumtext,
PRIMARY KEY(`name`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
INSERT INTO system (name, value) VALUES ('roundcube-version', '2013011700');

@ -1,247 +0,0 @@
-- Roundcube Webmail update script for MySQL databases
-- Updates from version 0.1-stable
TRUNCATE TABLE `messages`;
ALTER TABLE `messages`
DROP INDEX `idx`,
DROP INDEX `uid`;
ALTER TABLE `cache`
DROP INDEX `cache_key`,
DROP INDEX `session_id`,
ADD INDEX `user_cache_index` (`user_id`,`cache_key`);
ALTER TABLE `users`
ADD INDEX `username_index` (`username`),
ADD INDEX `alias_index` (`alias`);
-- Updates from version 0.1.1
ALTER TABLE `identities`
MODIFY `signature` text,
MODIFY `bcc` varchar(128) NOT NULL DEFAULT '',
MODIFY `reply-to` varchar(128) NOT NULL DEFAULT '',
MODIFY `organization` varchar(128) NOT NULL DEFAULT '',
MODIFY `name` varchar(128) NOT NULL,
MODIFY `email` varchar(128) NOT NULL;
-- Updates from version 0.2-alpha
ALTER TABLE `messages`
ADD INDEX `created_index` (`created`);
-- Updates from version 0.2-beta (InnoDB required)
ALTER TABLE `cache`
DROP `session_id`;
ALTER TABLE `session`
ADD INDEX `changed_index` (`changed`);
ALTER TABLE `cache`
ADD INDEX `created_index` (`created`);
ALTER TABLE `users`
CHANGE `language` `language` varchar(5);
ALTER TABLE `cache` ENGINE=InnoDB;
ALTER TABLE `session` ENGINE=InnoDB;
ALTER TABLE `messages` ENGINE=InnoDB;
ALTER TABLE `users` ENGINE=InnoDB;
ALTER TABLE `contacts` ENGINE=InnoDB;
ALTER TABLE `identities` ENGINE=InnoDB;
-- Updates from version 0.3-stable
TRUNCATE `messages`;
ALTER TABLE `messages`
ADD INDEX `index_index` (`user_id`, `cache_key`, `idx`);
ALTER TABLE `session`
CHANGE `vars` `vars` MEDIUMTEXT NOT NULL;
ALTER TABLE `contacts`
ADD INDEX `user_contacts_index` (`user_id`,`email`);
-- Updates from version 0.3.1
-- WARNING: Make sure that all tables are using InnoDB engine!!!
-- If not, use: ALTER TABLE xxx ENGINE=InnoDB;
/* MySQL bug workaround: http://bugs.mysql.com/bug.php?id=46293 */
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
ALTER TABLE `messages` DROP FOREIGN KEY `user_id_fk_messages`;
ALTER TABLE `cache` DROP FOREIGN KEY `user_id_fk_cache`;
ALTER TABLE `contacts` DROP FOREIGN KEY `user_id_fk_contacts`;
ALTER TABLE `identities` DROP FOREIGN KEY `user_id_fk_identities`;
ALTER TABLE `messages` ADD CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `cache` ADD CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `contacts` ADD CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `identities` ADD CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `contacts` ALTER `name` SET DEFAULT '';
ALTER TABLE `contacts` ALTER `firstname` SET DEFAULT '';
ALTER TABLE `contacts` ALTER `surname` SET DEFAULT '';
ALTER TABLE `identities` ADD INDEX `user_identities_index` (`user_id`, `del`);
ALTER TABLE `identities` ADD `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00' AFTER `user_id`;
CREATE TABLE `contactgroups` (
`contactgroup_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`del` tinyint(1) NOT NULL DEFAULT '0',
`name` varchar(128) NOT NULL DEFAULT '',
PRIMARY KEY(`contactgroup_id`),
CONSTRAINT `user_id_fk_contactgroups` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX `contactgroups_user_index` (`user_id`,`del`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
CREATE TABLE `contactgroupmembers` (
`contactgroup_id` int(10) UNSIGNED NOT NULL,
`contact_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
PRIMARY KEY (`contactgroup_id`, `contact_id`),
CONSTRAINT `contactgroup_id_fk_contactgroups` FOREIGN KEY (`contactgroup_id`)
REFERENCES `contactgroups`(`contactgroup_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `contact_id_fk_contacts` FOREIGN KEY (`contact_id`)
REFERENCES `contacts`(`contact_id`) ON DELETE CASCADE ON UPDATE CASCADE
) /*!40000 ENGINE=INNODB */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
-- Updates from version 0.4-beta
ALTER TABLE `users` CHANGE `last_login` `last_login` datetime DEFAULT NULL;
UPDATE `users` SET `last_login` = NULL WHERE `last_login` = '1000-01-01 00:00:00';
-- Updates from version 0.4.2
ALTER TABLE `users` DROP INDEX `username_index`;
ALTER TABLE `users` ADD UNIQUE `username` (`username`, `mail_host`);
ALTER TABLE `contacts` MODIFY `email` varchar(255) NOT NULL;
TRUNCATE TABLE `messages`;
-- Updates from version 0.5.1
-- Updates from version 0.5.2
-- Updates from version 0.5.3
-- Updates from version 0.5.4
ALTER TABLE `contacts` ADD `words` TEXT NULL AFTER `vcard`;
ALTER TABLE `contacts` CHANGE `vcard` `vcard` LONGTEXT /*!40101 CHARACTER SET utf8 */ NULL DEFAULT NULL;
ALTER TABLE `contactgroupmembers` ADD INDEX `contactgroupmembers_contact_index` (`contact_id`);
TRUNCATE TABLE `messages`;
TRUNCATE TABLE `cache`;
-- Updates from version 0.6
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
ALTER TABLE `users` CHANGE `alias` `alias` varchar(128) BINARY NOT NULL;
ALTER TABLE `users` CHANGE `username` `username` varchar(128) BINARY NOT NULL;
CREATE TABLE `dictionary` (
`user_id` int(10) UNSIGNED DEFAULT NULL,
`language` varchar(5) NOT NULL,
`data` longtext NOT NULL,
CONSTRAINT `user_id_fk_dictionary` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE `uniqueness` (`user_id`, `language`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
CREATE TABLE `searches` (
`search_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`type` int(3) NOT NULL DEFAULT '0',
`name` varchar(128) NOT NULL,
`data` text,
PRIMARY KEY(`search_id`),
CONSTRAINT `user_id_fk_searches` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE `uniqueness` (`user_id`, `type`, `name`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
DROP TABLE `messages`;
CREATE TABLE `cache_index` (
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`mailbox` varchar(255) BINARY NOT NULL,
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`valid` tinyint(1) NOT NULL DEFAULT '0',
`data` longtext NOT NULL,
CONSTRAINT `user_id_fk_cache_index` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX `changed_index` (`changed`),
PRIMARY KEY (`user_id`, `mailbox`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
CREATE TABLE `cache_thread` (
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`mailbox` varchar(255) BINARY NOT NULL,
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`data` longtext NOT NULL,
CONSTRAINT `user_id_fk_cache_thread` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX `changed_index` (`changed`),
PRIMARY KEY (`user_id`, `mailbox`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
CREATE TABLE `cache_messages` (
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`mailbox` varchar(255) BINARY NOT NULL,
`uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`data` longtext NOT NULL,
`flags` int(11) NOT NULL DEFAULT '0',
CONSTRAINT `user_id_fk_cache_messages` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX `changed_index` (`changed`),
PRIMARY KEY (`user_id`, `mailbox`, `uid`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
-- Updates from version 0.7-beta
ALTER TABLE `session` CHANGE `sess_id` `sess_id` varchar(128) NOT NULL;
-- Updates from version 0.7
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
ALTER TABLE `contacts` DROP FOREIGN KEY `user_id_fk_contacts`;
ALTER TABLE `contacts` DROP INDEX `user_contacts_index`;
ALTER TABLE `contacts` MODIFY `email` text NOT NULL;
ALTER TABLE `contacts` ADD INDEX `user_contacts_index` (`user_id`,`del`);
ALTER TABLE `contacts` ADD CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `cache` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `cache_index` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `cache_thread` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `cache_messages` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `contacts` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `contactgroups` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `contactgroupmembers` ALTER `contact_id` DROP DEFAULT;
ALTER TABLE `identities` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `searches` ALTER `user_id` DROP DEFAULT;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
-- Updates from version 0.8
ALTER TABLE `cache` DROP COLUMN `cache_id`;
ALTER TABLE `users` DROP COLUMN `alias`;
ALTER TABLE `identities` ADD INDEX `email_identities_index` (`email`, `del`);

@ -0,0 +1,16 @@
-- Updates from version 0.1-stable
TRUNCATE TABLE `messages`;
ALTER TABLE `messages`
DROP INDEX `idx`,
DROP INDEX `uid`;
ALTER TABLE `cache`
DROP INDEX `cache_key`,
DROP INDEX `session_id`,
ADD INDEX `user_cache_index` (`user_id`,`cache_key`);
ALTER TABLE `users`
ADD INDEX `username_index` (`username`),
ADD INDEX `alias_index` (`alias`);

@ -0,0 +1,9 @@
-- Updates from version 0.1.1
ALTER TABLE `identities`
MODIFY `signature` text,
MODIFY `bcc` varchar(128) NOT NULL DEFAULT '',
MODIFY `reply-to` varchar(128) NOT NULL DEFAULT '',
MODIFY `organization` varchar(128) NOT NULL DEFAULT '',
MODIFY `name` varchar(128) NOT NULL,
MODIFY `email` varchar(128) NOT NULL;

@ -0,0 +1,4 @@
-- Updates from version 0.2-alpha
ALTER TABLE `messages`
ADD INDEX `created_index` (`created`);

@ -0,0 +1,20 @@
-- Updates from version 0.2-beta (InnoDB required)
ALTER TABLE `cache`
DROP `session_id`;
ALTER TABLE `session`
ADD INDEX `changed_index` (`changed`);
ALTER TABLE `cache`
ADD INDEX `created_index` (`created`);
ALTER TABLE `users`
CHANGE `language` `language` varchar(5);
ALTER TABLE `cache` ENGINE=InnoDB;
ALTER TABLE `session` ENGINE=InnoDB;
ALTER TABLE `messages` ENGINE=InnoDB;
ALTER TABLE `users` ENGINE=InnoDB;
ALTER TABLE `contacts` ENGINE=InnoDB;
ALTER TABLE `identities` ENGINE=InnoDB;

@ -0,0 +1,12 @@
-- Updates from version 0.3-stable
TRUNCATE `messages`;
ALTER TABLE `messages`
ADD INDEX `index_index` (`user_id`, `cache_key`, `idx`);
ALTER TABLE `session`
CHANGE `vars` `vars` MEDIUMTEXT NOT NULL;
ALTER TABLE `contacts`
ADD INDEX `user_contacts_index` (`user_id`,`email`);

@ -0,0 +1,52 @@
-- Updates from version 0.3.1
-- WARNING: Make sure that all tables are using InnoDB engine!!!
-- If not, use: ALTER TABLE xxx ENGINE=InnoDB;
/* MySQL bug workaround: http://bugs.mysql.com/bug.php?id=46293 */
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
ALTER TABLE `messages` DROP FOREIGN KEY `user_id_fk_messages`;
ALTER TABLE `cache` DROP FOREIGN KEY `user_id_fk_cache`;
ALTER TABLE `contacts` DROP FOREIGN KEY `user_id_fk_contacts`;
ALTER TABLE `identities` DROP FOREIGN KEY `user_id_fk_identities`;
ALTER TABLE `messages` ADD CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `cache` ADD CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `contacts` ADD CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `identities` ADD CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `contacts` ALTER `name` SET DEFAULT '';
ALTER TABLE `contacts` ALTER `firstname` SET DEFAULT '';
ALTER TABLE `contacts` ALTER `surname` SET DEFAULT '';
ALTER TABLE `identities` ADD INDEX `user_identities_index` (`user_id`, `del`);
ALTER TABLE `identities` ADD `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00' AFTER `user_id`;
CREATE TABLE `contactgroups` (
`contactgroup_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`del` tinyint(1) NOT NULL DEFAULT '0',
`name` varchar(128) NOT NULL DEFAULT '',
PRIMARY KEY(`contactgroup_id`),
CONSTRAINT `user_id_fk_contactgroups` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX `contactgroups_user_index` (`user_id`,`del`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
CREATE TABLE `contactgroupmembers` (
`contactgroup_id` int(10) UNSIGNED NOT NULL,
`contact_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
PRIMARY KEY (`contactgroup_id`, `contact_id`),
CONSTRAINT `contactgroup_id_fk_contactgroups` FOREIGN KEY (`contactgroup_id`)
REFERENCES `contactgroups`(`contactgroup_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `contact_id_fk_contacts` FOREIGN KEY (`contact_id`)
REFERENCES `contacts`(`contact_id`) ON DELETE CASCADE ON UPDATE CASCADE
) /*!40000 ENGINE=INNODB */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;

@ -0,0 +1,4 @@
-- Updates from version 0.4-beta
ALTER TABLE `users` CHANGE `last_login` `last_login` datetime DEFAULT NULL;
UPDATE `users` SET `last_login` = NULL WHERE `last_login` = '1000-01-01 00:00:00';

@ -0,0 +1,8 @@
-- Updates from version 0.4.2
ALTER TABLE `users` DROP INDEX `username_index`;
ALTER TABLE `users` ADD UNIQUE `username` (`username`, `mail_host`);
ALTER TABLE `contacts` MODIFY `email` varchar(255) NOT NULL;
TRUNCATE TABLE `messages`;

@ -0,0 +1,8 @@
-- Updates from version 0.5.x
ALTER TABLE `contacts` ADD `words` TEXT NULL AFTER `vcard`;
ALTER TABLE `contacts` CHANGE `vcard` `vcard` LONGTEXT /*!40101 CHARACTER SET utf8 */ NULL DEFAULT NULL;
ALTER TABLE `contactgroupmembers` ADD INDEX `contactgroupmembers_contact_index` (`contact_id`);
TRUNCATE TABLE `messages`;
TRUNCATE TABLE `cache`;

@ -0,0 +1,67 @@
-- Updates from version 0.6
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
ALTER TABLE `users` CHANGE `alias` `alias` varchar(128) BINARY NOT NULL;
ALTER TABLE `users` CHANGE `username` `username` varchar(128) BINARY NOT NULL;
CREATE TABLE `dictionary` (
`user_id` int(10) UNSIGNED DEFAULT NULL,
`language` varchar(5) NOT NULL,
`data` longtext NOT NULL,
CONSTRAINT `user_id_fk_dictionary` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE `uniqueness` (`user_id`, `language`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
CREATE TABLE `searches` (
`search_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`type` int(3) NOT NULL DEFAULT '0',
`name` varchar(128) NOT NULL,
`data` text,
PRIMARY KEY(`search_id`),
CONSTRAINT `user_id_fk_searches` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE `uniqueness` (`user_id`, `type`, `name`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
DROP TABLE `messages`;
CREATE TABLE `cache_index` (
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`mailbox` varchar(255) BINARY NOT NULL,
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`valid` tinyint(1) NOT NULL DEFAULT '0',
`data` longtext NOT NULL,
CONSTRAINT `user_id_fk_cache_index` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX `changed_index` (`changed`),
PRIMARY KEY (`user_id`, `mailbox`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
CREATE TABLE `cache_thread` (
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`mailbox` varchar(255) BINARY NOT NULL,
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`data` longtext NOT NULL,
CONSTRAINT `user_id_fk_cache_thread` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX `changed_index` (`changed`),
PRIMARY KEY (`user_id`, `mailbox`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
CREATE TABLE `cache_messages` (
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`mailbox` varchar(255) BINARY NOT NULL,
`uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`data` longtext NOT NULL,
`flags` int(11) NOT NULL DEFAULT '0',
CONSTRAINT `user_id_fk_cache_messages` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX `changed_index` (`changed`),
PRIMARY KEY (`user_id`, `mailbox`, `uid`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;

@ -0,0 +1,3 @@
-- Updates from version 0.7-beta
ALTER TABLE `session` CHANGE `sess_id` `sess_id` varchar(128) NOT NULL;

@ -0,0 +1,22 @@
-- Updates from version 0.7
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
ALTER TABLE `contacts` DROP FOREIGN KEY `user_id_fk_contacts`;
ALTER TABLE `contacts` DROP INDEX `user_contacts_index`;
ALTER TABLE `contacts` MODIFY `email` text NOT NULL;
ALTER TABLE `contacts` ADD INDEX `user_contacts_index` (`user_id`,`del`);
ALTER TABLE `contacts` ADD CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `cache` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `cache_index` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `cache_thread` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `cache_messages` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `contacts` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `contactgroups` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `contactgroupmembers` ALTER `contact_id` DROP DEFAULT;
ALTER TABLE `identities` ALTER `user_id` DROP DEFAULT;
ALTER TABLE `searches` ALTER `user_id` DROP DEFAULT;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;

@ -0,0 +1,5 @@
-- Updates from version 0.8
ALTER TABLE `cache` DROP COLUMN `cache_id`;
ALTER TABLE `users` DROP COLUMN `alias`;
ALTER TABLE `identities` ADD INDEX `email_identities_index` (`email`, `del`);

@ -0,0 +1,7 @@
-- Upgrade from 0.9-beta
CREATE TABLE IF NOT EXISTS `system` (
`name` varchar(64) NOT NULL,
`value` mediumtext,
PRIMARY KEY(`name`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;

@ -262,3 +262,16 @@ CREATE TABLE searches (
data text NOT NULL,
CONSTRAINT searches_user_id_key UNIQUE (user_id, "type", name)
);
--
-- Table "system"
-- Name: system; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE "system" (
name varchar(64) NOT NULL PRIMARY KEY,
value text
);
INSERT INTO system (name, value) VALUES ('roundcube-version', '2013011700');

@ -1,185 +0,0 @@
-- Roundcube Webmail update script for Postgres databases
-- Updates from version 0.1-stable to 0.1.1
CREATE INDEX cache_user_id_idx ON cache (user_id, cache_key);
CREATE INDEX contacts_user_id_idx ON contacts (user_id);
CREATE INDEX identities_user_id_idx ON identities (user_id);
CREATE INDEX users_username_id_idx ON users (username);
CREATE INDEX users_alias_id_idx ON users (alias);
-- added ON DELETE/UPDATE actions
ALTER TABLE messages DROP CONSTRAINT messages_user_id_fkey;
ALTER TABLE messages ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE identities DROP CONSTRAINT identities_user_id_fkey;
ALTER TABLE identities ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE contacts DROP CONSTRAINT contacts_user_id_fkey;
ALTER TABLE contacts ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE cache DROP CONSTRAINT cache_user_id_fkey;
ALTER TABLE cache ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
-- Updates from version 0.2-alpha
CREATE INDEX messages_created_idx ON messages (created);
-- Updates from version 0.2-beta
ALTER TABLE cache DROP session_id;
CREATE INDEX session_changed_idx ON session (changed);
CREATE INDEX cache_created_idx ON "cache" (created);
ALTER TABLE users ALTER "language" DROP NOT NULL;
ALTER TABLE users ALTER "language" DROP DEFAULT;
ALTER TABLE identities ALTER del TYPE smallint;
ALTER TABLE identities ALTER standard TYPE smallint;
ALTER TABLE contacts ALTER del TYPE smallint;
ALTER TABLE messages ALTER del TYPE smallint;
-- Updates from version 0.3-stable
TRUNCATE messages;
CREATE INDEX messages_index_idx ON messages (user_id, cache_key, idx);
DROP INDEX contacts_user_id_idx;
CREATE INDEX contacts_user_id_idx ON contacts (user_id, email);
-- Updates from version 0.3.1
DROP INDEX identities_user_id_idx;
CREATE INDEX identities_user_id_idx ON identities (user_id, del);
ALTER TABLE identities ADD changed timestamp with time zone DEFAULT now() NOT NULL;
CREATE SEQUENCE contactgroups_ids
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE TABLE contactgroups (
contactgroup_id integer DEFAULT nextval('contactgroups_ids'::text) PRIMARY KEY,
user_id integer NOT NULL
REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
changed timestamp with time zone DEFAULT now() NOT NULL,
del smallint NOT NULL DEFAULT 0,
name varchar(128) NOT NULL DEFAULT ''
);
CREATE INDEX contactgroups_user_id_idx ON contactgroups (user_id, del);
CREATE TABLE contactgroupmembers (
contactgroup_id integer NOT NULL
REFERENCES contactgroups(contactgroup_id) ON DELETE CASCADE ON UPDATE CASCADE,
contact_id integer NOT NULL
REFERENCES contacts(contact_id) ON DELETE CASCADE ON UPDATE CASCADE,
created timestamp with time zone DEFAULT now() NOT NULL,
PRIMARY KEY (contactgroup_id, contact_id)
);
-- Updates from version 0.4-beta
ALTER TABLE users ALTER last_login DROP NOT NULL;
ALTER TABLE users ALTER last_login SET DEFAULT NULL;
-- Updates from version 0.4.2
DROP INDEX users_username_id_idx;
ALTER TABLE users ADD CONSTRAINT users_username_key UNIQUE (username, mail_host);
ALTER TABLE contacts ALTER email TYPE varchar(255);
TRUNCATE messages;
-- Updates from version 0.5.1
-- Updates from version 0.5.2
-- Updates from version 0.5.3
-- Updates from version 0.5.4
ALTER TABLE contacts ADD words TEXT NULL;
CREATE INDEX contactgroupmembers_contact_id_idx ON contactgroupmembers (contact_id);
TRUNCATE messages;
TRUNCATE cache;
-- Updates from version 0.6
CREATE TABLE dictionary (
user_id integer DEFAULT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
"language" varchar(5) NOT NULL,
data text NOT NULL,
CONSTRAINT dictionary_user_id_language_key UNIQUE (user_id, "language")
);
CREATE SEQUENCE search_ids
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE TABLE searches (
search_id integer DEFAULT nextval('search_ids'::text) PRIMARY KEY,
user_id integer NOT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
"type" smallint DEFAULT 0 NOT NULL,
name varchar(128) NOT NULL,
data text NOT NULL,
CONSTRAINT searches_user_id_key UNIQUE (user_id, "type", name)
);
DROP SEQUENCE message_ids;
DROP TABLE messages;
CREATE TABLE cache_index (
user_id integer NOT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
mailbox varchar(255) NOT NULL,
changed timestamp with time zone DEFAULT now() NOT NULL,
valid smallint NOT NULL DEFAULT 0,
data text NOT NULL,
PRIMARY KEY (user_id, mailbox)
);
CREATE INDEX cache_index_changed_idx ON cache_index (changed);
CREATE TABLE cache_thread (
user_id integer NOT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
mailbox varchar(255) NOT NULL,
changed timestamp with time zone DEFAULT now() NOT NULL,
data text NOT NULL,
PRIMARY KEY (user_id, mailbox)
);
CREATE INDEX cache_thread_changed_idx ON cache_thread (changed);
CREATE TABLE cache_messages (
user_id integer NOT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
mailbox varchar(255) NOT NULL,
uid integer NOT NULL,
changed timestamp with time zone DEFAULT now() NOT NULL,
data text NOT NULL,
flags integer NOT NULL DEFAULT 0,
PRIMARY KEY (user_id, mailbox, uid)
);
CREATE INDEX cache_messages_changed_idx ON cache_messages (changed);
-- Updates from version 0.7-beta
ALTER TABLE "session" ALTER sess_id TYPE varchar(128);
-- Updates from version 0.7
DROP INDEX contacts_user_id_idx;
CREATE INDEX contacts_user_id_idx ON contacts USING btree (user_id, del);
ALTER TABLE contacts ALTER email TYPE text;
-- Updates from version 0.8
ALTER TABLE cache DROP COLUMN cache_id;
DROP SEQUENCE cache_ids;
ALTER TABLE users DROP COLUMN alias;
CREATE INDEX identities_email_idx ON identities (email, del);

@ -0,0 +1,18 @@
-- Updates from version 0.1-stable to 0.1.1
CREATE INDEX cache_user_id_idx ON cache (user_id, cache_key);
CREATE INDEX contacts_user_id_idx ON contacts (user_id);
CREATE INDEX identities_user_id_idx ON identities (user_id);
CREATE INDEX users_username_id_idx ON users (username);
CREATE INDEX users_alias_id_idx ON users (alias);
-- added ON DELETE/UPDATE actions
ALTER TABLE messages DROP CONSTRAINT messages_user_id_fkey;
ALTER TABLE messages ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE identities DROP CONSTRAINT identities_user_id_fkey;
ALTER TABLE identities ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE contacts DROP CONSTRAINT contacts_user_id_fkey;
ALTER TABLE contacts ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE cache DROP CONSTRAINT cache_user_id_fkey;
ALTER TABLE cache ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;

@ -0,0 +1,3 @@
-- Updates from version 0.2-alpha
CREATE INDEX messages_created_idx ON messages (created);

@ -0,0 +1,14 @@
-- Updates from version 0.2-beta
ALTER TABLE cache DROP session_id;
CREATE INDEX session_changed_idx ON session (changed);
CREATE INDEX cache_created_idx ON "cache" (created);
ALTER TABLE users ALTER "language" DROP NOT NULL;
ALTER TABLE users ALTER "language" DROP DEFAULT;
ALTER TABLE identities ALTER del TYPE smallint;
ALTER TABLE identities ALTER standard TYPE smallint;
ALTER TABLE contacts ALTER del TYPE smallint;
ALTER TABLE messages ALTER del TYPE smallint;

@ -0,0 +1,6 @@
-- Updates from version 0.3-stable
TRUNCATE messages;
CREATE INDEX messages_index_idx ON messages (user_id, cache_key, idx);
DROP INDEX contacts_user_id_idx;
CREATE INDEX contacts_user_id_idx ON contacts (user_id, email);

@ -0,0 +1,32 @@
-- Updates from version 0.3.1
DROP INDEX identities_user_id_idx;
CREATE INDEX identities_user_id_idx ON identities (user_id, del);
ALTER TABLE identities ADD changed timestamp with time zone DEFAULT now() NOT NULL;
CREATE SEQUENCE contactgroups_ids
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE TABLE contactgroups (
contactgroup_id integer DEFAULT nextval('contactgroups_ids'::text) PRIMARY KEY,
user_id integer NOT NULL
REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
changed timestamp with time zone DEFAULT now() NOT NULL,
del smallint NOT NULL DEFAULT 0,
name varchar(128) NOT NULL DEFAULT ''
);
CREATE INDEX contactgroups_user_id_idx ON contactgroups (user_id, del);
CREATE TABLE contactgroupmembers (
contactgroup_id integer NOT NULL
REFERENCES contactgroups(contactgroup_id) ON DELETE CASCADE ON UPDATE CASCADE,
contact_id integer NOT NULL
REFERENCES contacts(contact_id) ON DELETE CASCADE ON UPDATE CASCADE,
created timestamp with time zone DEFAULT now() NOT NULL,
PRIMARY KEY (contactgroup_id, contact_id)
);

@ -0,0 +1,4 @@
-- Updates from version 0.4-beta
ALTER TABLE users ALTER last_login DROP NOT NULL;
ALTER TABLE users ALTER last_login SET DEFAULT NULL;

@ -0,0 +1,7 @@
-- Updates from version 0.4.2
DROP INDEX users_username_id_idx;
ALTER TABLE users ADD CONSTRAINT users_username_key UNIQUE (username, mail_host);
ALTER TABLE contacts ALTER email TYPE varchar(255);
TRUNCATE messages;

@ -0,0 +1,7 @@
-- Updates from version 0.5.x
ALTER TABLE contacts ADD words TEXT NULL;
CREATE INDEX contactgroupmembers_contact_id_idx ON contactgroupmembers (contact_id);
TRUNCATE messages;
TRUNCATE cache;

@ -0,0 +1,64 @@
-- Updates from version 0.6
CREATE TABLE dictionary (
user_id integer DEFAULT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
"language" varchar(5) NOT NULL,
data text NOT NULL,
CONSTRAINT dictionary_user_id_language_key UNIQUE (user_id, "language")
);
CREATE SEQUENCE search_ids
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE TABLE searches (
search_id integer DEFAULT nextval('search_ids'::text) PRIMARY KEY,
user_id integer NOT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
"type" smallint DEFAULT 0 NOT NULL,
name varchar(128) NOT NULL,
data text NOT NULL,
CONSTRAINT searches_user_id_key UNIQUE (user_id, "type", name)
);
DROP SEQUENCE message_ids;
DROP TABLE messages;
CREATE TABLE cache_index (
user_id integer NOT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
mailbox varchar(255) NOT NULL,
changed timestamp with time zone DEFAULT now() NOT NULL,
valid smallint NOT NULL DEFAULT 0,
data text NOT NULL,
PRIMARY KEY (user_id, mailbox)
);
CREATE INDEX cache_index_changed_idx ON cache_index (changed);
CREATE TABLE cache_thread (
user_id integer NOT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
mailbox varchar(255) NOT NULL,
changed timestamp with time zone DEFAULT now() NOT NULL,
data text NOT NULL,
PRIMARY KEY (user_id, mailbox)
);
CREATE INDEX cache_thread_changed_idx ON cache_thread (changed);
CREATE TABLE cache_messages (
user_id integer NOT NULL
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
mailbox varchar(255) NOT NULL,
uid integer NOT NULL,
changed timestamp with time zone DEFAULT now() NOT NULL,
data text NOT NULL,
flags integer NOT NULL DEFAULT 0,
PRIMARY KEY (user_id, mailbox, uid)
);
CREATE INDEX cache_messages_changed_idx ON cache_messages (changed);

@ -0,0 +1,3 @@
-- Updates from version 0.7-beta
ALTER TABLE "session" ALTER sess_id TYPE varchar(128);

@ -0,0 +1,5 @@
-- Updates from version 0.7
DROP INDEX contacts_user_id_idx;
CREATE INDEX contacts_user_id_idx ON contacts USING btree (user_id, del);
ALTER TABLE contacts ALTER email TYPE text;

@ -0,0 +1,7 @@
-- Updates from version 0.8
ALTER TABLE cache DROP COLUMN cache_id;
DROP SEQUENCE cache_ids;
ALTER TABLE users DROP COLUMN alias;
CREATE INDEX identities_email_idx ON identities (email, del);

@ -0,0 +1,4 @@
CREATE TABLE "system" (
name varchar(64) NOT NULL PRIMARY KEY,
value text
);

@ -197,3 +197,16 @@ CREATE TABLE cache_messages (
);
CREATE INDEX ix_cache_messages_changed ON cache_messages (changed);
-- --------------------------------------------------------
--
-- Table structure for table system
--
CREATE TABLE system (
name varchar(64) NOT NULL PRIMARY KEY,
value text NOT NULL
);
INSERT INTO system (name, value) VALUES ('roundcube-version', '2013011700');

@ -1,380 +0,0 @@
-- Roundcube Webmail update script for SQLite databases
-- Updates from version 0.1-stable to 0.1.1
DROP TABLE messages;
CREATE TABLE messages (
message_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
del tinyint NOT NULL default '0',
cache_key varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
idx integer NOT NULL default '0',
uid integer NOT NULL default '0',
subject varchar(255) NOT NULL default '',
"from" varchar(255) NOT NULL default '',
"to" varchar(255) NOT NULL default '',
"cc" varchar(255) NOT NULL default '',
"date" datetime NOT NULL default '0000-00-00 00:00:00',
size integer NOT NULL default '0',
headers text NOT NULL,
structure text
);
CREATE INDEX ix_messages_user_cache_uid ON messages(user_id,cache_key,uid);
CREATE INDEX ix_users_username ON users(username);
CREATE INDEX ix_users_alias ON users(alias);
-- Updates from version 0.2-alpha
CREATE INDEX ix_messages_created ON messages (created);
-- Updates from version 0.2-beta
CREATE INDEX ix_session_changed ON session (changed);
CREATE INDEX ix_cache_created ON cache (created);
-- Updates from version 0.3-stable
DELETE FROM messages;
DROP INDEX ix_messages_user_cache_uid;
CREATE UNIQUE INDEX ix_messages_user_cache_uid ON messages (user_id,cache_key,uid);
CREATE INDEX ix_messages_index ON messages (user_id,cache_key,idx);
DROP INDEX ix_contacts_user_id;
CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
-- Updates from version 0.3.1
-- ALTER TABLE identities ADD COLUMN changed datetime NOT NULL default '0000-00-00 00:00:00'; --
CREATE TABLE temp_identities (
identity_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
standard tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
organization varchar(128) default '',
email varchar(128) NOT NULL default '',
"reply-to" varchar(128) NOT NULL default '',
bcc varchar(128) NOT NULL default '',
signature text NOT NULL default '',
html_signature tinyint NOT NULL default '0'
);
INSERT INTO temp_identities (identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature)
SELECT identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature
FROM identities WHERE del=0;
DROP INDEX ix_identities_user_id;
DROP TABLE identities;
CREATE TABLE identities (
identity_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
standard tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
organization varchar(128) default '',
email varchar(128) NOT NULL default '',
"reply-to" varchar(128) NOT NULL default '',
bcc varchar(128) NOT NULL default '',
signature text NOT NULL default '',
html_signature tinyint NOT NULL default '0'
);
CREATE INDEX ix_identities_user_id ON identities(user_id, del);
INSERT INTO identities (identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature)
SELECT identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature
FROM temp_identities;
DROP TABLE temp_identities;
CREATE TABLE contactgroups (
contactgroup_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default ''
);
CREATE INDEX ix_contactgroups_user_id ON contactgroups(user_id, del);
CREATE TABLE contactgroupmembers (
contactgroup_id integer NOT NULL,
contact_id integer NOT NULL default '0',
created datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (contactgroup_id, contact_id)
);
-- Updates from version 0.3.1
CREATE TABLE tmp_users (
user_id integer NOT NULL PRIMARY KEY,
username varchar(128) NOT NULL default '',
mail_host varchar(128) NOT NULL default '',
alias varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
last_login datetime NOT NULL default '0000-00-00 00:00:00',
language varchar(5),
preferences text NOT NULL default ''
);
INSERT INTO tmp_users (user_id, username, mail_host, alias, created, last_login, language, preferences)
SELECT user_id, username, mail_host, alias, created, last_login, language, preferences FROM users;
DROP TABLE users;
CREATE TABLE users (
user_id integer NOT NULL PRIMARY KEY,
username varchar(128) NOT NULL default '',
mail_host varchar(128) NOT NULL default '',
alias varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
last_login datetime DEFAULT NULL,
language varchar(5),
preferences text NOT NULL default ''
);
INSERT INTO users (user_id, username, mail_host, alias, created, last_login, language, preferences)
SELECT user_id, username, mail_host, alias, created, last_login, language, preferences FROM tmp_users;
CREATE INDEX ix_users_username ON users(username);
CREATE INDEX ix_users_alias ON users(alias);
DROP TABLE tmp_users;
-- Updates from version 0.4.2
DROP INDEX ix_users_username;
CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host);
CREATE TABLE contacts_tmp (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email varchar(255) NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default ''
);
INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts;
DROP TABLE contacts;
CREATE TABLE contacts (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email varchar(255) NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default ''
);
INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts_tmp;
CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
DROP TABLE contacts_tmp;
DELETE FROM messages;
-- Updates from version 0.5.1
-- Updates from version 0.5.2
-- Updates from version 0.5.3
-- Updates from version 0.5.4
CREATE TABLE contacts_tmp (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email varchar(255) NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default ''
);
INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts;
DROP TABLE contacts;
CREATE TABLE contacts (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email varchar(255) NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default '',
words text NOT NULL default ''
);
INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts_tmp;
CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
DROP TABLE contacts_tmp;
DELETE FROM messages;
DELETE FROM cache;
CREATE INDEX ix_contactgroupmembers_contact_id ON contactgroupmembers (contact_id);
-- Updates from version 0.6
CREATE TABLE dictionary (
user_id integer DEFAULT NULL,
"language" varchar(5) NOT NULL,
data text NOT NULL
);
CREATE UNIQUE INDEX ix_dictionary_user_language ON dictionary (user_id, "language");
CREATE TABLE searches (
search_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL DEFAULT '0',
"type" smallint NOT NULL DEFAULT '0',
name varchar(128) NOT NULL,
data text NOT NULL
);
CREATE UNIQUE INDEX ix_searches_user_type_name ON searches (user_id, type, name);
DROP TABLE messages;
CREATE TABLE cache_index (
user_id integer NOT NULL,
mailbox varchar(255) NOT NULL,
changed datetime NOT NULL default '0000-00-00 00:00:00',
valid smallint NOT NULL DEFAULT '0',
data text NOT NULL,
PRIMARY KEY (user_id, mailbox)
);
CREATE INDEX ix_cache_index_changed ON cache_index (changed);
CREATE TABLE cache_thread (
user_id integer NOT NULL,
mailbox varchar(255) NOT NULL,
changed datetime NOT NULL default '0000-00-00 00:00:00',
data text NOT NULL,
PRIMARY KEY (user_id, mailbox)
);
CREATE INDEX ix_cache_thread_changed ON cache_thread (changed);
CREATE TABLE cache_messages (
user_id integer NOT NULL,
mailbox varchar(255) NOT NULL,
uid integer NOT NULL,
changed datetime NOT NULL default '0000-00-00 00:00:00',
data text NOT NULL,
flags integer NOT NULL DEFAULT '0',
PRIMARY KEY (user_id, mailbox, uid)
);
CREATE INDEX ix_cache_messages_changed ON cache_messages (changed);
-- Updates from version 0.7-beta
DROP TABLE session;
CREATE TABLE session (
sess_id varchar(128) NOT NULL PRIMARY KEY,
created datetime NOT NULL default '0000-00-00 00:00:00',
changed datetime NOT NULL default '0000-00-00 00:00:00',
ip varchar(40) NOT NULL default '',
vars text NOT NULL
);
CREATE INDEX ix_session_changed ON session (changed);
-- Updates from version 0.7
CREATE TABLE contacts_tmp (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL,
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email text NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default '',
words text NOT NULL default ''
);
INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words FROM contacts;
DROP TABLE contacts;
CREATE TABLE contacts (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL,
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email text NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default '',
words text NOT NULL default ''
);
INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words FROM contacts_tmp;
CREATE INDEX ix_contacts_user_id ON contacts(user_id, del);
DROP TABLE contacts_tmp;
-- Updates from version 0.8
DROP TABLE cache;
CREATE TABLE cache (
user_id integer NOT NULL default 0,
cache_key varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
data text NOT NULL
);
CREATE INDEX ix_cache_user_cache_key ON cache(user_id, cache_key);
CREATE INDEX ix_cache_created ON cache(created);
CREATE TABLE tmp_users (
user_id integer NOT NULL PRIMARY KEY,
username varchar(128) NOT NULL default '',
mail_host varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
last_login datetime DEFAULT NULL,
language varchar(5),
preferences text NOT NULL default ''
);
INSERT INTO tmp_users (user_id, username, mail_host, created, last_login, language, preferences)
SELECT user_id, username, mail_host, created, last_login, language, preferences FROM users;
DROP TABLE users;
CREATE TABLE users (
user_id integer NOT NULL PRIMARY KEY,
username varchar(128) NOT NULL default '',
mail_host varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
last_login datetime DEFAULT NULL,
language varchar(5),
preferences text NOT NULL default ''
);
INSERT INTO users (user_id, username, mail_host, created, last_login, language, preferences)
SELECT user_id, username, mail_host, created, last_login, language, preferences FROM tmp_users;
CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host);
CREATE INDEX ix_identities_email ON identities(email, del);

@ -0,0 +1,25 @@
-- Updates from version 0.1-stable to 0.1.1
DROP TABLE messages;
CREATE TABLE messages (
message_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
del tinyint NOT NULL default '0',
cache_key varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
idx integer NOT NULL default '0',
uid integer NOT NULL default '0',
subject varchar(255) NOT NULL default '',
"from" varchar(255) NOT NULL default '',
"to" varchar(255) NOT NULL default '',
"cc" varchar(255) NOT NULL default '',
"date" datetime NOT NULL default '0000-00-00 00:00:00',
size integer NOT NULL default '0',
headers text NOT NULL,
structure text
);
CREATE INDEX ix_messages_user_cache_uid ON messages(user_id,cache_key,uid);
CREATE INDEX ix_users_username ON users(username);
CREATE INDEX ix_users_alias ON users(alias);

@ -0,0 +1,3 @@
-- Updates from version 0.2-alpha
CREATE INDEX ix_messages_created ON messages (created);

@ -0,0 +1,4 @@
-- Updates from version 0.2-beta
CREATE INDEX ix_session_changed ON session (changed);
CREATE INDEX ix_cache_created ON cache (created);

@ -0,0 +1,8 @@
-- Updates from version 0.3-stable
DELETE FROM messages;
DROP INDEX ix_messages_user_cache_uid;
CREATE UNIQUE INDEX ix_messages_user_cache_uid ON messages (user_id,cache_key,uid);
CREATE INDEX ix_messages_index ON messages (user_id,cache_key,idx);
DROP INDEX ix_contacts_user_id;
CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);

@ -0,0 +1,61 @@
-- Updates from version 0.3.1
-- ALTER TABLE identities ADD COLUMN changed datetime NOT NULL default '0000-00-00 00:00:00'; --
CREATE TABLE temp_identities (
identity_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
standard tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
organization varchar(128) default '',
email varchar(128) NOT NULL default '',
"reply-to" varchar(128) NOT NULL default '',
bcc varchar(128) NOT NULL default '',
signature text NOT NULL default '',
html_signature tinyint NOT NULL default '0'
);
INSERT INTO temp_identities (identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature)
SELECT identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature
FROM identities WHERE del=0;
DROP INDEX ix_identities_user_id;
DROP TABLE identities;
CREATE TABLE identities (
identity_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
standard tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
organization varchar(128) default '',
email varchar(128) NOT NULL default '',
"reply-to" varchar(128) NOT NULL default '',
bcc varchar(128) NOT NULL default '',
signature text NOT NULL default '',
html_signature tinyint NOT NULL default '0'
);
CREATE INDEX ix_identities_user_id ON identities(user_id, del);
INSERT INTO identities (identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature)
SELECT identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature
FROM temp_identities;
DROP TABLE temp_identities;
CREATE TABLE contactgroups (
contactgroup_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default ''
);
CREATE INDEX ix_contactgroups_user_id ON contactgroups(user_id, del);
CREATE TABLE contactgroupmembers (
contactgroup_id integer NOT NULL,
contact_id integer NOT NULL default '0',
created datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (contactgroup_id, contact_id)
);

@ -0,0 +1,35 @@
-- Updates from version 0.4-beta
CREATE TABLE tmp_users (
user_id integer NOT NULL PRIMARY KEY,
username varchar(128) NOT NULL default '',
mail_host varchar(128) NOT NULL default '',
alias varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
last_login datetime NOT NULL default '0000-00-00 00:00:00',
language varchar(5),
preferences text NOT NULL default ''
);
INSERT INTO tmp_users (user_id, username, mail_host, alias, created, last_login, language, preferences)
SELECT user_id, username, mail_host, alias, created, last_login, language, preferences FROM users;
DROP TABLE users;
CREATE TABLE users (
user_id integer NOT NULL PRIMARY KEY,
username varchar(128) NOT NULL default '',
mail_host varchar(128) NOT NULL default '',
alias varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
last_login datetime DEFAULT NULL,
language varchar(5),
preferences text NOT NULL default ''
);
INSERT INTO users (user_id, username, mail_host, alias, created, last_login, language, preferences)
SELECT user_id, username, mail_host, alias, created, last_login, language, preferences FROM tmp_users;
CREATE INDEX ix_users_username ON users(username);
CREATE INDEX ix_users_alias ON users(alias);
DROP TABLE tmp_users;

@ -0,0 +1,40 @@
-- Updates from version 0.4.2
DROP INDEX ix_users_username;
CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host);
CREATE TABLE contacts_tmp (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email varchar(255) NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default ''
);
INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts;
DROP TABLE contacts;
CREATE TABLE contacts (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email varchar(255) NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default ''
);
INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts_tmp;
CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
DROP TABLE contacts_tmp;
DELETE FROM messages;

@ -0,0 +1,41 @@
-- Updates from version 0.5.x
CREATE TABLE contacts_tmp (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email varchar(255) NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default ''
);
INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts;
DROP TABLE contacts;
CREATE TABLE contacts (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default '0',
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email varchar(255) NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default '',
words text NOT NULL default ''
);
INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts_tmp;
CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
DROP TABLE contacts_tmp;
DELETE FROM messages;
DELETE FROM cache;
CREATE INDEX ix_contactgroupmembers_contact_id ON contactgroupmembers (contact_id);

@ -0,0 +1,54 @@
-- Updates from version 0.6
CREATE TABLE dictionary (
user_id integer DEFAULT NULL,
"language" varchar(5) NOT NULL,
data text NOT NULL
);
CREATE UNIQUE INDEX ix_dictionary_user_language ON dictionary (user_id, "language");
CREATE TABLE searches (
search_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL DEFAULT '0',
"type" smallint NOT NULL DEFAULT '0',
name varchar(128) NOT NULL,
data text NOT NULL
);
CREATE UNIQUE INDEX ix_searches_user_type_name ON searches (user_id, type, name);
DROP TABLE messages;
CREATE TABLE cache_index (
user_id integer NOT NULL,
mailbox varchar(255) NOT NULL,
changed datetime NOT NULL default '0000-00-00 00:00:00',
valid smallint NOT NULL DEFAULT '0',
data text NOT NULL,
PRIMARY KEY (user_id, mailbox)
);
CREATE INDEX ix_cache_index_changed ON cache_index (changed);
CREATE TABLE cache_thread (
user_id integer NOT NULL,
mailbox varchar(255) NOT NULL,
changed datetime NOT NULL default '0000-00-00 00:00:00',
data text NOT NULL,
PRIMARY KEY (user_id, mailbox)
);
CREATE INDEX ix_cache_thread_changed ON cache_thread (changed);
CREATE TABLE cache_messages (
user_id integer NOT NULL,
mailbox varchar(255) NOT NULL,
uid integer NOT NULL,
changed datetime NOT NULL default '0000-00-00 00:00:00',
data text NOT NULL,
flags integer NOT NULL DEFAULT '0',
PRIMARY KEY (user_id, mailbox, uid)
);
CREATE INDEX ix_cache_messages_changed ON cache_messages (changed);

@ -0,0 +1,11 @@
-- Updates from version 0.7-beta
DROP TABLE session;
CREATE TABLE session (
sess_id varchar(128) NOT NULL PRIMARY KEY,
created datetime NOT NULL default '0000-00-00 00:00:00',
changed datetime NOT NULL default '0000-00-00 00:00:00',
ip varchar(40) NOT NULL default '',
vars text NOT NULL
);
CREATE INDEX ix_session_changed ON session (changed);

@ -0,0 +1,38 @@
-- Updates from version 0.7
CREATE TABLE contacts_tmp (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL,
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email text NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default '',
words text NOT NULL default ''
);
INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words FROM contacts;
DROP TABLE contacts;
CREATE TABLE contacts (
contact_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL,
changed datetime NOT NULL default '0000-00-00 00:00:00',
del tinyint NOT NULL default '0',
name varchar(128) NOT NULL default '',
email text NOT NULL default '',
firstname varchar(128) NOT NULL default '',
surname varchar(128) NOT NULL default '',
vcard text NOT NULL default '',
words text NOT NULL default ''
);
INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words)
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words FROM contacts_tmp;
CREATE INDEX ix_contacts_user_id ON contacts(user_id, del);
DROP TABLE contacts_tmp;

@ -0,0 +1,44 @@
-- Updates from version 0.8
DROP TABLE cache;
CREATE TABLE cache (
user_id integer NOT NULL default 0,
cache_key varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
data text NOT NULL
);
CREATE INDEX ix_cache_user_cache_key ON cache(user_id, cache_key);
CREATE INDEX ix_cache_created ON cache(created);
CREATE TABLE tmp_users (
user_id integer NOT NULL PRIMARY KEY,
username varchar(128) NOT NULL default '',
mail_host varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
last_login datetime DEFAULT NULL,
language varchar(5),
preferences text NOT NULL default ''
);
INSERT INTO tmp_users (user_id, username, mail_host, created, last_login, language, preferences)
SELECT user_id, username, mail_host, created, last_login, language, preferences FROM users;
DROP TABLE users;
CREATE TABLE users (
user_id integer NOT NULL PRIMARY KEY,
username varchar(128) NOT NULL default '',
mail_host varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
last_login datetime DEFAULT NULL,
language varchar(5),
preferences text NOT NULL default ''
);
INSERT INTO users (user_id, username, mail_host, created, last_login, language, preferences)
SELECT user_id, username, mail_host, created, last_login, language, preferences FROM tmp_users;
CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host);
CREATE INDEX ix_identities_email ON identities(email, del);

@ -0,0 +1,6 @@
-- Updates from version 0.9-beta
CREATE TABLE IF NOT EXISTS system (
name varchar(64) NOT NULL PRIMARY KEY,
value text NOT NULL
);

@ -0,0 +1,2 @@
-- drop temp table created in 2012080700.sql
DROP TABLE IF EXISTS tmp_users;

@ -20,7 +20,7 @@ target location and check and update the configuration and database schema.
After all is done, the temporary folder with the new Roundcube files can be
removed again.
Please also see Post-Upgrade Activities section.
WARNING: See Post-Upgrade Activities section below.
Updating manually
@ -40,6 +40,7 @@ it on a unix system, you need to do the following operations by hand:
open http://url-to-roundcube/installer/ in a browser and choose "3 Test config".
To enable the latter one, you have to temporary set 'enable_installer'
to true in your local config/main.inc.php file.
WARNING: See SQLite database upgrade below.
4. Let the update script/installer check your configuration and
update your config files and database schema as suggested by the updater.
5. Make sure 'enable_installer' is set to false again.
@ -53,3 +54,12 @@ Post-Upgrade Activities
3. When upgrading from version older than 0.6-beta you should make sure
your folder settings contain namespace prefix. For example Courier users
should add INBOX. prefix to folder names in main configuration file.
4. Check system requirements in INSTALL file.
SQLite database upgrade
-----------------------
Versions older than 0.9 were supporting SQLite v2 only. Newer versions require
database in v3 format. The best what you can do is to convert database file
to the new format using command line tools:
sqlite OLD.DB .dump | sqlite3 NEW.DB

@ -35,7 +35,7 @@ if (!preg_match('/define\(.RCMAIL_VERSION.,\s*.([0-9.]+[a-z-]*)/', $iniset, $m))
$oldversion = $m[1];
if (version_compare($oldversion, RCMAIL_VERSION, '>='))
if (version_compare(version_parse($oldversion), version_parse(RCMAIL_VERSION), '>='))
die("Installation at target location is up-to-date!\n");
echo "Upgrading from $oldversion. Do you want to continue? (y/N)\n";

@ -1,11 +1,12 @@
#!/bin/sh
JS_DIR=`dirname "$0"`/../program/js
JAR_DIR='/tmp'
LANG_IN='ECMASCRIPT3'
CLOSURE_COMPILER_URL='http://closure-compiler.googlecode.com/files/compiler-latest.zip'
do_shrink() {
rm -f "$2"
java -jar $JAR_DIR/compiler.jar --compilation_level=SIMPLE_OPTIMIZATIONS --js="$1" --js_output_file="$2"
java -jar $JAR_DIR/compiler.jar --compilation_level=SIMPLE_OPTIMIZATIONS --js="$1" --js_output_file="$2" --language_in="$3"
}
if [ ! -d "$JS_DIR" ]; then
@ -37,12 +38,30 @@ if [ ! -r "$JAR_DIR/compiler.jar" ]; then
rm -f "/tmp/$$.zip"
fi
for fn in app common googiespell list; do
# compress single file from argument
if [ $# -gt 0 ]; then
JS_DIR=`dirname "$1"`
JS_FILE="$1"
if [ $# -gt 1 ]; then
LANG_IN="$2"
fi
if [ ! -r "${JS_FILE}.src" ]; then
mv "$JS_FILE" "${JS_FILE}.src"
fi
echo "Shrinking $JS_FILE"
do_shrink "${JS_FILE}.src" "$JS_FILE" "$LANG_IN"
exit
fi
# default: compress application scripts
for fn in app common googiespell list treelist; do
if [ -r "$JS_DIR/${fn}.js.src" ]; then
echo "$JS_DIR/${fn}.js.src already exists, not overwriting"
else
mv "$JS_DIR/${fn}.js" "$JS_DIR/${fn}.js.src"
fi
echo "Shrinking $JS_DIR/${fn}.js"
do_shrink "$JS_DIR/${fn}.js.src" "$JS_DIR/${fn}.js"
do_shrink "$JS_DIR/${fn}.js.src" "$JS_DIR/${fn}.js" "$LANG_IN"
done

@ -6,7 +6,7 @@ if [ ! -d "$JS_DIR" ]; then
exit 1
fi
for fn in app common googiespell list; do
for fn in app common googiespell list treelist; do
if [ -r "$JS_DIR/${fn}.js.src" ]; then
mv "$JS_DIR/${fn}.js.src" "$JS_DIR/${fn}.js"
echo "Reverted $JS_DIR/${fn}.js"

@ -1,10 +1,11 @@
#!/bin/sh
TITLE="Roundcube Classes"
TITLE="Roundcube Webmail"
PACKAGES="Core"
INSTALL_PATH="`dirname $0`/.."
PATH_PROJECT=$INSTALL_PATH/program/include
PATH_FRAMEWORK=$INSTALL_PATH/program/lib/Roundcube
PATH_DOCS=$INSTALL_PATH/doc/phpdoc
BIN_PHPDOC="`/usr/bin/which phpdoc`"
@ -20,6 +21,6 @@ TEMPLATE=earthli
PRIVATE=off
# make documentation
$BIN_PHPDOC -d $PATH_PROJECT -t $PATH_DOCS -ti "$TITLE" -dn $PACKAGES \
$BIN_PHPDOC -d $PATH_PROJECT,$PATH_FRAMEWORK -t $PATH_DOCS -ti "$TITLE" -dn $PACKAGES \
-o $OUTPUTFORMAT:$CONVERTER:$TEMPLATE -pp $PRIVATE

@ -31,7 +31,7 @@ function print_usage()
// get arguments
$args = rcube_utils:get_opt(array('u' => 'user', 'd' => 'delete'));
$args = rcube_utils::get_opt(array('u' => 'user', 'd' => 'delete'));
if ($_SERVER['argv'][1] == 'help') {
print_usage();

@ -32,9 +32,11 @@ if (!$opts['version']) {
echo "What version are you upgrading from? Type '?' if you don't know.\n";
if (($input = trim(fgets(STDIN))) && preg_match('/^[0-9.]+[a-z-]*$/', $input))
$opts['version'] = $input;
else
$opts['version'] = RCMAIL_VERSION;
}
if ($opts['version'] && version_compare($opts['version'], RCMAIL_VERSION, '>'))
if ($opts['version'] && version_compare(version_parse($opts['version']), version_parse(RCMAIL_VERSION), '>='))
die("Nothing to be done here. Bye!\n");
@ -124,7 +126,7 @@ if ($RCI->configured) {
}
}
else {
echo "Please update your config files manually according to the above messages.\n\n";
echo "Please update your config files manually according to the above messages.\n";
}
}
@ -143,36 +145,18 @@ if ($RCI->configured) {
// check database schema
if ($RCI->config['db_dsnw']) {
$DB = rcube_db::factory($RCI->config['db_dsnw'], '', false);
$DB->db_connect('w');
if ($db_error_msg = $DB->is_error()) {
echo "Error connecting to database: $db_error_msg\n";
$success = false;
}
else if ($err = $RCI->db_schema_check($DB, false)) {
$updatefile = INSTALL_PATH . 'SQL/' . (isset($RCI->db_map[$DB->db_provider]) ? $RCI->db_map[$DB->db_provider] : $DB->db_provider) . '.update.sql';
echo "WARNING: Database schema needs to be updated!\n";
echo join("\n", $err) . "\n\n";
$success = false;
if ($opts['version']) {
echo "Do you want to run the update queries to get the schmea fixed? (y/N)\n";
$input = trim(fgets(STDIN));
if (strtolower($input) == 'y') {
$success = $RCI->update_db($DB, $opts['version']);
}
}
if (!$success)
echo "Open $updatefile and execute all queries below the comment with the currently installed version number.\n";
}
echo "Executing database schema update.\n";
system(INSTALL_PATH . "bin/updatedb.sh --package=roundcube --version=" . $opts['version']
. " --dir=" . INSTALL_PATH . DIRECTORY_SEPARATOR . "SQL", $res);
$success = !$res;
}
// index contacts for fulltext searching
if (version_compare($opts['version'], '0.6', '<')) {
if (version_compare(version_parse($opts['version']), '0.6.0', '<')) {
system(INSTALL_PATH . 'bin/indexcontacts.sh');
}
if ($success) {
echo "This instance of Roundcube is up-to-date.\n";
echo "Have fun!\n";
@ -183,6 +167,4 @@ else {
echo "Open http://url-to-roundcube/installer/ in your browser and follow the instuctions.\n";
}
echo "\n";
?>

@ -0,0 +1,201 @@
#!/usr/bin/env php
<?php
/*
+-----------------------------------------------------------------------+
| bin/updatedb.sh |
| |
| This file is part of the Roundcube Webmail client |
| Copyright (C) 2010-2012, The Roundcube Dev Team |
| Copyright (C) 2010-2012, Kolab Systems AG |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
| PURPOSE: |
| Update database schema |
+-----------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-----------------------------------------------------------------------+
*/
define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' );
require_once INSTALL_PATH . 'program/include/clisetup.php';
// get arguments
$opts = rcube_utils::get_opt(array(
'v' => 'version',
'd' => 'dir',
'p' => 'package',
));
if (empty($opts['dir'])) {
echo "ERROR: Database schema directory not specified (--dir).\n";
exit(1);
}
if (empty($opts['package'])) {
echo "ERROR: Database schema package name not specified (--package).\n";
exit(1);
}
// Check if directory exists
if (!file_exists($opts['dir'])) {
echo "ERROR: Specified database schema directory doesn't exist.\n";
exit(1);
}
$RC = rcube::get_instance();
$DB = rcube_db::factory($RC->config->get('db_dsnw'));
// Connect to database
$DB->db_connect('w');
if (!$DB->is_connected()) {
echo "Error connecting to database: " . $DB->is_error() . ".\n";
exit(1);
}
// Read DB schema version from database (if 'system' table exists)
if (in_array($DB->table_name('system'), (array)$DB->list_tables())) {
$DB->query("SELECT " . $DB->quote_identifier('value')
." FROM " . $DB->quote_identifier($DB->table_name('system'))
." WHERE " . $DB->quote_identifier('name') ." = ?",
$opts['package'] . '-version');
$row = $DB->fetch_array();
$version = preg_replace('/[^0-9]/', '', $row[0]);
}
// DB version not found, but release version is specified
if (!$version && $opts['version']) {
// Map old release version string to DB schema version
// Note: This is for backward compat. only, do not need to be updated
$map = array(
'0.1-stable' => 1,
'0.1.1' => 2008030300,
'0.2-alpha' => 2008040500,
'0.2-beta' => 2008060900,
'0.2-stable' => 2008092100,
'0.3-stable' => 2008092100,
'0.3.1' => 2009090400,
'0.4-beta' => 2009103100,
'0.4.2' => 2010042300,
'0.5-beta' => 2010100600,
'0.5' => 2010100600,
'0.5.1' => 2010100600,
'0.6-beta' => 2011011200,
'0.6' => 2011011200,
'0.7-beta' => 2011092800,
'0.7' => 2011111600,
'0.7.1' => 2011111600,
'0.7.2' => 2011111600,
'0.7.3' => 2011111600,
'0.7.4' => 2011111600,
'0.8-beta' => 2011121400,
'0.8-rc' => 2011121400,
'0.8.0' => 2011121400,
'0.8.1' => 2011121400,
'0.8.2' => 2011121400,
'0.8.3' => 2011121400,
'0.8.4' => 2011121400,
'0.8.5' => 2011121400,
'0.8.6' => 2011121400,
'0.9-beta' => 2012080700,
);
$version = $map[$opts['version']];
}
// Assume last version before the 'system' table was added
if (empty($version)) {
$version = 2012080700;
}
$dir = $opts['dir'] . DIRECTORY_SEPARATOR . $DB->db_provider;
if (!file_exists($dir)) {
echo "DDL Upgrade files for " . $DB->db_provider . " driver not found.\n";
exit(1);
}
$dh = opendir($dir);
$result = array();
while ($file = readdir($dh)) {
if (preg_match('/^([0-9]+)\.sql$/', $file, $m) && $m[1] > $version) {
$result[] = $m[1];
}
}
sort($result, SORT_NUMERIC);
foreach ($result as $v) {
echo "Updating database schema ($v)... ";
$error = update_db_schema($opts['package'], $v, $dir . DIRECTORY_SEPARATOR . "$v.sql");
if ($error) {
echo "\nError in DDL upgrade $v: $error\n";
exit(1);
}
echo "[OK]\n";
}
exit(0);
function update_db_schema($package, $version, $file)
{
global $DB;
// read DDL file
if ($lines = file($file)) {
$sql = '';
foreach ($lines as $line) {
if (preg_match('/^--/', $line) || trim($line) == '')
continue;
$sql .= $line . "\n";
if (preg_match('/(;|^GO)$/', trim($line))) {
@$DB->query(fix_table_names($sql));
$sql = '';
if ($error = $DB->is_error()) {
return $error;
}
}
}
}
// escape if 'system' table does not exist
if ($version < 2013011000) {
return;
}
$system_table = $DB->quote_identifier($DB->table_name('system'));
$DB->query("UPDATE " . $system_table
." SET " . $DB->quote_identifier('value') . " = ?"
." WHERE " . $DB->quote_identifier('name') . " = ?",
$version, $package . '-version');
if (!$DB->is_error() && !$DB->affected_rows()) {
$DB->query("INSERT INTO " . $system_table
." (" . $DB->quote_identifier('name') . ", " . $DB->quote_identifier('value') . ")"
." VALUES (?, ?)",
$package . '-version', $version);
}
return $DB->is_error();
}
function fix_table_names($sql)
{
global $DB;
foreach (array('users','identities','contacts','contactgroups','contactgroupmembers','session','cache','cache_index','cache_index','cache_messages','dictionary','searches','system') as $table) {
$real_table = $DB->table_name($table);
if ($real_table != $table) {
$sql = preg_replace("/([^a-z0-9_])$table([^a-z0-9_])/i", "\\1$real_table\\2", $sql);
}
}
return $sql;
}
?>

@ -24,7 +24,7 @@
}
}
],
"require" : {
"require": {
"pear-pear/Mail_Mime": ">=1.8.1",
"pear-pear/Mail_mimeDecode": ">=1.5.5",
"Net_SMTP": "dev-master",

@ -49,6 +49,7 @@ $rcmail_config['db_table_cache_thread'] = 'cache_thread';
$rcmail_config['db_table_cache_messages'] = 'cache_messages';
$rcmail_config['db_table_dictionary'] = 'dictionary';
$rcmail_config['db_table_searches'] = 'searches';
$rcmail_config['db_table_system'] = 'system';
// you can define specific sequence names used in PostgreSQL
$rcmail_config['db_sequence_users'] = 'user_ids';

@ -63,8 +63,8 @@ $rcmail_config['smtp_debug'] = false;
// IMAP
// ----------------------------------
// the mail host chosen to perform the log-in
// leave blank to show a textbox at login, give a list of hosts
// The mail host chosen to perform the log-in.
// Leave blank to show a textbox at login, give a list of hosts
// to display a pulldown menu or set one host as string.
// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://
// Supported replacement variables:
@ -73,6 +73,8 @@ $rcmail_config['smtp_debug'] = false;
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %s - domain name after the '@' from e-mail address provided at login screen
// For example %n = mail.domain.tld, %t = domain.tld
// WARNING: After hostname change update of mail_host column in users table is
// required to match old user data records with the new host.
$rcmail_config['default_host'] = '';
// TCP port used for IMAP connections
@ -351,11 +353,16 @@ $rcmail_config['line_length'] = 72;
// send plaintext messages as format=flowed
$rcmail_config['send_format_flowed'] = true;
// According to RFC2298, return receipt envelope sender address must be empty.
// If this option is true, Roundcube will use user's identity as envelope sender for MDN responses.
$rcmail_config['mdn_use_from'] = false;
// Set identities access level:
// 0 - many identities with possibility to edit all params
// 1 - many identities with possibility to edit all params but not email address
// 2 - one identity with possibility to edit all params
// 3 - one identity with possibility to edit all params but not email address
// 4 - one identity with possibility to edit only signature
$rcmail_config['identities_level'] = 0;
// Mimetypes supported by the browser.
@ -367,9 +374,10 @@ $rcmail_config['client_mimetypes'] = null; # null == default
// Set to null if the default path should be used.
$rcmail_config['mime_magic'] = null;
// Path to local mime.types mapping table.
// Absolute path to a local mime.types mapping table file.
// This is used to derive mime-types from the filename extension or vice versa.
// Such a file is usually part of the apache webserver.
// Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system,
// download it from http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
$rcmail_config['mime_types'] = null;
// path to imagemagick identify binary
@ -569,6 +577,7 @@ $rcmail_config['ldap_public']['Verisign'] = array(
'port' => 389,
'use_tls' => false,
'ldap_version' => 3, // using LDAPv3
'network_timeout' => 10, // The timeout (in seconds) for connect + bind arrempts. This is only supported in PHP >= 5.3.0 with OpenLDAP 2.x
'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.
// %fu - The full username provided, assumes the username is an email
// address, uses the username_domain value if not an email address.
@ -826,9 +835,6 @@ $rcmail_config['strip_existing_sig'] = true;
// 3 - Forwards and Replies only
$rcmail_config['show_sig'] = 1;
// When replying or forwarding place sender's signature above existing message
$rcmail_config['sig_above'] = false;
// Use MIME encoding (quoted-printable) for 8bit characters in message body
$rcmail_config['force_7bit'] = false;

@ -2,9 +2,9 @@
/*
+-------------------------------------------------------------------------+
| Roundcube Webmail IMAP Client |
| Version 0.9-git |
| Version 1.0-git |
| |
| Copyright (C) 2005-2012, The Roundcube Dev Team |
| Copyright (C) 2005-2013, The Roundcube Dev Team |
| |
| This program is free software: you can redistribute it and/or modify |
| it under the terms of the GNU General Public License (with exceptions |

@ -1,3 +1,10 @@
<?php
if (!class_exists('rcube_install') || !is_object($RCI)) {
die("Not allowed! Please open installer/index.php instead.");
}
?>
<form action="index.php" method="get">
<?php
@ -130,7 +137,13 @@ foreach ($optional_php_exts as $name => $ext) {
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
foreach ($RCI->supported_dbs as $database => $ext) {
if (extension_loaded($ext)) {
$RCI->pass($database);
// MySQL driver requires PHP >= 5.3 (#1488875)
if ($ext == 'pdo_mysql' && version_compare(PHP_VERSION, '5.3.0', '<')) {
$RCI->fail($database, 'PHP >= 5.3 required');
}
else {
$RCI->pass($database);
}
}
else {
$_ext = $ext_dir . '/' . $prefix . $ext . '.' . PHP_SHLIB_SUFFIX;

@ -1,3 +1,10 @@
<?php
if (!class_exists('rcube_install') || !is_object($RCI)) {
die("Not allowed! Please open installer/index.php instead.");
}
?>
<form action="index.php" method="post">
<input type="hidden" name="_step" value="2" />
<?php

@ -44,7 +44,6 @@ define('RCUBE_INSTALL_PATH', INSTALL_PATH);
define('RCUBE_CONFIG_DIR', INSTALL_PATH . 'config/');
$include_path = INSTALL_PATH . 'program/lib' . PATH_SEPARATOR;
$include_path .= INSTALL_PATH . 'program' . PATH_SEPARATOR;
$include_path .= INSTALL_PATH . 'program/include' . PATH_SEPARATOR;
$include_path .= ini_get('include_path');

@ -29,7 +29,6 @@ class rcube_install
var $config = array();
var $configured = false;
var $last_error = null;
var $db_map = array('pgsql' => 'postgres', 'mysqli' => 'mysql', 'sqlsrv' => 'mssql');
var $email_pattern = '([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9])';
var $bool_config_props = array();
@ -65,7 +64,7 @@ class rcube_install
/**
* Constructor
*/
function rcube_install()
function __construct()
{
$this->step = intval($_REQUEST['_step']);
$this->is_post = $_SERVER['REQUEST_METHOD'] == 'POST';
@ -74,7 +73,7 @@ class rcube_install
/**
* Singleton getter
*/
function get_instance()
static function get_instance()
{
static $inst;
@ -261,6 +260,11 @@ class rcube_install
}
}
// the old default mime_magic reference is obsolete
if ($this->config['mime_magic'] == '/usr/share/misc/magic') {
$out['obsolete'][] = array('prop' => 'mime_magic', 'explain' => "Set value to null in order to use system default");
}
// iterate over default config
foreach ($defaults as $prop => $value) {
if (!isset($seen[$prop]) && isset($required[$prop]) && !(is_bool($this->config[$prop]) || strlen($this->config[$prop])))
@ -448,10 +452,11 @@ class rcube_install
'0.2-alpha', '0.2-beta', '0.2-stable',
'0.3-stable', '0.3.1',
'0.4-beta', '0.4.2',
'0.5-beta', '0.5', '0.5.1',
'0.5-beta', '0.5', '0.5.1', '0.5.2', '0.5.3', '0.5.4',
'0.6-beta', '0.6',
'0.7-beta', '0.7', '0.7.1', '0.7.2', '0.7.3',
'0.8-beta', '0.8-rc', '0.8.0', '0.8.1', '0.8.2', '0.8.3', '0.8.4',
'0.7-beta', '0.7', '0.7.1', '0.7.2', '0.7.3', '0.7.4',
'0.8-beta', '0.8-rc', '0.8.0', '0.8.1', '0.8.2', '0.8.3', '0.8.4', '0.8.5', '0.8.6',
'0.9-beta', '0.9-rc', '0.9-rc2',
));
return $select;
}
@ -603,7 +608,7 @@ class rcube_install
*/
function init_db($DB)
{
$engine = isset($this->db_map[$DB->db_provider]) ? $this->db_map[$DB->db_provider] : $DB->db_provider;
$engine = $DB->db_provider;
// read schema file from /SQL/*
$fname = INSTALL_PATH . "SQL/$engine.initial.sql";
@ -625,46 +630,18 @@ class rcube_install
/**
* Update database with SQL statements from SQL/*.update.sql
* Update database schema
*
* @param object rcube_db Database connection
* @param string Version to update from
*
* @return boolen True on success, False on error
*/
function update_db($DB, $version)
function update_db($version)
{
$version = strtolower($version);
$engine = isset($this->db_map[$DB->db_provider]) ? $this->db_map[$DB->db_provider] : $DB->db_provider;
// read schema file from /SQL/*
$fname = INSTALL_PATH . "SQL/$engine.update.sql";
if ($lines = @file($fname, FILE_SKIP_EMPTY_LINES)) {
$from = false; $sql = '';
foreach ($lines as $line) {
$is_comment = preg_match('/^--/', $line);
if (!$from && $is_comment && preg_match('/from version\s([0-9.]+[a-z-]*)/', $line, $m)) {
$v = strtolower($m[1]);
if ($v == $version || version_compare($version, $v, '<='))
$from = true;
}
if ($from && !$is_comment)
$sql .= $line. "\n";
}
if ($sql)
$this->exec_sql($sql, $DB);
}
else {
$this->fail('DB Schema', "Cannot read the update file: $fname");
return false;
}
system(INSTALL_PATH . "bin/updatedb.sh --package=roundcube --version=" . $version
. " --dir=" . INSTALL_PATH . "SQL", $result);
if ($err = $this->get_error()) {
$this->fail('DB Schema', "Error updating database: $err");
return false;
}
return true;
return !$result;
}

@ -1,3 +1,10 @@
<?php
if (!class_exists('rcube_install') || !is_object($RCI)) {
die("Not allowed! Please open installer/index.php instead.");
}
?>
<form action="index.php?_step=3" method="post">
<h3>Check config files</h3>
@ -157,11 +164,9 @@ if ($db_working && $_POST['initdb']) {
}
else if ($db_working && $_POST['updatedb']) {
if (!($success = $RCI->update_db($DB, $_POST['version']))) {
$updatefile = INSTALL_PATH . 'SQL/' . (isset($RCI->db_map[$DB->db_provider]) ? $RCI->db_map[$DB->db_provider] : $DB->db_provider) . '.update.sql';
echo '<p class="warning">Please manually execute the SQL statements from '.$updatefile.' on your database.<br/>';
echo 'See comments in the file and execute queries below the comment with the currently installed version number.</p>';
}
if (!($success = $RCI->update_db($_POST['version']))) {
echo '<p class="warning">Database schema update failed.</p>';
}
}
// test database
@ -176,9 +181,8 @@ if ($db_working) {
$RCI->fail('DB Schema', "Database schema differs");
echo '<ul style="margin:0"><li>' . join("</li>\n<li>", $err) . "</li></ul>";
$select = $RCI->versions_select(array('name' => 'version'));
echo '<p class="suggestion">You should run the update queries to get the schmea fixed.<br/><br/>Version to update from: ' . $select->show() . '&nbsp;<input type="submit" name="updatedb" value="Update" /></p>';
// echo '<p class="warning">Please manually execute the SQL statements from '.$updatefile.' on your database.<br/>';
// echo 'See comments in the file and execute queries that are superscribed with the currently installed version number.</p>';
$select->add('0.9 or newer', '');
echo '<p class="suggestion">You should run the update queries to get the schema fixed.<br/><br/>Version to update from: ' . $select->show() . '&nbsp;<input type="submit" name="updatedb" value="Update" /></p>';
$db_working = false;
}
else {

@ -302,7 +302,7 @@ rcube_webmail.prototype.acl_init_form = function(id)
li_elements.map(function() {
val = this.value;
td = $('td.'+this.id, row);
if (td && td.hasClass('enabled'))
if (td.length && td.hasClass('enabled'))
this.checked = true;
});

@ -55,7 +55,7 @@ class acl extends rcube_plugin
*/
function acl_actions()
{
$action = trim(get_input_value('_act', RCUBE_INPUT_GPC));
$action = trim(rcube_utils::get_input_value('_act', rcube_utils::INPUT_GPC));
// Connect to IMAP
$this->rc->storage_init();
@ -85,8 +85,8 @@ class acl extends rcube_plugin
{
$this->load_config();
$search = get_input_value('_search', RCUBE_INPUT_GPC, true);
$sid = get_input_value('_id', RCUBE_INPUT_GPC);
$search = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC, true);
$sid = rcube_utils::get_input_value('_id', rcube_utils::INPUT_GPC);
$users = array();
if ($this->init_ldap()) {
@ -157,12 +157,12 @@ class acl extends rcube_plugin
// add Info fieldset if it doesn't exist
if (!isset($args['form']['props']['fieldsets']['info']))
$args['form']['props']['fieldsets']['info'] = array(
'name' => rcube_label('info'),
'name' => $this->rc->gettext('info'),
'content' => array());
// Display folder rights to 'Info' fieldset
$args['form']['props']['fieldsets']['info']['content']['myrights'] = array(
'label' => Q($this->gettext('myrights')),
'label' => rcube::Q($this->gettext('myrights')),
'value' => $this->acl2text($myrights)
);
@ -186,7 +186,7 @@ class acl extends rcube_plugin
$this->rc->output->add_label('autocompletechars', 'autocompletemore');
$args['form']['sharing'] = array(
'name' => Q($this->gettext('sharing')),
'name' => rcube::Q($this->gettext('sharing')),
'content' => $this->rc->output->parse('acl.table', false, false),
);
@ -233,7 +233,8 @@ class acl extends rcube_plugin
// Advanced rights
$attrib['id'] = 'advancedrights';
foreach ($supported as $idx => $val) {
foreach ($supported as $key => $val) {
$id = "acl$val";
$ul .= html::tag('li', null,
$input->show('', array(
'name' => "acl[$val]", 'value' => $val, 'id' => $id))
@ -392,14 +393,14 @@ class acl extends rcube_plugin
// filter out virtual rights (c or d) the server may return
$userrights = array_intersect($rights, $supported);
$userid = html_identifier($user);
$userid = rcube_utils::html_identifier($user);
if (!empty($this->specials) && in_array($user, $this->specials)) {
$user = $this->gettext($user);
}
$table->add_row(array('id' => 'rcmrow'.$userid));
$table->add('user', Q($user));
$table->add('user', rcube::Q($user));
foreach ($items as $key => $right) {
$in = $this->acl_compare($userrights, $right);
@ -427,10 +428,10 @@ class acl extends rcube_plugin
*/
private function action_save()
{
$mbox = trim(get_input_value('_mbox', RCUBE_INPUT_GPC, true)); // UTF7-IMAP
$user = trim(get_input_value('_user', RCUBE_INPUT_GPC));
$acl = trim(get_input_value('_acl', RCUBE_INPUT_GPC));
$oldid = trim(get_input_value('_old', RCUBE_INPUT_GPC));
$mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true)); // UTF7-IMAP
$user = trim(rcube_utils::get_input_value('_user', rcube_utils::INPUT_GPC));
$acl = trim(rcube_utils::get_input_value('_acl', rcube_utils::INPUT_GPC));
$oldid = trim(rcube_utils::get_input_value('_old', rcube_utils::INPUT_GPC));
$acl = array_intersect(str_split($acl), $this->rights_supported());
$users = $oldid ? array($user) : explode(',', $user);
@ -441,9 +442,9 @@ class acl extends rcube_plugin
if (!empty($this->specials) && in_array($user, $this->specials)) {
$username = $this->gettext($user);
}
else {
else if (!empty($user)) {
if (!strpos($user, '@') && ($realm = $this->get_realm())) {
$user .= '@' . rcube_idn_to_ascii(preg_replace('/^@/', '', $realm));
$user .= '@' . rcube_utils::idn_to_ascii(preg_replace('/^@/', '', $realm));
}
$username = $user;
}
@ -452,9 +453,12 @@ class acl extends rcube_plugin
continue;
}
$user = $this->mod_login($user);
$username = $this->mod_login($username);
if ($user != $_SESSION['username'] && $username != $_SESSION['username']) {
if ($this->rc->storage->set_acl($mbox, $user, $acl)) {
$ret = array('id' => html_identifier($user),
$ret = array('id' => rcube_utils::html_identifier($user),
'username' => $username, 'acl' => implode($acl), 'old' => $oldid);
$this->rc->output->command('acl_update', $ret);
$result++;
@ -475,15 +479,15 @@ class acl extends rcube_plugin
*/
private function action_delete()
{
$mbox = trim(get_input_value('_mbox', RCUBE_INPUT_GPC, true)); //UTF7-IMAP
$user = trim(get_input_value('_user', RCUBE_INPUT_GPC));
$mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true)); //UTF7-IMAP
$user = trim(rcube_utils::get_input_value('_user', rcube_utils::INPUT_GPC));
$user = explode(',', $user);
foreach ($user as $u) {
$u = trim($u);
if ($this->rc->storage->delete_acl($mbox, $u)) {
$this->rc->output->command('acl_remove_row', html_identifier($u));
$this->rc->output->command('acl_remove_row', rcube_utils::html_identifier($u));
}
else {
$error = true;
@ -507,8 +511,8 @@ class acl extends rcube_plugin
return;
}
$this->mbox = trim(get_input_value('_mbox', RCUBE_INPUT_GPC, true)); // UTF7-IMAP
$advanced = trim(get_input_value('_mode', RCUBE_INPUT_GPC));
$this->mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true)); // UTF7-IMAP
$advanced = trim(rcube_utils::get_input_value('_mode', rcube_utils::INPUT_GPC));
$advanced = $advanced == 'advanced' ? true : false;
// Save state in user preferences
@ -543,12 +547,12 @@ class acl extends rcube_plugin
foreach ($supported as $right) {
if (in_array($right, $rights)) {
$list[] = html::tag('li', null, Q($this->gettext('acl' . $right)));
$list[] = html::tag('li', null, rcube::Q($this->gettext('acl' . $right)));
}
}
if (count($list) == count($supported))
return Q($this->gettext('aclfull'));
return rcube::Q($this->gettext('aclfull'));
return html::tag('ul', $attrib, implode("\n", $list));
}
@ -703,4 +707,23 @@ class acl extends rcube_plugin
return $this->ldap->ready;
}
/**
* Modify user login according to 'login_lc' setting
*/
protected function mod_login($user)
{
$login_lc = $this->rc->config->get('login_lc');
if ($login_lc === true || $login_lc == 2) {
$user = mb_strtolower($user);
}
// lowercase domain name
else if ($login_lc && strpos($user, '@')) {
list($local, $domain) = explode('@', $user);
$user = $local . '@' . mb_strtolower($domain);
}
return $user;
}
}

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/az_AZ/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Orkhan Guliyev <proger@box.az> |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Paylaşma';
$labels['myrights'] = 'Giriş hüququ';
$labels['username'] = 'İstifadəçi:';
@ -23,44 +25,48 @@ $labels['actions'] = 'Giriş hüququ ilə hərəkət...';
$labels['anyone'] = 'Bütün istifadəçilər (istənilən)';
$labels['anonymous'] = 'Qonaqlar (anonimlər)';
$labels['identifier'] = 'İdentifikator';
$labels['acll'] = 'Baxış';
$labels['shortacll'] = 'Baxış';
$labels['aclr'] = 'Məktubu oxu';
$labels['acls'] = 'Oxunulan kimi saxla';
$labels['aclw'] = 'Yazı bayrağı';
$labels['acli'] = 'Əlavə et (kopyala)';
$labels['aclp'] = 'Yazı';
$labels['shortaclp'] = 'Yazı';
$labels['aclc'] = 'Qovluqaltı yarat';
$labels['aclk'] = 'Qovluqaltı yarat';
$labels['acld'] = 'Məktubu sil';
$labels['aclt'] = 'Məktubu sil';
$labels['acle'] = 'Poz';
$labels['shortacle'] = 'Poz';
$labels['aclx'] = 'Qovluğu sil';
$labels['acla'] = 'İdarə';
$labels['shortacla'] = 'İdarə';
$labels['aclfull'] = 'Tam idarə';
$labels['aclother'] = 'Digər';
$labels['shortaclother'] = 'Digər';
$labels['aclread'] = 'Oxu';
$labels['shortaclr'] = 'Oxu';
$labels['shortaclread'] = 'Oxu';
$labels['aclwrite'] = 'Yaz';
$labels['shortaclw'] = 'Yaz';
$labels['shortaclwrite'] = 'Yaz';
$labels['acldelete'] = 'Sil';
$labels['shortacld'] = 'Sil';
$labels['shortaclt'] = 'Sil';
$labels['shortacldelete'] = 'Sil';
$labels['shortacll'] = 'Baxış';
$labels['shortaclr'] = 'Oxu';
$labels['shortacls'] = 'Saxla';
$labels['shortaclw'] = 'Yaz';
$labels['shortacli'] = 'Yerləşdir';
$labels['shortaclp'] = 'Yazı';
$labels['shortaclc'] = 'Yarat';
$labels['shortaclk'] = 'Yarat';
$labels['shortacld'] = 'Sil';
$labels['shortaclt'] = 'Sil';
$labels['shortacle'] = 'Poz';
$labels['shortaclx'] = 'Qovluğun silinməsi';
$labels['shortacla'] = 'İdarə';
$labels['shortaclother'] = 'Digər';
$labels['shortaclread'] = 'Oxu';
$labels['shortaclwrite'] = 'Yaz';
$labels['shortacldelete'] = 'Sil';
$labels['longacll'] = 'Qovluq siyahıda görünür və yazılmağa hazırdır';
$labels['longaclr'] = 'Bu qovluq oxunmaq üçün açıla bilər';
$labels['longaclread'] = 'Bu qovluq oxunmaq üçün açıla bilər';
$labels['longacls'] = 'Oxunulan flaqı dəyişdirilə bilər';
$labels['longaclw'] = 'Oxunulan və silinənlərdən başqa flaqlar və açar sözləri dəyişdirilə bilər';
$labels['longacli'] = 'Məktub qovluğa yazıla və ya saxlanıla bilər';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'Silinən flaqı dəyişdirilə bilər';
$labels['longacle'] = 'Məktublar pozula bilər';
$labels['longaclx'] = 'Bu qovluq silinə və ya adı dəyişdirilə bilər';
$labels['longacla'] = 'Bu qovluğa giriş hüququ dəyişdirilə bilər';
$labels['longaclfull'] = 'Qovluğun idarəsi ilə birlikdə, tam giriş.';
$labels['longaclread'] = 'Bu qovluq oxunmaq üçün açıla bilər';
$labels['longaclwrite'] = 'Məktubu bu qovluğa qeyd etmək, yazmaq və kopyalamaq olar';
$labels['longacldelete'] = 'Məktubu silmək olar';
$labels['deleting'] = 'Giriş hüququnun silinməsi...';
$labels['saving'] = 'Giriş hüququnun saxlanılması...';
$labels['updatesuccess'] = 'Giriş hüququ dəyişdirildi';
$labels['deletesuccess'] = 'Giriş hüququ silindi';
$labels['createsuccess'] = 'Giriş hüququ əlavə edildi';
$labels['updateerror'] = 'Giriş hüququnu yeniləmək mümkün deyil';
$labels['deleteerror'] = 'Giriş hüququnu silmək mümkün deyil';
$labels['createerror'] = 'Giriş hüququnu əlavə etmək mümkün deyil';
$labels['deleteconfirm'] = 'Seçilmiş istifadəçilərin giriş hüququnu silməkdə əminsiniz?';
$labels['norights'] = 'Giriş hüquqları göstərilməyib!';
$labels['nouser'] = 'İstifadəçi adı təyin olunmayıb!';
$messages['deleting'] = 'Giriş hüququnun silinməsi...';
$messages['saving'] = 'Giriş hüququnun saxlanılması...';
$messages['updatesuccess'] = 'Giriş hüququ dəyişdirildi';
$messages['deletesuccess'] = 'Giriş hüququ silindi';
$messages['createsuccess'] = 'Giriş hüququ əlavə edildi';
$messages['updateerror'] = 'Giriş hüququnu yeniləmək mümkün deyil';
$messages['deleteerror'] = 'Giriş hüququnu silmək mümkün deyil';
$messages['createerror'] = 'Giriş hüququnu əlavə etmək mümkün deyil';
$messages['deleteconfirm'] = 'Seçilmiş istifadəçilərin giriş hüququnu silməkdə əminsiniz?';
$messages['norights'] = 'Giriş hüquqları göstərilməyib!';
$messages['nouser'] = 'İstifadəçi adı təyin olunmayıb!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/bs_BA/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Kenan Dervišević <kenan3008@gmail.com> |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Razmjena';
$labels['myrights'] = 'Prava pristupa';
$labels['username'] = 'Korisnik:';
@ -23,44 +25,48 @@ $labels['actions'] = 'Akcije za prava pristupa...';
$labels['anyone'] = 'Svi korisnici (bilo ko)';
$labels['anonymous'] = 'Gosti (anonimno)';
$labels['identifier'] = 'Identifikator';
$labels['acll'] = 'Pronađi';
$labels['shortacll'] = 'Pronađi';
$labels['aclr'] = 'Pročitaj poruke';
$labels['acls'] = 'Zadrži stanje pregleda';
$labels['aclw'] = 'Oznake za pisanje';
$labels['acli'] = 'Umetni (Kopiraj u)';
$labels['aclp'] = 'Objavi';
$labels['shortaclp'] = 'Objavi';
$labels['aclc'] = 'Napravi podfoldere';
$labels['aclk'] = 'Napravi podfoldere';
$labels['acld'] = 'Obriši poruke';
$labels['aclt'] = 'Obriši poruke';
$labels['acle'] = 'Izbriši';
$labels['shortacle'] = 'Izbriši';
$labels['aclx'] = 'Obriši folder';
$labels['acla'] = 'Administracija';
$labels['shortacla'] = 'Administracija';
$labels['aclfull'] = 'Puna kontrola';
$labels['aclother'] = 'Ostalo';
$labels['shortaclother'] = 'Ostalo';
$labels['aclread'] = 'Pročitano';
$labels['shortaclr'] = 'Pročitano';
$labels['shortaclread'] = 'Pročitano';
$labels['aclwrite'] = 'Piši';
$labels['shortaclw'] = 'Piši';
$labels['shortaclwrite'] = 'Piši';
$labels['acldelete'] = 'Obriši';
$labels['shortacld'] = 'Obriši';
$labels['shortaclt'] = 'Obriši';
$labels['shortacldelete'] = 'Obriši';
$labels['shortacll'] = 'Pronađi';
$labels['shortaclr'] = 'Pročitano';
$labels['shortacls'] = 'Zadrži';
$labels['shortaclw'] = 'Piši';
$labels['shortacli'] = 'Umetni';
$labels['shortaclp'] = 'Objavi';
$labels['shortaclc'] = 'Kreiraj';
$labels['shortaclk'] = 'Kreiraj';
$labels['shortacld'] = 'Obriši';
$labels['shortaclt'] = 'Obriši';
$labels['shortacle'] = 'Izbriši';
$labels['shortaclx'] = 'Brisanje foldera';
$labels['shortacla'] = 'Administracija';
$labels['shortaclother'] = 'Ostalo';
$labels['shortaclread'] = 'Pročitano';
$labels['shortaclwrite'] = 'Piši';
$labels['shortacldelete'] = 'Obriši';
$labels['longacll'] = 'Ovaj folder je vidljiv u listama i moguće je izvršiti pretplatu na njega';
$labels['longaclr'] = 'Folder je moguće otvoriti radi čitanja';
$labels['longaclread'] = 'Folder je moguće otvoriti radi čitanja';
$labels['longacls'] = 'Oznaka čitanja za poruke se može promijeniti';
$labels['longaclw'] = 'Oznake za poruke i ključne riječi je moguće promijeniti, osim za pregledano i obrisano';
$labels['longacli'] = 'Moguće je kopirati i zapisivati poruke u folder';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'Oznaka za obrisane poruke se može mijenjati';
$labels['longacle'] = 'Poruke je moguće obrisati';
$labels['longaclx'] = 'Folder je moguće obrisati ili preimenovati';
$labels['longacla'] = 'Pristupna prava foldera je moguće promijeniti';
$labels['longaclfull'] = 'Puna kontrola uključujući i administraciju foldera';
$labels['longaclread'] = 'Folder je moguće otvoriti radi čitanja';
$labels['longaclwrite'] = 'Moguće je označavati, zapisivati i kopirati poruke u folder';
$labels['longacldelete'] = 'Moguće je obrisati poruke';
$labels['deleting'] = 'Brišem prava pristupa...';
$labels['saving'] = 'Snimam prava pristupa...';
$labels['updatesuccess'] = 'Prava pristupa su uspješno promijenjena';
$labels['deletesuccess'] = 'Prava pristupa su uspješno obrisana';
$labels['createsuccess'] = 'Prava pristupa su uspješno dodana';
$labels['updateerror'] = 'Nije moguće ažurirati prava pristupa';
$labels['deleteerror'] = 'Nije moguće obrisati prava pristupa';
$labels['createerror'] = 'Nije moguće dodati prava pristupa';
$labels['deleteconfirm'] = 'Jeste li sigurni da želite ukloniti prava pristupa za odabrane korisnike?';
$labels['norights'] = 'Niste odabrali prava pristupa!';
$labels['nouser'] = 'Niste odabrali korisničko ime!';
$messages['deleting'] = 'Brišem prava pristupa...';
$messages['saving'] = 'Snimam prava pristupa...';
$messages['updatesuccess'] = 'Prava pristupa su uspješno promijenjena';
$messages['deletesuccess'] = 'Prava pristupa su uspješno obrisana';
$messages['createsuccess'] = 'Prava pristupa su uspješno dodana';
$messages['updateerror'] = 'Nije moguće ažurirati prava pristupa';
$messages['deleteerror'] = 'Nije moguće obrisati prava pristupa';
$messages['createerror'] = 'Nije moguće dodati prava pristupa';
$messages['deleteconfirm'] = 'Jeste li sigurni da želite ukloniti prava pristupa za odabrane korisnike?';
$messages['norights'] = 'Niste odabrali prava pristupa!';
$messages['nouser'] = 'Niste odabrali korisničko ime!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/ca_ES/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Jordi Sanfeliu <jordi@fibranet.cat> |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Comparteix';
$labels['myrights'] = 'Permisos d\'accés';
$labels['username'] = 'Usuari:';
@ -23,44 +25,48 @@ $labels['actions'] = 'Accions dels permisos d\'accés';
$labels['anyone'] = 'Tots els usuaris';
$labels['anonymous'] = 'Convidats';
$labels['identifier'] = 'Identificador';
$labels['acll'] = 'Cerca';
$labels['shortacll'] = 'Cerca';
$labels['aclr'] = 'Llegeix missatges';
$labels['acls'] = 'Conserva\'l com a llegit';
$labels['aclw'] = 'Escriu marques';
$labels['acli'] = 'Insereix (copia dins)';
$labels['aclp'] = 'Envia l\'entrada';
$labels['shortaclp'] = 'Envia l\'entrada';
$labels['aclc'] = 'Crea subcarpetes';
$labels['aclk'] = 'Crea subcarpetes';
$labels['acld'] = 'Suprimeix missatges';
$labels['aclt'] = 'Suprimeix missatges';
$labels['acle'] = 'Buida';
$labels['shortacle'] = 'Buida';
$labels['aclx'] = 'Suprimeix carpeta';
$labels['acla'] = 'Administra';
$labels['shortacla'] = 'Administra';
$labels['aclfull'] = 'Control total';
$labels['aclother'] = 'Un altre';
$labels['shortaclother'] = 'Un altre';
$labels['aclread'] = 'Lectura';
$labels['shortaclr'] = 'Lectura';
$labels['shortaclread'] = 'Lectura';
$labels['aclwrite'] = 'Escriptura';
$labels['shortaclw'] = 'Escriptura';
$labels['shortaclwrite'] = 'Escriptura';
$labels['acldelete'] = 'Suprimeix';
$labels['shortacld'] = 'Suprimeix';
$labels['shortaclt'] = 'Suprimeix';
$labels['shortacldelete'] = 'Suprimeix';
$labels['shortacll'] = 'Cerca';
$labels['shortaclr'] = 'Lectura';
$labels['shortacls'] = 'Conserva';
$labels['shortaclw'] = 'Escriptura';
$labels['shortacli'] = 'Insereix';
$labels['shortaclp'] = 'Envia l\'entrada';
$labels['shortaclc'] = 'Crea';
$labels['shortaclk'] = 'Crea';
$labels['shortacld'] = 'Suprimeix';
$labels['shortaclt'] = 'Suprimeix';
$labels['shortacle'] = 'Buida';
$labels['shortaclx'] = 'Suprimeix carpeta';
$labels['shortacla'] = 'Administra';
$labels['shortaclother'] = 'Un altre';
$labels['shortaclread'] = 'Lectura';
$labels['shortaclwrite'] = 'Escriptura';
$labels['shortacldelete'] = 'Suprimeix';
$labels['longacll'] = 'La carpeta és visible a les llistes i s\'hi pot subscriure';
$labels['longaclr'] = 'La carpeta pot ser oberta per llegir';
$labels['longaclread'] = 'La carpeta pot ser oberta per llegir';
$labels['longacls'] = 'Els missatges marcats com a Llegit poden ser canviats';
$labels['longaclw'] = 'Les marques i les paraules clau dels missatges poden ser canviats, excepte els Llegit i Suprimit';
$labels['longacli'] = 'Els missatges poden ser escrits i copiats a la carpeta';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'Poden ser canviats els missatges amb l\'indicador Suprimi
$labels['longacle'] = 'Els missatges poden ser purgats';
$labels['longaclx'] = 'La carpeta pot ser suprimida o reanomenada';
$labels['longacla'] = 'Els permisos d\'accés a la carpeta poden ser canviats';
$labels['longaclfull'] = 'Control total fins i tot la gestió de carpetes';
$labels['longaclread'] = 'La carpeta pot ser oberta per llegir';
$labels['longaclwrite'] = 'Els missatges poden ser marcats, escrits o copiats a la carpeta';
$labels['longacldelete'] = 'Els missatges poden ser suprimits';
$labels['deleting'] = 'Suprimint els permisos d\'accés...';
$labels['saving'] = 'Desant els permisos d\'accés...';
$labels['updatesuccess'] = 'Els permisos d\'accés han estat canviats correctament';
$labels['deletesuccess'] = 'Els permisos d\'accés han estat suprimits correctament';
$labels['createsuccess'] = 'Els permisos d\'accés han afegits suprimits correctament';
$labels['updateerror'] = 'No s\'ha pogut actualitzar els permisos d\'accés';
$labels['deleteerror'] = 'No s\'ha pogut suprimir els permisos d\'accés';
$labels['createerror'] = 'No s\'ha pogut afegir els permisos d\'accés';
$labels['deleteconfirm'] = 'Esteu segurs que voleu suprimir els permisos d\'accés de l\'usuari o usuaris seleccionats?';
$labels['norights'] = 'No s\'ha especificat cap permís';
$labels['nouser'] = 'No s\'ha especificat cap nom d\'usuari';
$messages['deleting'] = 'Suprimint els permisos d\'accés...';
$messages['saving'] = 'Desant els permisos d\'accés...';
$messages['updatesuccess'] = 'Els permisos d\'accés han estat canviats correctament';
$messages['deletesuccess'] = 'Els permisos d\'accés han estat suprimits correctament';
$messages['createsuccess'] = 'Els permisos d\'accés han afegits suprimits correctament';
$messages['updateerror'] = 'No s\'ha pogut actualitzar els permisos d\'accés';
$messages['deleteerror'] = 'No s\'ha pogut suprimir els permisos d\'accés';
$messages['createerror'] = 'No s\'ha pogut afegir els permisos d\'accés';
$messages['deleteconfirm'] = 'Esteu segurs que voleu suprimir els permisos d\'accés de l\'usuari o usuaris seleccionats?';
$messages['norights'] = 'No s\'ha especificat cap permís';
$messages['nouser'] = 'No s\'ha especificat cap nom d\'usuari';
?>

@ -2,62 +2,73 @@
/*
+-----------------------------------------------------------------------+
| localization/cs_CZ/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Zbynek Vanzura <heptau@gmail.com> |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Sdílení';
$labels['myrights'] = 'Přístupová práva';
$labels['username'] = 'Uživatel:';
$labels['advanced'] = 'pokročilý režim';
$labels['newuser'] = 'Přidat záznam';
$labels['actions'] = 'Access right actions...';
$labels['anyone'] = 'Všichni uživatelé (kdokoli)';
$labels['anonymous'] = 'Hosté (anonymní)';
$labels['identifier'] = 'Identifikátor';
$labels['acll'] = 'Vyhledat';
$labels['aclr'] = 'Číst zprávy';
$labels['acls'] = 'Ponechat stav Přečteno';
$labels['aclw'] = 'Zapsat označení';
$labels['acli'] = 'Vložit (Kopírovat do)';
$labels['aclp'] = 'Odeslat';
$labels['shortaclp'] = 'Odeslat';
$labels['aclc'] = 'Vytvořit podsložky';
$labels['aclk'] = 'Vytvořit podsložky';
$labels['acld'] = 'Smazat zprávy';
$labels['aclt'] = 'Smazat zprávy';
$labels['acle'] = 'Vyprázdnit';
$labels['shortacle'] = 'Vyprázdnit';
$labels['aclx'] = 'Smazat složku';
$labels['acla'] = 'Spravovat';
$labels['shortacla'] = 'Spravovat';
$labels['aclfull'] = 'Plný přístup';
$labels['aclother'] = 'Ostatní';
$labels['shortaclother'] = 'Ostatní';
$labels['aclread'] = 'Číst';
$labels['shortaclr'] = 'Číst';
$labels['shortaclread'] = 'Číst';
$labels['aclwrite'] = 'Zapsat';
$labels['shortaclw'] = 'Zapsat';
$labels['shortaclwrite'] = 'Zapsat';
$labels['acldelete'] = 'Smazat';
$labels['shortacld'] = 'Smazat';
$labels['shortaclt'] = 'Smazat';
$labels['shortacldelete'] = 'Smazat';
$labels['shortacll'] = 'Vyhledat';
$labels['shortaclr'] = 'Číst';
$labels['shortacls'] = 'Zachovat';
$labels['shortaclw'] = 'Zapsat';
$labels['shortacli'] = 'Vložit';
$labels['shortaclp'] = 'Odeslat';
$labels['shortaclc'] = 'Vytvořit';
$labels['shortaclk'] = 'Vytvořit';
$labels['shortacld'] = 'Smazat';
$labels['shortaclt'] = 'Smazat';
$labels['shortacle'] = 'Vyprázdnit';
$labels['shortaclx'] = 'Mazat složky';
$labels['shortacla'] = 'Spravovat';
$labels['shortaclother'] = 'Ostatní';
$labels['shortaclread'] = 'Číst';
$labels['shortaclwrite'] = 'Zapsat';
$labels['shortacldelete'] = 'Smazat';
$labels['longacll'] = 'Složka je viditelná v seznamu a může být přihlášena';
$labels['longaclr'] = 'Složka může být otevřena pro čtení';
$labels['longaclread'] = 'Složka může být otevřena pro čtení';
$labels['longacls'] = 'Označená zpráva byla změněna';
$labels['longaclw'] = 'Značky a klíčová slova u zpráv je možné měnit, kromě příznaku Přečteno a Smazáno';
$labels['longacli'] = 'Zpŕava může být napsána nebo zkopírována do složky';
$labels['longaclp'] = 'Zpráva byla odeslána do složky';
$labels['longaclc'] = 'Složka může být vytvořena (nebo přejmenována) přimo v této složce';
@ -67,18 +78,22 @@ $labels['longaclt'] = 'Značka o smazání zprávy může být změněna';
$labels['longacle'] = 'Zpráva může být smazána';
$labels['longaclx'] = 'Složka může být smazána nebo přejmenována';
$labels['longacla'] = 'Přístupová práva složky mohou být změněna';
$labels['longaclfull'] = 'Plný přístup včetně správy složky';
$labels['longaclread'] = 'Složka může být otevřena pro čtení';
$labels['longaclwrite'] = 'Zpráva může být označena, napsána nebo zkopírována do složky';
$labels['longacldelete'] = 'Zprávy mohou být smazány';
$labels['deleting'] = 'Odstraňuji přístupová práva...';
$labels['saving'] = 'Ukládám přístupová práva...';
$labels['updatesuccess'] = 'Přístupová práva byla úspěšně změněna';
$labels['deletesuccess'] = 'Přístupová páva byla úspěšně odstraněna';
$labels['createsuccess'] = 'Přístupová práva byla úspěšně přídána';
$labels['updateerror'] = 'Nelze upravit přístupová práva';
$labels['deleteerror'] = 'Nelze odstranit přístupová práva';
$labels['createerror'] = 'Nelze přidat přístupová práva';
$labels['deleteconfirm'] = 'Opravdu si přejete odstranit přístupová práva pro vybrané(ho) uživatele?';
$labels['norights'] = 'Nejsou specifikována žádná práva!';
$labels['nouser'] = 'Není specifikováno uživatelské jméno';
$messages['deleting'] = 'Odstraňuji přístupová práva...';
$messages['saving'] = 'Ukládám přístupová práva...';
$messages['updatesuccess'] = 'Přístupová práva byla úspěšně změněna';
$messages['deletesuccess'] = 'Přístupová páva byla úspěšně odstraněna';
$messages['createsuccess'] = 'Přístupová práva byla úspěšně přídána';
$messages['updateerror'] = 'Nelze upravit přístupová práva';
$messages['deleteerror'] = 'Nelze odstranit přístupová práva';
$messages['createerror'] = 'Nelze přidat přístupová práva';
$messages['deleteconfirm'] = 'Opravdu si přejete odstranit přístupová práva pro vybrané(ho) uživatele?';
$messages['norights'] = 'Nejsou specifikována žádná práva!';
$messages['nouser'] = 'Není specifikováno uživatelské jméno';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/cy_GB/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Dafydd Tomos |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Rhannu';
$labels['myrights'] = 'Hawliau Mynediad';
$labels['username'] = 'Defnyddiwr:';
@ -23,44 +25,48 @@ $labels['actions'] = 'Gweithredoedd hawl mynediad...';
$labels['anyone'] = 'Pob defnyddiwr (unrhywun)';
$labels['anonymous'] = 'Gwestai (anhysbys)';
$labels['identifier'] = 'Dynodwr';
$labels['acll'] = 'Chwilio';
$labels['shortacll'] = 'Chwilio';
$labels['aclr'] = 'Darllen negeseuon';
$labels['acls'] = 'Cadw stad Gwelwyd';
$labels['aclw'] = 'Fflagiau ysgrifennu';
$labels['acli'] = 'Mewnosod (Copïo fewn i)';
$labels['aclp'] = 'Postio';
$labels['shortaclp'] = 'Postio';
$labels['aclc'] = 'Creu is-ffolderi';
$labels['aclk'] = 'Creu is-ffolderi';
$labels['acld'] = 'Dileu negeseuon';
$labels['aclt'] = 'Dileu negeseuon';
$labels['acle'] = 'Dileu';
$labels['shortacle'] = 'Dileu';
$labels['aclx'] = 'Dileu ffolder';
$labels['acla'] = 'Gweinyddu';
$labels['shortacla'] = 'Gweinyddu';
$labels['aclfull'] = 'Rheolaeth lawn';
$labels['aclother'] = 'Arall';
$labels['shortaclother'] = 'Arall';
$labels['aclread'] = 'Darllen';
$labels['shortaclr'] = 'Darllen';
$labels['shortaclread'] = 'Darllen';
$labels['aclwrite'] = 'Ysgrifennu';
$labels['shortaclw'] = 'Ysgrifennu';
$labels['shortaclwrite'] = 'Ysgrifennu';
$labels['acldelete'] = 'Dileu';
$labels['shortacld'] = 'Dileu';
$labels['shortaclt'] = 'Dileu';
$labels['shortacldelete'] = 'Dileu';
$labels['shortacll'] = 'Chwilio';
$labels['shortaclr'] = 'Darllen';
$labels['shortacls'] = 'Cadw';
$labels['shortaclw'] = 'Ysgrifennu';
$labels['shortacli'] = 'Mewnosod';
$labels['shortaclp'] = 'Postio';
$labels['shortaclc'] = 'Creu';
$labels['shortaclk'] = 'Creu';
$labels['shortacld'] = 'Dileu';
$labels['shortaclt'] = 'Dileu';
$labels['shortacle'] = 'Dileu';
$labels['shortaclx'] = 'Dileu ffolder';
$labels['shortacla'] = 'Gweinyddu';
$labels['shortaclother'] = 'Arall';
$labels['shortaclread'] = 'Darllen';
$labels['shortaclwrite'] = 'Ysgrifennu';
$labels['shortacldelete'] = 'Dileu';
$labels['longacll'] = 'Mae\'r ffolder hwn i\'w weld ar y rhestrau a mae\'n bosib tanysgrifio iddo';
$labels['longaclr'] = 'Gellir agor y ffolder hwn i\'w ddarllen';
$labels['longaclread'] = 'Gellir agor y ffolder hwn i\'w ddarllen';
$labels['longacls'] = 'Gellir newid y fflag negeseuon Gwelwyd';
$labels['longaclw'] = 'Gellir newid y fflagiau negeseuon a allweddeiriau, heblaw Gwelwyd a Dilëuwyd';
$labels['longacli'] = 'Gellir ysgrifennu neu copïo negeseuon i\'r ffolder';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'Gellir newid fflag neges Dileu';
$labels['longacle'] = 'Gellir gwaredu negeseuon';
$labels['longaclx'] = 'Gellir dileu neu ail-enwi\'r ffolder';
$labels['longacla'] = 'Gellir newid hawliau mynediad y ffolder';
$labels['longaclfull'] = 'Rheolaeth lawn yn cynnwys rheolaeth ffolderi';
$labels['longaclread'] = 'Gellir agor y ffolder hwn i\'w ddarllen';
$labels['longaclwrite'] = 'Gellir nodi, ysgrifennu neu copïo negeseuon i\'r ffolder';
$labels['longacldelete'] = 'Gellir dileu negeseuon';
$labels['deleting'] = 'Yn dileu hawliau mynediad...';
$labels['saving'] = 'Yn cadw hawliau mynediad...';
$labels['updatesuccess'] = 'Wedi newid hawliau mynediad yn llwyddiannus';
$labels['deletesuccess'] = 'Wedi dileu hawliau mynediad yn llwyddiannus';
$labels['createsuccess'] = 'Wedi ychwanegu hawliau mynediad yn llwyddiannus';
$labels['updateerror'] = 'Methwyd diweddaru hawliau mynediad';
$labels['deleteerror'] = 'Methwyd dileu hawliau mynediad';
$labels['createerror'] = 'Methwyd ychwanegu hawliau mynediad';
$labels['deleteconfirm'] = 'Ydych chi\'n siwr eich bod am ddileu hawliau mynediad y defnyddiwr/wyr ddewiswyd?';
$labels['norights'] = 'Nid oes hawliau wedi eu nodi!';
$labels['nouser'] = 'Nid oes enw defnyddiwr wedi ei nodi!';
$messages['deleting'] = 'Yn dileu hawliau mynediad...';
$messages['saving'] = 'Yn cadw hawliau mynediad...';
$messages['updatesuccess'] = 'Wedi newid hawliau mynediad yn llwyddiannus';
$messages['deletesuccess'] = 'Wedi dileu hawliau mynediad yn llwyddiannus';
$messages['createsuccess'] = 'Wedi ychwanegu hawliau mynediad yn llwyddiannus';
$messages['updateerror'] = 'Methwyd diweddaru hawliau mynediad';
$messages['deleteerror'] = 'Methwyd dileu hawliau mynediad';
$messages['createerror'] = 'Methwyd ychwanegu hawliau mynediad';
$messages['deleteconfirm'] = 'Ydych chi\'n siwr eich bod am ddileu hawliau mynediad y defnyddiwr/wyr ddewiswyd?';
$messages['norights'] = 'Nid oes hawliau wedi eu nodi!';
$messages['nouser'] = 'Nid oes enw defnyddiwr wedi ei nodi!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/da_DK/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Johannes Hessellund <osos@openeyes.dk> |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Deling';
$labels['myrights'] = 'Adgangrettigheder';
$labels['username'] = 'Bruger:';
@ -23,44 +25,48 @@ $labels['actions'] = 'Tilgangsrettigheder...';
$labels['anyone'] = 'Alle brugere';
$labels['anonymous'] = 'Gæst (anonym)';
$labels['identifier'] = 'Identifikator';
$labels['acll'] = 'Slå op';
$labels['shortacll'] = 'Slå op';
$labels['aclr'] = 'Læs beskeder';
$labels['acls'] = 'Behold læst-status';
$labels['aclw'] = 'Skriv flag';
$labels['acli'] = 'Indsæt (kopier ind i)';
$labels['aclp'] = 'Send';
$labels['shortaclp'] = 'Send';
$labels['aclc'] = 'Opret undermapper';
$labels['aclk'] = 'Opret undermapper';
$labels['acld'] = 'Slet beskeder';
$labels['aclt'] = 'Slet beskeder';
$labels['acle'] = 'Udslet';
$labels['shortacle'] = 'Udslet';
$labels['aclx'] = 'Slet mappe';
$labels['acla'] = 'Administrer';
$labels['shortacla'] = 'Administrer';
$labels['aclfull'] = 'Fuld kontrol';
$labels['aclother'] = 'Andet';
$labels['shortaclother'] = 'Andet';
$labels['aclread'] = 'Læse';
$labels['shortaclr'] = 'Læse';
$labels['shortaclread'] = 'Læse';
$labels['aclwrite'] = 'Skrive';
$labels['shortaclw'] = 'Skrive';
$labels['shortaclwrite'] = 'Skrive';
$labels['acldelete'] = 'Slet';
$labels['shortacld'] = 'Slet';
$labels['shortaclt'] = 'Slet';
$labels['shortacldelete'] = 'Slet';
$labels['shortacll'] = 'Slå op';
$labels['shortaclr'] = 'Læse';
$labels['shortacls'] = 'Behold';
$labels['shortaclw'] = 'Skrive';
$labels['shortacli'] = 'Indsæt';
$labels['shortaclp'] = 'Send';
$labels['shortaclc'] = 'Opret';
$labels['shortaclk'] = 'Opret';
$labels['shortacld'] = 'Slet';
$labels['shortaclt'] = 'Slet';
$labels['shortacle'] = 'Udslet';
$labels['shortaclx'] = 'Slet mappe';
$labels['shortacla'] = 'Administrer';
$labels['shortaclother'] = 'Andet';
$labels['shortaclread'] = 'Læse';
$labels['shortaclwrite'] = 'Skrive';
$labels['shortacldelete'] = 'Slet';
$labels['longacll'] = 'Mappen er synlig på listen og kan abonneres på';
$labels['longaclr'] = 'Mappen kan åbnes for læsning';
$labels['longaclread'] = 'Mappen kan åbnes for læsning';
$labels['longacls'] = 'Beskeders Læst-flag kan ændres';
$labels['longaclw'] = 'Beskeders flag og nøgleord kan ændres med undtagelse af Læst og Slettet';
$labels['longacli'] = 'Beskeder kan blive skrevet eller kopieret til mappen';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'Beskeders Slet-flag kan ændres';
$labels['longacle'] = 'Beskeder kan slettes';
$labels['longaclx'] = 'Mappen kan blive slettet eller omdøbt';
$labels['longacla'] = 'Mappen adgangsrettigheder kan ændres';
$labels['longaclfull'] = 'Fuld kontrol inklusiv mappeadministration';
$labels['longaclread'] = 'Mappen kan åbnes for læsning';
$labels['longaclwrite'] = 'Beskeder kan blive markeret, skrevet eller kopieret til mappen';
$labels['longacldelete'] = 'Beskeder kan slettes';
$labels['deleting'] = 'Slette rettigheder...';
$labels['saving'] = 'Gemme rettigheder...';
$labels['updatesuccess'] = 'Tilgangsrettighederne blev ændret';
$labels['deletesuccess'] = 'Sletterettigheder blev ændret';
$labels['createsuccess'] = 'Tilgangsrettigheder blev tilføjet';
$labels['updateerror'] = 'Kunne ikke opdatere tilgangsrettigheder';
$labels['deleteerror'] = 'Kunne ikke slette tilgangsrettigheder';
$labels['createerror'] = 'Kunne ikke tilføje tilgangsrettigheder';
$labels['deleteconfirm'] = 'Er du sikker på, at du vil slette tilgangsrettigheder fra de(n) valgte bruger(e)?';
$labels['norights'] = 'Der er ikke specificeret nogle rettigheder!';
$labels['nouser'] = 'Der er ikke angiver et brugernavn!';
$messages['deleting'] = 'Slette rettigheder...';
$messages['saving'] = 'Gemme rettigheder...';
$messages['updatesuccess'] = 'Tilgangsrettighederne blev ændret';
$messages['deletesuccess'] = 'Sletterettigheder blev ændret';
$messages['createsuccess'] = 'Tilgangsrettigheder blev tilføjet';
$messages['updateerror'] = 'Kunne ikke opdatere tilgangsrettigheder';
$messages['deleteerror'] = 'Kunne ikke slette tilgangsrettigheder';
$messages['createerror'] = 'Kunne ikke tilføje tilgangsrettigheder';
$messages['deleteconfirm'] = 'Er du sikker på, at du vil slette tilgangsrettigheder fra de(n) valgte bruger(e)?';
$messages['norights'] = 'Der er ikke specificeret nogle rettigheder!';
$messages['nouser'] = 'Der er ikke angiver et brugernavn!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/de_CH/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Thomas |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Freigabe';
$labels['myrights'] = 'Zugriffsrechte';
$labels['username'] = 'Benutzer:';
@ -23,44 +25,48 @@ $labels['actions'] = 'Zugriffsrechte Aktionen...';
$labels['anyone'] = 'Alle Benutzer (anyone)';
$labels['anonymous'] = 'Gäste (anonymous)';
$labels['identifier'] = 'Bezeichnung';
$labels['acll'] = 'Sichtbar';
$labels['shortacll'] = 'Sichtbar';
$labels['aclr'] = 'Nachrichten lesen';
$labels['acls'] = 'Lesestatus ändern';
$labels['aclw'] = 'Flags schreiben';
$labels['acli'] = 'Nachrichten hinzufügen';
$labels['aclp'] = 'Senden an';
$labels['shortaclp'] = 'Senden an';
$labels['aclc'] = 'Unterordner erstellen';
$labels['aclk'] = 'Unterordner erstellen';
$labels['acld'] = 'Nachrichten als gelöscht markieren';
$labels['aclt'] = 'Nachrichten als gelöscht markieren';
$labels['acle'] = 'Endgültig löschen';
$labels['shortacle'] = 'Endgültig löschen';
$labels['aclx'] = 'Ordner löschen';
$labels['acla'] = 'Verwalten';
$labels['shortacla'] = 'Verwalten';
$labels['aclfull'] = 'Vollzugriff';
$labels['aclother'] = 'Andere';
$labels['shortaclother'] = 'Andere';
$labels['aclread'] = 'Lesen';
$labels['shortaclr'] = 'Lesen';
$labels['shortaclread'] = 'Lesen';
$labels['aclwrite'] = 'Schreiben';
$labels['shortaclw'] = 'Schreiben';
$labels['shortaclwrite'] = 'Schreiben';
$labels['acldelete'] = 'Löschen';
$labels['shortacld'] = 'Löschen';
$labels['shortaclt'] = 'Löschen';
$labels['shortacldelete'] = 'Löschen';
$labels['shortacll'] = 'Sichtbar';
$labels['shortaclr'] = 'Lesen';
$labels['shortacls'] = 'Behalte';
$labels['shortaclw'] = 'Schreiben';
$labels['shortacli'] = 'Hinzufügen';
$labels['shortaclp'] = 'Senden an';
$labels['shortaclc'] = 'Erstellen';
$labels['shortaclk'] = 'Erstellen';
$labels['shortacld'] = 'Löschen';
$labels['shortaclt'] = 'Löschen';
$labels['shortacle'] = 'Endgültig löschen';
$labels['shortaclx'] = 'Ordner löschen';
$labels['shortacla'] = 'Verwalten';
$labels['shortaclother'] = 'Andere';
$labels['shortaclread'] = 'Lesen';
$labels['shortaclwrite'] = 'Schreiben';
$labels['shortacldelete'] = 'Löschen';
$labels['longacll'] = 'Der Ordner ist sichtbar und kann abonniert werden';
$labels['longaclr'] = 'Der Ordnerinhalt kann gelesen werden';
$labels['longaclread'] = 'Der Ordnerinhalt kann gelesen werden';
$labels['longacls'] = 'Der Lesestatus von Nachrichten kann geändert werden';
$labels['longaclw'] = 'Alle Nachrichten-Flags und Schlüsselwörter ausser "Gelesen" und "Gelöscht" können geändert werden';
$labels['longacli'] = 'Nachrichten können in diesen Ordner kopiert oder verschoben werden';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'Der "gelöscht" Status von Nachrichten kann geändert wer
$labels['longacle'] = 'Als "gelöscht" markierte Nachrichten können entfernt werden';
$labels['longaclx'] = 'Der Ordner kann gelöscht oder umbenannt werden';
$labels['longacla'] = 'Die Zugriffsrechte des Ordners können geändert werden';
$labels['longaclfull'] = 'Vollzugriff inklusive Ordner-Verwaltung';
$labels['longaclread'] = 'Der Ordnerinhalt kann gelesen werden';
$labels['longaclwrite'] = 'Nachrichten können markiert, an den Ordner gesendet und in den Ordner kopiert oder verschoben werden';
$labels['longacldelete'] = 'Nachrichten können gelöscht werden';
$labels['deleting'] = 'Zugriffsrechte werden entzogen...';
$labels['saving'] = 'Zugriffsrechte werden gespeichert...';
$labels['updatesuccess'] = 'Zugriffsrechte erfolgreich geändert';
$labels['deletesuccess'] = 'Zugriffsrechte erfolgreich entzogen';
$labels['createsuccess'] = 'Zugriffsrechte erfolgreich hinzugefügt';
$labels['updateerror'] = 'Zugriffsrechte konnten nicht geändert werden';
$labels['deleteerror'] = 'Zugriffsrechte konnten nicht entzogen werden';
$labels['createerror'] = 'Zugriffsrechte konnten nicht gewährt werden';
$labels['deleteconfirm'] = 'Sind Sie sicher, dass Sie die Zugriffsrechte den ausgewählten Benutzern entziehen möchten?';
$labels['norights'] = 'Es wurden keine Zugriffsrechte ausgewählt!';
$labels['nouser'] = 'Es wurde kein Benutzer ausgewählt!';
$messages['deleting'] = 'Zugriffsrechte werden entzogen...';
$messages['saving'] = 'Zugriffsrechte werden gespeichert...';
$messages['updatesuccess'] = 'Zugriffsrechte erfolgreich geändert';
$messages['deletesuccess'] = 'Zugriffsrechte erfolgreich entzogen';
$messages['createsuccess'] = 'Zugriffsrechte erfolgreich hinzugefügt';
$messages['updateerror'] = 'Zugriffsrechte konnten nicht geändert werden';
$messages['deleteerror'] = 'Zugriffsrechte konnten nicht entzogen werden';
$messages['createerror'] = 'Zugriffsrechte konnten nicht gewährt werden';
$messages['deleteconfirm'] = 'Sind Sie sicher, dass Sie die Zugriffsrechte den ausgewählten Benutzern entziehen möchten?';
$messages['norights'] = 'Es wurden keine Zugriffsrechte ausgewählt!';
$messages['nouser'] = 'Es wurde kein Benutzer ausgewählt!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/de_DE/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Thomas |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Freigabe';
$labels['myrights'] = 'Zugriffsrechte';
$labels['username'] = 'Benutzer:';
@ -23,44 +25,48 @@ $labels['actions'] = 'Zugriffsrechte Aktionen...';
$labels['anyone'] = 'Alle Benutzer (anyone)';
$labels['anonymous'] = 'Gäste (anonymous)';
$labels['identifier'] = 'Bezeichnung';
$labels['acll'] = 'Sichtbar';
$labels['shortacll'] = 'Sichtbar';
$labels['aclr'] = 'Nachrichten lesen';
$labels['acls'] = 'Lesestatus ändern';
$labels['aclw'] = 'Flags schreiben';
$labels['acli'] = 'Nachrichten Hinzufügen';
$labels['acli'] = 'Nachrichten hinzufügen';
$labels['aclp'] = 'Senden an';
$labels['shortaclp'] = 'Senden an';
$labels['aclc'] = 'Unterordner erstellen';
$labels['aclk'] = 'Unterordner erstellen';
$labels['acld'] = 'Nachrichten als gelöscht markieren';
$labels['aclt'] = 'Nachrichten als gelöscht markieren';
$labels['acle'] = 'endgültig löschen';
$labels['shortacle'] = 'endgültig löschen';
$labels['acle'] = 'Endgültig löschen';
$labels['aclx'] = 'Ordner löschen';
$labels['acla'] = 'Verwalten';
$labels['shortacla'] = 'Verwalten';
$labels['aclfull'] = 'Vollzugriff';
$labels['aclother'] = 'Andere';
$labels['shortaclother'] = 'Andere';
$labels['aclread'] = 'Lesen';
$labels['shortaclr'] = 'Lesen';
$labels['shortaclread'] = 'Lesen';
$labels['aclwrite'] = 'Schreiben';
$labels['shortaclw'] = 'Schreiben';
$labels['shortaclwrite'] = 'Schreiben';
$labels['acldelete'] = 'Löschen';
$labels['shortacld'] = 'Löschen';
$labels['shortaclt'] = 'Löschen';
$labels['shortacldelete'] = 'Löschen';
$labels['shortacll'] = 'Sichtbar';
$labels['shortaclr'] = 'Lesen';
$labels['shortacls'] = 'Lesestatus';
$labels['shortaclw'] = 'Schreiben';
$labels['shortacli'] = 'Hinzufügen';
$labels['shortaclp'] = 'Senden an';
$labels['shortaclc'] = 'Erstellen';
$labels['shortaclk'] = 'Erstellen';
$labels['shortacld'] = 'Löschen';
$labels['shortaclt'] = 'Löschen';
$labels['shortacle'] = 'Endgültig löschen';
$labels['shortaclx'] = 'Ordner löschen';
$labels['shortacla'] = 'Verwalten';
$labels['shortaclother'] = 'Andere';
$labels['shortaclread'] = 'Lesen';
$labels['shortaclwrite'] = 'Schreiben';
$labels['shortacldelete'] = 'Löschen';
$labels['longacll'] = 'Der Ordner ist sichtbar und kann abonniert werden';
$labels['longaclr'] = 'Der Ordnerinhalt kann gelesen werden';
$labels['longaclread'] = 'Der Ordnerinhalt kann gelesen werden';
$labels['longacls'] = 'Der Lesestatus von Nachrichten kann geändert werden';
$labels['longaclw'] = 'Alle Nachrichten-Flags und Schlüsselwörter außer "Gelesen" und "Gelöscht" können geändert werden';
$labels['longacli'] = 'Nachrichten können in diesen Ordner kopiert oder verschoben werden';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'Der "gelöscht" Status von Nachrichten kann geändert wer
$labels['longacle'] = 'Als "gelöscht" markiert Nachrichten können gelöscht werden.';
$labels['longaclx'] = 'Der Ordner kann gelöscht oder umbenannt werden';
$labels['longacla'] = 'Die Zugriffsrechte des Ordners können geändert werden';
$labels['longaclfull'] = 'Vollzugriff inklusive Ordner-Verwaltung';
$labels['longaclread'] = 'Der Ordnerinhalt kann gelesen werden';
$labels['longaclwrite'] = 'Nachrichten können markiert, an den Ordner gesendet und in den Ordner kopiert oder verschoben werden';
$labels['longacldelete'] = 'Nachrichten können gelöscht werden';
$labels['deleting'] = 'Zugriffsrechte werden entzogen...';
$labels['saving'] = 'Zugriffsrechte werden gewährt...';
$labels['updatesuccess'] = 'Zugriffsrechte erfolgreich geändert';
$labels['deletesuccess'] = 'Zugriffsrechte erfolgreich entzogen';
$labels['createsuccess'] = 'Zugriffsrechte erfolgreich gewährt';
$labels['updateerror'] = 'Zugriffsrechte konnten nicht geändert werden';
$labels['deleteerror'] = 'Zugriffsrechte konnten nicht entzogen werden';
$labels['createerror'] = 'Zugriffsrechte konnten nicht gewährt werden';
$labels['deleteconfirm'] = 'Sind Sie sicher, daß Sie die Zugriffsrechte den ausgewählten Benutzern entziehen möchten?';
$labels['norights'] = 'Es wurden keine Zugriffsrechte ausgewählt!';
$labels['nouser'] = 'Es wurde kein Benutzer ausgewählt!';
$messages['deleting'] = 'Zugriffsrechte werden entzogen...';
$messages['saving'] = 'Zugriffsrechte werden gewährt...';
$messages['updatesuccess'] = 'Zugriffsrechte erfolgreich geändert';
$messages['deletesuccess'] = 'Zugriffsrechte erfolgreich entzogen';
$messages['createsuccess'] = 'Zugriffsrechte erfolgreich gewährt';
$messages['updateerror'] = 'Zugriffsrechte konnten nicht geändert werden';
$messages['deleteerror'] = 'Zugriffsrechte konnten nicht entzogen werden';
$messages['createerror'] = 'Zugriffsrechte konnten nicht gewährt werden';
$messages['deleteconfirm'] = 'Sind Sie sicher, daß Sie die Zugriffsrechte den ausgewählten Benutzern entziehen möchten?';
$messages['norights'] = 'Es wurden keine Zugriffsrechte ausgewählt!';
$messages['nouser'] = 'Es wurde kein Benutzer ausgewählt!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/en_GB/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Lazlo |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Sharing';
$labels['myrights'] = 'Access Rights';
$labels['username'] = 'User:';
@ -23,44 +25,48 @@ $labels['actions'] = 'Access right actions...';
$labels['anyone'] = 'All users (anyone)';
$labels['anonymous'] = 'Guests (anonymous)';
$labels['identifier'] = 'Identifier';
$labels['acll'] = 'Look-up';
$labels['shortacll'] = 'Look-up';
$labels['aclr'] = 'Read messages';
$labels['acls'] = 'Keep Seen state';
$labels['aclw'] = 'Write flags';
$labels['acli'] = 'Insert (copy into)';
$labels['aclp'] = 'Post';
$labels['shortaclp'] = 'Post';
$labels['aclc'] = 'Create sub-folders';
$labels['aclk'] = 'Create sub-folders';
$labels['acld'] = 'Delete messages';
$labels['aclt'] = 'Delete messages';
$labels['acle'] = 'Expunge';
$labels['shortacle'] = 'Expunge';
$labels['aclx'] = 'Delete folder';
$labels['acla'] = 'Administer';
$labels['shortacla'] = 'Administer';
$labels['aclfull'] = 'Full control';
$labels['aclother'] = 'Other';
$labels['shortaclother'] = 'Other';
$labels['aclread'] = 'Read';
$labels['shortaclr'] = 'Read';
$labels['shortaclread'] = 'Read';
$labels['aclwrite'] = 'Write';
$labels['shortaclw'] = 'Write';
$labels['shortaclwrite'] = 'Write';
$labels['acldelete'] = 'Delete';
$labels['shortacld'] = 'Delete';
$labels['shortaclt'] = 'Delete';
$labels['shortacldelete'] = 'Delete';
$labels['shortacll'] = 'Look-up';
$labels['shortaclr'] = 'Read';
$labels['shortacls'] = 'Keep';
$labels['shortaclw'] = 'Write';
$labels['shortacli'] = 'Insert';
$labels['shortaclp'] = 'Post';
$labels['shortaclc'] = 'Create';
$labels['shortaclk'] = 'Create';
$labels['shortacld'] = 'Delete';
$labels['shortaclt'] = 'Delete';
$labels['shortacle'] = 'Expunge';
$labels['shortaclx'] = 'Folder delete';
$labels['shortacla'] = 'Administer';
$labels['shortaclother'] = 'Other';
$labels['shortaclread'] = 'Read';
$labels['shortaclwrite'] = 'Write';
$labels['shortacldelete'] = 'Delete';
$labels['longacll'] = 'The folder is visible on lists and can be subscribed to.';
$labels['longaclr'] = 'The folder can be opened for reading';
$labels['longaclread'] = 'The folder can be opened for reading';
$labels['longacls'] = 'Messages Seen flag can be changed';
$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted.';
$labels['longacli'] = 'Messages can be written or copied to the folder';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'Messages Delete flag can be changed';
$labels['longacle'] = 'Messages can be expunged';
$labels['longaclx'] = 'The folder can be deleted or renamed';
$labels['longacla'] = 'The folder access rights can be changed';
$labels['longaclfull'] = 'Full control including folder administration';
$labels['longaclread'] = 'The folder can be opened for reading';
$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder';
$labels['longacldelete'] = 'Messages can be deleted';
$labels['deleting'] = 'Deleting access rights...';
$labels['saving'] = 'Saving access rights...';
$labels['updatesuccess'] = 'Successfully changed access rights';
$labels['deletesuccess'] = 'Successfully deleted access rights';
$labels['createsuccess'] = 'Successfully added access rights';
$labels['updateerror'] = 'Ubable to update access rights';
$labels['deleteerror'] = 'Unable to delete access rights';
$labels['createerror'] = 'Unable to add access rights';
$labels['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?';
$labels['norights'] = 'No rights has been specified!';
$labels['nouser'] = 'No username has been specified!';
$messages['deleting'] = 'Deleting access rights...';
$messages['saving'] = 'Saving access rights...';
$messages['updatesuccess'] = 'Successfully changed access rights';
$messages['deletesuccess'] = 'Successfully deleted access rights';
$messages['createsuccess'] = 'Successfully added access rights';
$messages['updateerror'] = 'Ubable to update access rights';
$messages['deleteerror'] = 'Unable to delete access rights';
$messages['createerror'] = 'Unable to add access rights';
$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?';
$messages['norights'] = 'No rights has been specified!';
$messages['nouser'] = 'No username has been specified!';
?>

@ -1,5 +1,21 @@
<?php
/*
+-----------------------------------------------------------------------+
| plugins/acl/localization/<lang>.inc |
| |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels['sharing'] = 'Sharing';
$labels['myrights'] = 'Access Rights';
$labels['username'] = 'User:';

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/eo/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Michael Moroni <michael.moroni@mailoo.org> |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Kunhavigado';
$labels['myrights'] = 'Atingrajtoj';
$labels['username'] = 'Uzanto:';
@ -23,41 +25,75 @@ $labels['actions'] = 'Agoj de atingrajtoj...';
$labels['anyone'] = 'Ĉiuj uzantoj (iu ajn)';
$labels['anonymous'] = 'Gasto (sennome)';
$labels['identifier'] = 'Identigilo';
$labels['acll'] = 'Elserĉo';
$labels['shortacll'] = 'Elserĉo';
$labels['aclr'] = 'Legi mesaĝojn';
$labels['acls'] = 'Manteni legitan staton';
$labels['aclw'] = 'Write flags';
$labels['acli'] = 'Enmeti (alglui)';
$labels['aclp'] = 'Afiŝi';
$labels['shortaclp'] = 'Afiŝi';
$labels['aclc'] = 'Krei subdosierujojn';
$labels['aclk'] = 'Krei subdosierujojn';
$labels['acld'] = 'Forigi mesaĝojn';
$labels['aclt'] = 'Forigi mesaĝojn';
$labels['acle'] = 'Expunge';
$labels['aclx'] = 'Forigi dosierujon';
$labels['acla'] = 'Administri';
$labels['shortacla'] = 'Administri';
$labels['aclfull'] = 'Plena kontrolo';
$labels['aclother'] = 'Alia';
$labels['shortaclother'] = 'Alia';
$labels['aclread'] = 'Legi';
$labels['shortaclr'] = 'Legi';
$labels['shortaclread'] = 'Legi';
$labels['aclwrite'] = 'Skribi';
$labels['shortaclw'] = 'Skribi';
$labels['shortaclwrite'] = 'Skribi';
$labels['acldelete'] = 'Forigi';
$labels['shortacld'] = 'Forigi';
$labels['shortaclt'] = 'Forigi';
$labels['shortacldelete'] = 'Forigi';
$labels['shortacll'] = 'Elserĉo';
$labels['shortaclr'] = 'Legi';
$labels['shortacls'] = 'Manteni';
$labels['shortaclw'] = 'Skribi';
$labels['shortacli'] = 'Enmeti';
$labels['shortaclp'] = 'Afiŝi';
$labels['shortaclc'] = 'Krei';
$labels['shortaclk'] = 'Krei';
$labels['shortacld'] = 'Forigi';
$labels['shortaclt'] = 'Forigi';
$labels['shortacle'] = 'Expunge';
$labels['shortaclx'] = 'Forigo de dosierujo';
$labels['shortacla'] = 'Administri';
$labels['shortaclother'] = 'Alia';
$labels['shortaclread'] = 'Legi';
$labels['shortaclwrite'] = 'Skribi';
$labels['shortacldelete'] = 'Forigi';
$labels['longacll'] = 'La dosierujo videblas en listoj kaj oni povas aboni al ĝi';
$labels['longaclr'] = 'La dosierujo malfermeblas por legado';
$labels['longaclread'] = 'La dosierujo malfermeblas por legado';
$labels['longacls'] = 'Messages Seen flag can be changed';
$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted';
$labels['longacli'] = 'Mesaĝoj skribeblas aŭ kopieblas en la dosierujo';
$labels['longaclp'] = 'Mesaĝoj afiŝeblas en ĉi tiu dosierujo';
$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder';
$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder';
$labels['longacld'] = 'Messages Delete flag can be changed';
$labels['longaclt'] = 'Messages Delete flag can be changed';
$labels['longacle'] = 'Messages can be expunged';
$labels['longaclx'] = 'The folder can be deleted or renamed';
$labels['longacla'] = 'The folder access rights can be changed';
$labels['longaclfull'] = 'Full control including folder administration';
$labels['longaclread'] = 'La dosierujo malfermeblas por legado';
$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder';
$labels['longacldelete'] = 'Messages can be deleted';
$messages['deleting'] = 'Deleting access rights...';
$messages['saving'] = 'Saving access rights...';
$messages['updatesuccess'] = 'Successfully changed access rights';
$messages['deletesuccess'] = 'Successfully deleted access rights';
$messages['createsuccess'] = 'Successfully added access rights';
$messages['updateerror'] = 'Ubable to update access rights';
$messages['deleteerror'] = 'Unable to delete access rights';
$messages['createerror'] = 'Unable to add access rights';
$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?';
$messages['norights'] = 'No rights has been specified!';
$messages['nouser'] = 'No username has been specified!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/es_ES/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: pompilos <ciordia@gmail.com> |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Compartir';
$labels['myrights'] = 'Permisos de acceso';
$labels['username'] = 'Usuario:';
@ -23,44 +25,48 @@ $labels['actions'] = 'Acciones sobre los permisos de acceso…';
$labels['anyone'] = 'Todos los usuarios (cualquiera)';
$labels['anonymous'] = 'Invitados (anónimo)';
$labels['identifier'] = 'Identificador';
$labels['acll'] = 'Búsqueda';
$labels['shortacll'] = 'Búsqueda';
$labels['aclr'] = 'Leer mensajes';
$labels['acls'] = 'Mantener como "Leído';
$labels['aclw'] = 'Escribir etiquetas';
$labels['acli'] = 'Insertar (Copiar dentro)';
$labels['aclp'] = 'Enviar';
$labels['shortaclp'] = 'Enviar';
$labels['aclc'] = 'Crear subcarpetas';
$labels['aclk'] = 'Crear subcarpetas';
$labels['acld'] = 'Borrar mensajes';
$labels['aclt'] = 'Borrar mensajes';
$labels['acle'] = 'Expurgar';
$labels['shortacle'] = 'Expurgar';
$labels['aclx'] = 'Borrar carpeta';
$labels['acla'] = 'Administrar';
$labels['shortacla'] = 'Administrar';
$labels['aclfull'] = 'Control total';
$labels['aclother'] = 'Otro';
$labels['shortaclother'] = 'Otro';
$labels['aclread'] = 'Leer';
$labels['shortaclr'] = 'Leer';
$labels['shortaclread'] = 'Leer';
$labels['aclwrite'] = 'Escribir';
$labels['shortaclw'] = 'Escribir';
$labels['shortaclwrite'] = 'Escribir';
$labels['acldelete'] = 'Borrar';
$labels['shortacld'] = 'Borrar';
$labels['shortaclt'] = 'Borrar';
$labels['shortacldelete'] = 'Borrar';
$labels['shortacll'] = 'Búsqueda';
$labels['shortaclr'] = 'Leer';
$labels['shortacls'] = 'Conservar';
$labels['shortaclw'] = 'Escribir';
$labels['shortacli'] = 'Insertar';
$labels['shortaclp'] = 'Enviar';
$labels['shortaclc'] = 'Crear';
$labels['shortaclk'] = 'Crear';
$labels['shortacld'] = 'Borrar';
$labels['shortaclt'] = 'Borrar';
$labels['shortacle'] = 'Expurgar';
$labels['shortaclx'] = 'Borrar carpeta';
$labels['shortacla'] = 'Administrar';
$labels['shortaclother'] = 'Otro';
$labels['shortaclread'] = 'Leer';
$labels['shortaclwrite'] = 'Escribir';
$labels['shortacldelete'] = 'Borrar';
$labels['longacll'] = 'La carpeta es visible en las listas y es posible suscribirse a ella';
$labels['longaclr'] = 'Se puede abrir la carpeta para leer';
$labels['longaclread'] = 'Se puede abrir la carpeta para leer';
$labels['longacls'] = 'Se pueden cambiar los mensajes con la etiqueta "Leído';
$labels['longaclw'] = 'Las etiquetas de mensaje y las palabras clave se pueden cambiar, excepto "Leído" y "Borrado';
$labels['longacli'] = 'Se pueden escribir mensajes o copiarlos a la carpeta';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'No se pueden cambiar los mensajes etiquetados como "Borra
$labels['longacle'] = 'No se pueden expurgar los mensajes';
$labels['longaclx'] = 'La carpeta se puede borrar o renombrar';
$labels['longacla'] = 'Se pueden cambiar los permisos de acceso';
$labels['longaclfull'] = 'Control total, incluyendo la gestión de carpetas';
$labels['longaclread'] = 'Se puede abrir la carpeta para leer';
$labels['longaclwrite'] = 'Se pueden etiquetar, escribir o copiar mensajes a la carpeta';
$labels['longacldelete'] = 'Los mensajes se pueden borrar';
$labels['deleting'] = 'Borrando permisos de acceso…';
$labels['saving'] = 'Guardando permisos de acceso…';
$labels['updatesuccess'] = 'Se han cambiado los permisos de acceso';
$labels['deletesuccess'] = 'Se han borrado los permisos de acceso';
$labels['createsuccess'] = 'Se han añadido los permisos de acceso';
$labels['updateerror'] = 'No se han podido actualizar los permisos de acceso';
$labels['deleteerror'] = 'No se han podido borrar los permisos de acceso';
$labels['createerror'] = 'No se han podido añadir los permisos de acceso';
$labels['deleteconfirm'] = '¿Seguro que quiere borrar los permisos de acceso del usuairo seleccionado?';
$labels['norights'] = 'No se han especificado los permisos de acceso';
$labels['nouser'] = 'No se ha especificado un nombre de usuario';
$messages['deleting'] = 'Borrando permisos de acceso…';
$messages['saving'] = 'Guardando permisos de acceso…';
$messages['updatesuccess'] = 'Se han cambiado los permisos de acceso';
$messages['deletesuccess'] = 'Se han borrado los permisos de acceso';
$messages['createsuccess'] = 'Se han añadido los permisos de acceso';
$messages['updateerror'] = 'No se han podido actualizar los permisos de acceso';
$messages['deleteerror'] = 'No se han podido borrar los permisos de acceso';
$messages['createerror'] = 'No se han podido añadir los permisos de acceso';
$messages['deleteconfirm'] = '¿Seguro que quiere borrar los permisos de acceso del usuairo seleccionado?';
$messages['norights'] = 'No se han especificado los permisos de acceso';
$messages['nouser'] = 'No se ha especificado un nombre de usuario';
?>

@ -2,57 +2,98 @@
/*
+-----------------------------------------------------------------------+
| localization/et_EE/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: yllar |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Jagamine';
$labels['myrights'] = 'Ligipääsuõigused';
$labels['username'] = 'Kasutaja:';
$labels['advanced'] = 'laiendatud režiim';
$labels['newuser'] = 'Lisa sissekanne';
$labels['actions'] = 'Ligipääsuõiguste toimingud...';
$labels['anyone'] = 'Kõik kasutajad';
$labels['anonymous'] = 'Külalised (anonüümsed)';
$labels['identifier'] = 'Tuvastaja';
$labels['acll'] = 'Lookup';
$labels['aclr'] = 'Lugeda kirju';
$labels['acls'] = 'Keep Seen state';
$labels['aclw'] = 'Write flags';
$labels['acli'] = 'Sisesta (kopeeri)';
$labels['aclp'] = 'Postita';
$labels['shortaclp'] = 'Postita';
$labels['aclc'] = 'Luua alamkaustu';
$labels['aclk'] = 'Luua alamkaustu';
$labels['acld'] = 'Kustutada kirju';
$labels['aclt'] = 'Kustutada kirju';
$labels['acle'] = 'Eemalda';
$labels['shortacle'] = 'Eemalda';
$labels['aclx'] = 'Kustutada kausta';
$labels['acla'] = 'Administreerida';
$labels['shortacla'] = 'Administreerida';
$labels['aclfull'] = 'Täis kontroll';
$labels['aclother'] = 'Muu';
$labels['shortaclother'] = 'Muu';
$labels['aclread'] = 'Loe';
$labels['shortaclr'] = 'Loe';
$labels['shortaclread'] = 'Loe';
$labels['aclwrite'] = 'Kirjuta';
$labels['shortaclw'] = 'Kirjuta';
$labels['shortaclwrite'] = 'Kirjuta';
$labels['acldelete'] = 'Kustuta';
$labels['shortacld'] = 'Kustuta';
$labels['shortaclt'] = 'Kustuta';
$labels['shortacldelete'] = 'Kustuta';
$labels['shortacll'] = 'Lookup';
$labels['shortaclr'] = 'Loe';
$labels['shortacls'] = 'Säilita';
$labels['shortaclw'] = 'Kirjuta';
$labels['shortacli'] = 'Lisa';
$labels['shortaclp'] = 'Postita';
$labels['shortaclc'] = 'Loo';
$labels['shortaclk'] = 'Loo';
$labels['shortacld'] = 'Kustuta';
$labels['shortaclt'] = 'Kustuta';
$labels['shortacle'] = 'Eemalda';
$labels['shortaclx'] = 'Kausta kustutamine';
$labels['shortacla'] = 'Administreerida';
$labels['shortaclother'] = 'Muu';
$labels['shortaclread'] = 'Loe';
$labels['shortaclwrite'] = 'Kirjuta';
$labels['shortacldelete'] = 'Kustuta';
$labels['longacll'] = 'See kaust on nimekirjas nähtav ja seda saab tellida';
$labels['longaclr'] = 'Kausta saab lugemiseks avada';
$labels['longaclread'] = 'Kausta saab lugemiseks avada';
$labels['longacls'] = 'Messages Seen flag can be changed';
$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted';
$labels['longacli'] = 'Messages can be written or copied to the folder';
$labels['longaclp'] = 'Messages can be posted to this folder';
$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder';
$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder';
$labels['longacld'] = 'Messages Delete flag can be changed';
$labels['longaclt'] = 'Messages Delete flag can be changed';
$labels['longacle'] = 'Kirju saab eemaldada';
$labels['longaclx'] = 'Seda kausta ei saa kustutada ega ümber nimetada';
$labels['norights'] = 'Õigusi pole määratud!';
$labels['nouser'] = 'Kasutajanime pole määratud!';
$labels['longacla'] = 'Selle kausta ligipääsuõigusi saab muuta';
$labels['longaclfull'] = 'Täielik kontroll koos kaustade haldamisega';
$labels['longaclread'] = 'Kausta saab lugemiseks avada';
$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder';
$labels['longacldelete'] = 'Kirju saab kustutada';
$messages['deleting'] = 'Ligipääsuõiguste kustutamine...';
$messages['saving'] = 'Ligipääsuõiguste salvestamine...';
$messages['updatesuccess'] = 'Ligipääsuõigused on muudetud';
$messages['deletesuccess'] = 'Ligipääsuõigused on kustutatud';
$messages['createsuccess'] = 'Ligipääsuõigused on lisatud';
$messages['updateerror'] = 'Ligipääsuõiguste uuendamine nurjus';
$messages['deleteerror'] = 'Ligipääsuõiguste kustutamine nurjus';
$messages['createerror'] = 'Ligipääsuõiguste andmine nurjus';
$messages['deleteconfirm'] = 'Oled sa kindel, et sa soovid valitudkasutaja(te) õiguseid kustutada?';
$messages['norights'] = 'Õigusi pole määratud!';
$messages['nouser'] = 'Kasutajanime pole määratud!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/fa_IR/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Hamid <abbaszadeh.h@gmail.com> |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'اشتراک‌گذاری';
$labels['myrights'] = 'مجوزهای دسترسی';
$labels['username'] = 'کاربر:';
@ -23,44 +25,48 @@ $labels['actions'] = 'فعالیت‌های مجوز دسترسی...';
$labels['anyone'] = 'همه کاربران (هر کسی)';
$labels['anonymous'] = 'مهمان‌ها (ناشناس‌ها)';
$labels['identifier'] = 'شناساگر';
$labels['acll'] = 'یافتن';
$labels['shortacll'] = 'یافتن';
$labels['aclr'] = 'پیام های خوانده شده';
$labels['acls'] = 'نگه داشتن حالت بازدید';
$labels['aclw'] = 'پرچم‌های نوشتن';
$labels['acli'] = 'وارد کردن (کپی کردن در)';
$labels['aclp'] = 'نوشته';
$labels['shortaclp'] = 'نوشته';
$labels['aclc'] = 'ایجاد زیرپوشه‌ها';
$labels['aclk'] = 'ایجاد زیرپوشه‌ها';
$labels['acld'] = 'پاک کردن پیغام‌ها';
$labels['aclt'] = 'پاک کردن پیغام‌ها';
$labels['acle'] = 'پاک کردن';
$labels['shortacle'] = 'پاک کردن';
$labels['aclx'] = 'حذف پوشه';
$labels['acla'] = 'مدیر';
$labels['shortacla'] = 'مدیر';
$labels['aclfull'] = 'کنترل کامل';
$labels['aclother'] = 'دیگر';
$labels['shortaclother'] = 'دیگر';
$labels['aclread'] = 'خوانده شده';
$labels['shortaclr'] = 'خوانده شده';
$labels['shortaclread'] = 'خوانده شده';
$labels['aclwrite'] = 'نوشتن';
$labels['shortaclw'] = 'نوشتن';
$labels['shortaclwrite'] = 'نوشتن';
$labels['acldelete'] = 'حذف';
$labels['shortacld'] = 'حذف';
$labels['shortaclt'] = 'حذف';
$labels['shortacldelete'] = 'حذف';
$labels['shortacll'] = 'یافتن';
$labels['shortaclr'] = 'خوانده شده';
$labels['shortacls'] = 'نگه داشتن';
$labels['shortaclw'] = 'نوشتن';
$labels['shortacli'] = 'جاگذارى';
$labels['shortaclp'] = 'نوشته';
$labels['shortaclc'] = 'ایجاد';
$labels['shortaclk'] = 'ایجاد';
$labels['shortacld'] = 'حذف';
$labels['shortaclt'] = 'حذف';
$labels['shortacle'] = 'پاک کردن';
$labels['shortaclx'] = 'حذف کردن پوشه';
$labels['shortacla'] = 'مدیر';
$labels['shortaclother'] = 'دیگر';
$labels['shortaclread'] = 'خوانده شده';
$labels['shortaclwrite'] = 'نوشتن';
$labels['shortacldelete'] = 'حذف';
$labels['longacll'] = 'پوشه در فهرست‌ها قابل مشاهده است و می‌تواند مشترک به';
$labels['longaclr'] = 'پوشه می‌تواند برای خواندن باز شود';
$labels['longaclread'] = 'پوشه می‌تواند برای خواندن باز شود';
$labels['longacls'] = 'پرچم بازدید پیغام‌ها می‌تواند تغییر داده شود';
$labels['longaclw'] = 'پرچم و کلیدواژه پیغام‌ها می‌تواند تغییر داده شود، به غیر از بازدید و حذف';
$labels['longacli'] = 'پیغام‌ها می‌توانند کپی یا نوشته شوند به پوشه';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'پرچم حذف پیغام‌ها می‌تواند تغ
$labels['longacle'] = 'پیغام‌ها می‌توانند حذف شوند';
$labels['longaclx'] = 'پوشه می‌تواند حذف یا تغییر نام داده شود';
$labels['longacla'] = 'قوانین دسترسی پوشه می‌تواند تغییر داده شود';
$labels['longaclfull'] = 'کنترل کامل شما مدیریت پوشه';
$labels['longaclread'] = 'پوشه می‌تواند برای خواندن باز شود';
$labels['longaclwrite'] = 'پیغام‌ها می‌توانند علامتگذاری، نوشته و یا کپی شوند در پوشه';
$labels['longacldelete'] = 'پیغام‌ها می‌توانند حذف شوند';
$labels['deleting'] = 'حذف کردن قوانین دسترسی...';
$labels['saving'] = 'ذخیره قوانین دسترسی...';
$labels['updatesuccess'] = 'قوانین دسترسی با موفقیت تغییر کردند';
$labels['deletesuccess'] = 'قوانین دسترسی با موفقیت حذف شدند';
$labels['createsuccess'] = 'قوانین دسترسی با موفقیت اضافه شدند';
$labels['updateerror'] = 'ناتوانی در بروزرسانی قوانین دسترسی';
$labels['deleteerror'] = 'ناتوانی در حذف قوانین دسترسی';
$labels['createerror'] = 'ناتوانی در اضافه کردن قوانین دسترسی';
$labels['deleteconfirm'] = 'آیا شما مطمئن هستید که می‌خواهید قوانین دسترسی را برای کاربر(ان) انتخاب شده حذف نمایید؟';
$labels['norights'] = 'هیچ قانونی مشخص نشده است!';
$labels['nouser'] = 'هیج نام‌کاربری‌ای مشخص نشده است!';
$messages['deleting'] = 'حذف کردن قوانین دسترسی...';
$messages['saving'] = 'ذخیره قوانین دسترسی...';
$messages['updatesuccess'] = 'قوانین دسترسی با موفقیت تغییر کردند';
$messages['deletesuccess'] = 'قوانین دسترسی با موفقیت حذف شدند';
$messages['createsuccess'] = 'قوانین دسترسی با موفقیت اضافه شدند';
$messages['updateerror'] = 'ناتوانی در بروزرسانی قوانین دسترسی';
$messages['deleteerror'] = 'ناتوانی در حذف قوانین دسترسی';
$messages['createerror'] = 'ناتوانی در اضافه کردن قوانین دسترسی';
$messages['deleteconfirm'] = 'آیا شما مطمئن هستید که می‌خواهید قوانین دسترسی را برای کاربر(ان) انتخاب شده حذف نمایید؟';
$messages['norights'] = 'هیچ قانونی مشخص نشده است!';
$messages['nouser'] = 'هیج نام‌کاربری‌ای مشخص نشده است!';
?>

@ -2,60 +2,98 @@
/*
+-----------------------------------------------------------------------+
| localization/fi_FI/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Jiri Grönroos |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Jakaminen';
$labels['myrights'] = 'Käyttöoikeudet';
$labels['username'] = 'Käyttäjä:';
$labels['advanced'] = 'edistynyt tila';
$labels['newuser'] = 'Add entry';
$labels['actions'] = 'Access right actions...';
$labels['anyone'] = 'Kaikki käyttäjät (kuka tahansa)';
$labels['anonymous'] = 'Vieraat (anonyymit)';
$labels['aclr'] = 'Lue viestejä';
$labels['aclc'] = 'Luo alikansioita';
$labels['aclk'] = 'Luo alikansioita';
$labels['acld'] = 'Poista viestejä';
$labels['aclt'] = 'Poista viestejä';
$labels['aclx'] = 'Poista kansio';
$labels['aclfull'] = 'Täysi hallinta';
$labels['aclother'] = 'Muu';
$labels['shortaclother'] = 'Muu';
$labels['aclread'] = 'Luku';
$labels['shortaclr'] = 'Luku';
$labels['shortaclread'] = 'Luku';
$labels['aclwrite'] = 'Kirjoitus';
$labels['shortaclw'] = 'Kirjoitus';
$labels['shortaclwrite'] = 'Kirjoitus';
$labels['acldelete'] = 'Poisto';
$labels['shortacld'] = 'Poisto';
$labels['shortaclt'] = 'Poisto';
$labels['shortacldelete'] = 'Poisto';
$labels['identifier'] = 'Identifier';
$labels['acll'] = 'Lookup';
$labels['aclr'] = 'Read messages';
$labels['acls'] = 'Keep Seen state';
$labels['aclw'] = 'Write flags';
$labels['acli'] = 'Insert (Copy into)';
$labels['aclp'] = 'Post';
$labels['aclc'] = 'Create subfolders';
$labels['aclk'] = 'Create subfolders';
$labels['acld'] = 'Delete messages';
$labels['aclt'] = 'Delete messages';
$labels['acle'] = 'Expunge';
$labels['aclx'] = 'Delete folder';
$labels['acla'] = 'Administer';
$labels['aclfull'] = 'Full control';
$labels['aclother'] = 'Other';
$labels['aclread'] = 'Read';
$labels['aclwrite'] = 'Write';
$labels['acldelete'] = 'Delete';
$labels['shortacll'] = 'Lookup';
$labels['shortaclr'] = 'Read';
$labels['shortacls'] = 'Keep';
$labels['shortaclw'] = 'Write';
$labels['shortacli'] = 'Insert';
$labels['shortaclp'] = 'Post';
$labels['shortaclc'] = 'Luo';
$labels['shortaclk'] = 'Luo';
$labels['longaclr'] = 'Kansio voidaan avata lukua varten';
$labels['longaclread'] = 'Kansio voidaan avata lukua varten';
$labels['longaclc'] = 'Kansioita voi luoda (tai nimetä uudelleen) tämän kansion alla';
$labels['longaclk'] = 'Kansioita voi luoda (tai nimetä uudelleen) tämän kansion alla';
$labels['longaclx'] = 'Kansion voi poistaa tai nimetä uudelleen';
$labels['longacla'] = 'Kansion käyttöoikeuksia voi muuttaa';
$labels['longaclfull'] = 'Täysi hallinta mukaan lukien kansioiden ylläpidon';
$labels['longacldelete'] = 'Viestejä voi poistaa';
$labels['deleting'] = 'Poistetaan käyttöoikeuksia...';
$labels['saving'] = 'Tallennetaan käyttöoikeuksia...';
$labels['updatesuccess'] = 'Käyttöoikeudet on muutettu onnistuneesti';
$labels['deletesuccess'] = 'Käyttöoikeudet on poistettu onnistuneesti';
$labels['createsuccess'] = 'Käyttöoikeudet on lisätty onnistuneesti';
$labels['deleteerror'] = 'Käyttöoikeuksien poisto epäonnistui';
$labels['createerror'] = 'Käyttöoikeuksien lisäys epäonnistui';
$labels['norights'] = 'Käyttöoikeuksia ei ole määritelty!';
$labels['nouser'] = 'Käyttäjätunnusta ei ole määritelty!';
$labels['shortacld'] = 'Poista';
$labels['shortaclt'] = 'Poista';
$labels['shortacle'] = 'Expunge';
$labels['shortaclx'] = 'Folder delete';
$labels['shortacla'] = 'Administer';
$labels['shortaclother'] = 'Muu';
$labels['shortaclread'] = 'Read';
$labels['shortaclwrite'] = 'Write';
$labels['shortacldelete'] = 'Delete';
$labels['longacll'] = 'The folder is visible on lists and can be subscribed to';
$labels['longaclr'] = 'The folder can be opened for reading';
$labels['longacls'] = 'Messages Seen flag can be changed';
$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted';
$labels['longacli'] = 'Messages can be written or copied to the folder';
$labels['longaclp'] = 'Messages can be posted to this folder';
$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder';
$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder';
$labels['longacld'] = 'Messages Delete flag can be changed';
$labels['longaclt'] = 'Messages Delete flag can be changed';
$labels['longacle'] = 'Messages can be expunged';
$labels['longaclx'] = 'The folder can be deleted or renamed';
$labels['longacla'] = 'The folder access rights can be changed';
$labels['longaclfull'] = 'Full control including folder administration';
$labels['longaclread'] = 'The folder can be opened for reading';
$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder';
$labels['longacldelete'] = 'Messages can be deleted';
$messages['deleting'] = 'Deleting access rights...';
$messages['saving'] = 'Saving access rights...';
$messages['updatesuccess'] = 'Successfully changed access rights';
$messages['deletesuccess'] = 'Successfully deleted access rights';
$messages['createsuccess'] = 'Successfully added access rights';
$messages['updateerror'] = 'Ubable to update access rights';
$messages['deleteerror'] = 'Unable to delete access rights';
$messages['createerror'] = 'Unable to add access rights';
$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?';
$messages['norights'] = 'No rights has been specified!';
$messages['nouser'] = 'No username has been specified!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/fr_FR/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Tr4sK |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Partage';
$labels['myrights'] = 'Droits d\'accès';
$labels['username'] = 'Utilisateur :';
@ -23,44 +25,48 @@ $labels['actions'] = 'Action sur les droits d\'accès...';
$labels['anyone'] = 'Tous les utilisateurs (tout le monde)';
$labels['anonymous'] = 'Invités (anonymes)';
$labels['identifier'] = 'Identifiant';
$labels['acll'] = 'Consultation';
$labels['shortacll'] = 'Consultation';
$labels['aclr'] = 'Lire les messages';
$labels['acls'] = 'Garder l\'état vu';
$labels['aclw'] = 'Écrire une étiquette';
$labels['acli'] = 'Insérer (Copier dans)';
$labels['aclp'] = 'Envoyer';
$labels['shortaclp'] = 'Envoyer';
$labels['aclc'] = 'Créer des sous-dossiers';
$labels['aclk'] = 'Créer des sous-dossiers';
$labels['acld'] = 'Supprimer des messages';
$labels['aclt'] = 'Supprimer des messages';
$labels['acle'] = 'Purger';
$labels['shortacle'] = 'Purger';
$labels['aclx'] = 'Supprimer un dossier';
$labels['acla'] = 'Administrer';
$labels['shortacla'] = 'Administrer';
$labels['aclfull'] = 'Contrôle total';
$labels['aclother'] = 'Autre';
$labels['shortaclother'] = 'Autre';
$labels['aclread'] = 'Lecture';
$labels['shortaclr'] = 'Lecture';
$labels['shortaclread'] = 'Lecture';
$labels['aclwrite'] = 'Écriture';
$labels['shortaclw'] = 'Écriture';
$labels['shortaclwrite'] = 'Écriture';
$labels['acldelete'] = 'Translation can be either \'Supprimer\' or \'Effacer\' depends of the whole context.';
$labels['shortacld'] = 'Translation can be either \'Supprimer\' or \'Effacer\' depends of the whole context.';
$labels['shortaclt'] = 'Translation can be either \'Supprimer\' or \'Effacer\' depends of the whole context.';
$labels['shortacldelete'] = 'Translation can be either \'Supprimer\' or \'Effacer\' depends of the whole context.';
$labels['shortacll'] = 'Consultation';
$labels['shortaclr'] = 'Lecture';
$labels['shortacls'] = 'Conserver';
$labels['shortaclw'] = 'Écriture';
$labels['shortacli'] = 'Insérer';
$labels['shortaclp'] = 'Envoyer';
$labels['shortaclc'] = 'Créer';
$labels['shortaclk'] = 'Créer';
$labels['shortacld'] = 'Translation can be either \'Supprimer\' or \'Effacer\' depends of the whole context.';
$labels['shortaclt'] = 'Translation can be either \'Supprimer\' or \'Effacer\' depends of the whole context.';
$labels['shortacle'] = 'Purger';
$labels['shortaclx'] = 'Supprimer un dossier';
$labels['shortacla'] = 'Administrer';
$labels['shortaclother'] = 'Autre';
$labels['shortaclread'] = 'Lecture';
$labels['shortaclwrite'] = 'Écriture';
$labels['shortacldelete'] = 'Translation can be either \'Supprimer\' or \'Effacer\' depends of the whole context.';
$labels['longacll'] = 'Ce dossier est visible dans les listes et peut être souscrit';
$labels['longaclr'] = 'Le dossier peut-être ouvert pour lecture';
$labels['longaclread'] = 'Le dossier peut-être ouvert pour lecture';
$labels['longacls'] = 'L\'étiquette Lu peut-être changée';
$labels['longaclw'] = 'Les étiquettes et les mot-clés peuvent-être changé, sauf pour Vu et Supprimé';
$labels['longacli'] = 'Les messages peuvent-être écrit ou copié dans le dossier';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'L\'étiquette de suppression des messages peut-être modi
$labels['longacle'] = 'Les messages peuvent-être purgés';
$labels['longaclx'] = 'Le dossier peut-être supprimé ou renommé';
$labels['longacla'] = 'Les droits d\'accès au dossier peuvent-être modifiés';
$labels['longaclfull'] = 'Contrôle total, dossier d\'administration inclus';
$labels['longaclread'] = 'Le dossier peut-être ouvert pour lecture';
$labels['longaclwrite'] = 'Les messages peuvent-être marqué, écrit ou copié dans ce dossier';
$labels['longacldelete'] = 'Les messages peuvent-être supprimé';
$labels['deleting'] = 'Suppression des droits d\'accès…';
$labels['saving'] = 'Sauvegarde des droits d\'accès…';
$labels['updatesuccess'] = 'Les droits d\'accès ont été changé avec succès';
$labels['deletesuccess'] = 'Les droits d\'accès ont été supprimé avec succès';
$labels['createsuccess'] = 'Les droits d\'accès ont été ajouté avec succès';
$labels['updateerror'] = 'Impossible de mettre à jour les droits d\'accès';
$labels['deleteerror'] = 'Impossible de supprimer les droits d\'accès';
$labels['createerror'] = 'Impossible d\'ajouter des droits d\'accès';
$labels['deleteconfirm'] = 'Êtes-vous sûr de vouloir retirer les droits d\'accès du/des utilisateur(s) sélectionné ?';
$labels['norights'] = 'Aucun droit n\'a été spécifié !';
$labels['nouser'] = 'Aucun nom d\'utilisateur n\'a été spécifié !';
$messages['deleting'] = 'Suppression des droits d\'accès…';
$messages['saving'] = 'Sauvegarde des droits d\'accès…';
$messages['updatesuccess'] = 'Les droits d\'accès ont été changé avec succès';
$messages['deletesuccess'] = 'Les droits d\'accès ont été supprimé avec succès';
$messages['createsuccess'] = 'Les droits d\'accès ont été ajouté avec succès';
$messages['updateerror'] = 'Impossible de mettre à jour les droits d\'accès';
$messages['deleteerror'] = 'Impossible de supprimer les droits d\'accès';
$messages['createerror'] = 'Impossible d\'ajouter des droits d\'accès';
$messages['deleteconfirm'] = 'Êtes-vous sûr de vouloir retirer les droits d\'accès du/des utilisateur(s) sélectionné ?';
$messages['norights'] = 'Aucun droit n\'a été spécifié !';
$messages['nouser'] = 'Aucun nom d\'utilisateur n\'a été spécifié !';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/gl_ES/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: ghas |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Compartindo';
$labels['myrights'] = 'Dereitos de acceso';
$labels['username'] = 'Usuario:';
@ -23,10 +25,75 @@ $labels['actions'] = 'Accións sobre os dereitos de acceso...';
$labels['anyone'] = 'Tódolos usuarios (calquera)';
$labels['anonymous'] = 'Invitados (anónimo)';
$labels['identifier'] = 'Identificador';
$labels['acll'] = 'Lookup';
$labels['aclr'] = 'Ler mensaxes';
$labels['acls'] = 'Keep Seen state';
$labels['aclw'] = 'Write flags';
$labels['acli'] = 'Insert (Copy into)';
$labels['aclp'] = 'Post';
$labels['aclc'] = 'Create subfolders';
$labels['aclk'] = 'Create subfolders';
$labels['acld'] = 'Borrar mensaxes';
$labels['aclt'] = 'Borrar mensaxes';
$labels['acle'] = 'Expunge';
$labels['aclx'] = 'Eliminar carpeta';
$labels['acla'] = 'Administrar';
$labels['aclfull'] = 'Full control';
$labels['aclother'] = 'Other';
$labels['aclread'] = 'Read';
$labels['aclwrite'] = 'Write';
$labels['acldelete'] = 'Delete';
$labels['shortacll'] = 'Lookup';
$labels['shortaclr'] = 'Read';
$labels['shortacls'] = 'Keep';
$labels['shortaclw'] = 'Write';
$labels['shortacli'] = 'Insert';
$labels['shortaclp'] = 'Post';
$labels['shortaclc'] = 'Create';
$labels['shortaclk'] = 'Create';
$labels['shortacld'] = 'Delete';
$labels['shortaclt'] = 'Delete';
$labels['shortacle'] = 'Expunge';
$labels['shortaclx'] = 'Folder delete';
$labels['shortacla'] = 'Administrar';
$labels['shortaclother'] = 'Other';
$labels['shortaclread'] = 'Read';
$labels['shortaclwrite'] = 'Write';
$labels['shortacldelete'] = 'Delete';
$labels['longacll'] = 'The folder is visible on lists and can be subscribed to';
$labels['longaclr'] = 'The folder can be opened for reading';
$labels['longacls'] = 'Messages Seen flag can be changed';
$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted';
$labels['longacli'] = 'Messages can be written or copied to the folder';
$labels['longaclp'] = 'Messages can be posted to this folder';
$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder';
$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder';
$labels['longacld'] = 'Messages Delete flag can be changed';
$labels['longaclt'] = 'Messages Delete flag can be changed';
$labels['longacle'] = 'Messages can be expunged';
$labels['longaclx'] = 'The folder can be deleted or renamed';
$labels['longacla'] = 'The folder access rights can be changed';
$labels['longaclfull'] = 'Full control including folder administration';
$labels['longaclread'] = 'The folder can be opened for reading';
$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder';
$labels['longacldelete'] = 'Messages can be deleted';
$messages['deleting'] = 'Deleting access rights...';
$messages['saving'] = 'Saving access rights...';
$messages['updatesuccess'] = 'Successfully changed access rights';
$messages['deletesuccess'] = 'Successfully deleted access rights';
$messages['createsuccess'] = 'Successfully added access rights';
$messages['updateerror'] = 'Ubable to update access rights';
$messages['deleteerror'] = 'Unable to delete access rights';
$messages['createerror'] = 'Unable to add access rights';
$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?';
$messages['norights'] = 'No rights has been specified!';
$messages['nouser'] = 'No username has been specified!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/he_IL/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: Moshe Leibovitch <moish@mln.co.il> |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'שיתוף';
$labels['myrights'] = 'זכויות גישה';
$labels['username'] = 'משתמש:';
@ -23,44 +25,48 @@ $labels['actions'] = 'פעולות על זכויות גישה...';
$labels['anyone'] = 'כל המשתמשים (כל אחד)';
$labels['anonymous'] = 'אורחים (אנונימי)';
$labels['identifier'] = 'מזהה';
$labels['acll'] = 'חיפוש';
$labels['shortacll'] = 'חיפוש';
$labels['aclr'] = 'קריאת הודעות';
$labels['acls'] = 'שמירה על סטטוס נראה';
$labels['aclw'] = 'דגלי כתיבה';
$labels['acli'] = 'הוספה בין ערכים (העתקה לתוך)';
$labels['aclp'] = 'פרסום';
$labels['shortaclp'] = 'פרסום';
$labels['aclc'] = 'יצירת תת־תיקיות';
$labels['aclk'] = 'יצירת תת־תיקיות';
$labels['acld'] = 'מחיקת הודעות';
$labels['aclt'] = 'מחיקת הודעות';
$labels['acle'] = 'ניקוי רשומות שבוטלו';
$labels['shortacle'] = 'ניקוי רשומות שבוטלו';
$labels['aclx'] = 'מחיקת תיקיה';
$labels['acla'] = 'מנהל';
$labels['shortacla'] = 'מנהל';
$labels['aclfull'] = 'שליטה מלאה';
$labels['aclother'] = 'אחר';
$labels['shortaclother'] = 'אחר';
$labels['aclread'] = 'קריאה';
$labels['shortaclr'] = 'קריאה';
$labels['shortaclread'] = 'קריאה';
$labels['aclwrite'] = 'כתיבה';
$labels['shortaclw'] = 'כתיבה';
$labels['shortaclwrite'] = 'כתיבה';
$labels['acldelete'] = 'מחיקה';
$labels['shortacld'] = 'מחיקה';
$labels['shortaclt'] = 'מחיקה';
$labels['shortacldelete'] = 'מחיקה';
$labels['shortacll'] = 'חיפוש';
$labels['shortaclr'] = 'קריאה';
$labels['shortacls'] = 'להשאיר';
$labels['shortaclw'] = 'כתיבה';
$labels['shortacli'] = 'הוספה בין ערכים';
$labels['shortaclp'] = 'פרסום';
$labels['shortaclc'] = 'יצירה';
$labels['shortaclk'] = 'יצירה';
$labels['shortacld'] = 'מחיקה';
$labels['shortaclt'] = 'מחיקה';
$labels['shortacle'] = 'ניקוי רשומות שבוטלו';
$labels['shortaclx'] = 'מחיקת תיקיה';
$labels['shortacla'] = 'מנהל';
$labels['shortaclother'] = 'אחר';
$labels['shortaclread'] = 'קריאה';
$labels['shortaclwrite'] = 'כתיבה';
$labels['shortacldelete'] = 'מחיקה';
$labels['longacll'] = 'התיקיה תראה ברשימות וניתן יהיה להרשם אליה';
$labels['longaclr'] = 'ניתן לפתוח את התיקיה ולקרוא בה';
$labels['longaclread'] = 'ניתן לפתוח את התיקיה ולקרוא בה';
$labels['longacls'] = 'ניתן לשנות דגל נראה בהודעות';
$labels['longaclw'] = 'ניתן לשנות דגלים ומילות מפתח בהודעות, למעט נראה ונמחק';
$labels['longacli'] = 'ניתן לכתוב הודעות לתיקיה או למוחקן';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'ניתן לשנות דגל נמחק של הודעות';
$labels['longacle'] = 'ניתן לנקות הודעות שסומנו כמבוטלות';
$labels['longaclx'] = 'ניתן למחוק תיקיה זו או לשנות שמה';
$labels['longacla'] = 'ניתן לשנות זכויות גישה של תיקיה זו';
$labels['longaclfull'] = 'שליטה מלאה כולל ניהול התיקיה';
$labels['longaclread'] = 'ניתן לפתוח את התיקיה ולקרוא בה';
$labels['longaclwrite'] = 'ניתן לסמן, לכתוב או להעתיק הודעות לתיקיה זו';
$labels['longacldelete'] = 'ניתן למחוק הודעות';
$labels['deleting'] = 'זכויות גישה נמחקות...';
$labels['saving'] = 'זכויות גישה נשמרות...';
$labels['updatesuccess'] = 'זכויות גישה שונו בהצלחה';
$labels['deletesuccess'] = 'זכויות גישה נמחקו בהצלחה';
$labels['createsuccess'] = 'זכויות גישה נוספו בהצלחה';
$labels['updateerror'] = 'לא ניתן לעדכן זכויות גישה';
$labels['deleteerror'] = 'לא ניתן למחוק זכויות גישה';
$labels['createerror'] = 'לא ניתן להוסיף זכויות גישה';
$labels['deleteconfirm'] = 'האם ודאי שברצונך להסיר זכויות גישה של המשתמש(ים) שנבחרו?';
$labels['norights'] = 'לא צוינו זכויות גישה כלשהן !';
$labels['nouser'] = 'לא צוין שם משתמש כלשהו!';
$messages['deleting'] = 'זכויות גישה נמחקות...';
$messages['saving'] = 'זכויות גישה נשמרות...';
$messages['updatesuccess'] = 'זכויות גישה שונו בהצלחה';
$messages['deletesuccess'] = 'זכויות גישה נמחקו בהצלחה';
$messages['createsuccess'] = 'זכויות גישה נוספו בהצלחה';
$messages['updateerror'] = 'לא ניתן לעדכן זכויות גישה';
$messages['deleteerror'] = 'לא ניתן למחוק זכויות גישה';
$messages['createerror'] = 'לא ניתן להוסיף זכויות גישה';
$messages['deleteconfirm'] = 'האם ודאי שברצונך להסיר זכויות גישה של המשתמש(ים) שנבחרו?';
$messages['norights'] = 'לא צוינו זכויות גישה כלשהן !';
$messages['nouser'] = 'לא צוין שם משתמש כלשהו!';
?>

@ -2,18 +2,20 @@
/*
+-----------------------------------------------------------------------+
| localization/hu_HU/labels.inc |
| plugins/acl/localization/<lang>.inc |
| |
| Language file of the Roundcube Webmail client |
| Copyright (C) 2012, The Roundcube Dev Team |
| Licensed under the GNU General Public License |
| Localization file of the Roundcube Webmail ACL plugin |
| Copyright (C) 2012-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
+-----------------------------------------------------------------------+
| Author: bela |
+-----------------------------------------------------------------------+
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/
*/
$labels = array();
$labels['sharing'] = 'Megosztás';
$labels['myrights'] = 'Hozzáférési jogok';
$labels['username'] = 'Felhasználó:';
@ -23,44 +25,48 @@ $labels['actions'] = 'Hozzáférési jogok müveletei..';
$labels['anyone'] = 'Minden felhasználó (bárki)';
$labels['anonymous'] = 'Vendégek (névtelen)';
$labels['identifier'] = 'Azonosító';
$labels['acll'] = 'Keresés';
$labels['shortacll'] = 'Keresés';
$labels['aclr'] = 'Üzenetek olvasása';
$labels['acls'] = 'Olvasottsági állapot megtartása';
$labels['aclw'] = 'Üzenet jelölése';
$labels['acli'] = 'Beillesztés (Bemásolás)';
$labels['aclp'] = 'Bejegyzés';
$labels['shortaclp'] = 'Bejegyzés';
$labels['aclc'] = 'Almappa létrehozás';
$labels['aclk'] = 'Almappa létrehozás';
$labels['acld'] = 'Üzenetek törlése';
$labels['aclt'] = 'Üzenetek törlése';
$labels['acle'] = 'Törölt üzenetek eltávolítása';
$labels['shortacle'] = 'Törölt üzenetek eltávolítása';
$labels['aclx'] = 'Mappa törlés';
$labels['acla'] = 'Adminisztrátor';
$labels['shortacla'] = 'Adminisztrátor';
$labels['aclfull'] = 'Teljes hozzáférés';
$labels['aclother'] = 'Egyéb';
$labels['shortaclother'] = 'Egyéb';
$labels['aclread'] = 'Olvasás';
$labels['shortaclr'] = 'Olvasás';
$labels['shortaclread'] = 'Olvasás';
$labels['aclwrite'] = 'Írás';
$labels['shortaclw'] = 'Írás';
$labels['shortaclwrite'] = 'Írás';
$labels['acldelete'] = 'Törlés';
$labels['shortacld'] = 'Törlés';
$labels['shortaclt'] = 'Törlés';
$labels['shortacldelete'] = 'Törlés';
$labels['shortacll'] = 'Keresés';
$labels['shortaclr'] = 'Olvasás';
$labels['shortacls'] = 'Megtartás';
$labels['shortaclw'] = 'Írás';
$labels['shortacli'] = 'Beszúrás';
$labels['shortaclp'] = 'Bejegyzés';
$labels['shortaclc'] = 'Létrehozás';
$labels['shortaclk'] = 'Létrehozás';
$labels['shortacld'] = 'Törlés';
$labels['shortaclt'] = 'Törlés';
$labels['shortacle'] = 'Törölt üzenetek eltávolítása';
$labels['shortaclx'] = 'Mappa törlése';
$labels['shortacla'] = 'Adminisztrátor';
$labels['shortaclother'] = 'Egyéb';
$labels['shortaclread'] = 'Olvasás';
$labels['shortaclwrite'] = 'Írás';
$labels['shortacldelete'] = 'Törlés';
$labels['longacll'] = 'A mappa látható a listán és fel tudsz rá iratkozni.';
$labels['longaclr'] = 'A mappa olvasásra megnyitható';
$labels['longaclread'] = 'A mappa olvasásra megnyitható';
$labels['longacls'] = 'Az üzenet megtekintési állapota módosítható';
$labels['longaclw'] = 'Az üzenetek jelölései és kulcsszavai módosíthatóak, kivéve az olvasottsági állapotot és az üzenet törölt állapotát.';
$labels['longacli'] = 'Üzenetek irhatóak és máolshatóak a mappába.';
@ -72,18 +78,22 @@ $labels['longaclt'] = 'Üzenet törölve jelző módositható.';
$labels['longacle'] = 'Az üzenetek véglegesen eltávolíthatóak';
$labels['longaclx'] = 'A mappa törölhető vagy átnevezhető';
$labels['longacla'] = 'A mappa hozzáférési jogai módosíthatóak';
$labels['longaclfull'] = 'Teljes hozzáférés beleértve a mappák kezelését';
$labels['longaclread'] = 'A mappa olvasásra megnyitható';
$labels['longaclwrite'] = 'Az üzenetek megjelölhetök, irhatók és másolhatók ebbe a mappába';
$labels['longacldelete'] = 'Az üzenetek törölhetőek';
$labels['deleting'] = 'Hozzáférési jogok törlése...';
$labels['saving'] = 'Hozzáférési jogok mentése...';
$labels['updatesuccess'] = 'A hozzáférési jogok sikeresen módosultak.';
$labels['deletesuccess'] = 'A hozzáférési jogok törlése sikeresen megtörtént.';
$labels['createsuccess'] = 'A hozzáférési jogok hozzáadása sikeresen megtörtént.';
$labels['updateerror'] = 'Nem sikerült módosítani a hozzáférési jogokat.';
$labels['deleteerror'] = 'Nem sikerült törölni a hozzáférési jogokat.';
$labels['createerror'] = 'Nem sikerült a hozzáférési jogok hozzáadása';
$labels['deleteconfirm'] = 'Biztosan eltávolítja a kiválasztott felhasználó(k) hozzáférési jogait?';
$labels['norights'] = 'Nincsennek jogok megadva.';
$labels['nouser'] = 'A felhasználónév nincs megadva.';
$messages['deleting'] = 'Hozzáférési jogok törlése...';
$messages['saving'] = 'Hozzáférési jogok mentése...';
$messages['updatesuccess'] = 'A hozzáférési jogok sikeresen módosultak.';
$messages['deletesuccess'] = 'A hozzáférési jogok törlése sikeresen megtörtént.';
$messages['createsuccess'] = 'A hozzáférési jogok hozzáadása sikeresen megtörtént.';
$messages['updateerror'] = 'Nem sikerült módosítani a hozzáférési jogokat.';
$messages['deleteerror'] = 'Nem sikerült törölni a hozzáférési jogokat.';
$messages['createerror'] = 'Nem sikerült a hozzáférési jogok hozzáadása';
$messages['deleteconfirm'] = 'Biztosan eltávolítja a kiválasztott felhasználó(k) hozzáférési jogait?';
$messages['norights'] = 'Nincsennek jogok megadva.';
$messages['nouser'] = 'A felhasználónév nincs megadva.';
?>

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

Loading…
Cancel
Save