summaryrefslogtreecommitdiffstats
path: root/apps/contacts
diff options
context:
space:
mode:
authorMichael Gapczynski <mtgap@owncloud.com>2012-08-06 13:49:54 -0400
committerMichael Gapczynski <mtgap@owncloud.com>2012-08-06 13:49:54 -0400
commitea2385432817dcf5ad47396d83932f564aa76e4b (patch)
treeeffc5c5489cf385ee79c73a4bea59605f53240f9 /apps/contacts
parentba0cf9817526e1206a25a5fe6d70255ab3c9e3bc (diff)
parentfe6450002d6059260c743f48b6f40378454fa1dc (diff)
downloadnextcloud-server-ea2385432817dcf5ad47396d83932f564aa76e4b.tar.gz
nextcloud-server-ea2385432817dcf5ad47396d83932f564aa76e4b.zip
Merge branch 'master' into share_api
Conflicts: apps/contacts/lib/app.php apps/contacts/templates/part.chooseaddressbook.rowfields.php
Diffstat (limited to 'apps/contacts')
-rw-r--r--apps/contacts/ajax/addbook.php19
-rw-r--r--apps/contacts/ajax/addressbook/activate.php (renamed from apps/contacts/ajax/activation.php)16
-rw-r--r--apps/contacts/ajax/addressbook/add.php (renamed from apps/contacts/ajax/addaddressbook.php)6
-rw-r--r--apps/contacts/ajax/addressbook/delete.php (renamed from apps/contacts/ajax/deletebook.php)5
-rw-r--r--apps/contacts/ajax/addressbook/update.php (renamed from apps/contacts/ajax/updateaddressbook.php)23
-rw-r--r--apps/contacts/ajax/chooseaddressbook.php15
-rw-r--r--apps/contacts/ajax/contact/add.php (renamed from apps/contacts/ajax/addcontact.php)0
-rw-r--r--apps/contacts/ajax/contact/addproperty.php (renamed from apps/contacts/ajax/addproperty.php)0
-rw-r--r--apps/contacts/ajax/contact/delete.php (renamed from apps/contacts/ajax/deletecard.php)0
-rw-r--r--apps/contacts/ajax/contact/deleteproperty.php (renamed from apps/contacts/ajax/deleteproperty.php)0
-rw-r--r--apps/contacts/ajax/contact/details.php (renamed from apps/contacts/ajax/contactdetails.php)6
-rw-r--r--apps/contacts/ajax/contact/list.php (renamed from apps/contacts/ajax/contacts.php)35
-rw-r--r--apps/contacts/ajax/contact/move.php (renamed from apps/contacts/ajax/movetoaddressbook.php)0
-rw-r--r--apps/contacts/ajax/contact/saveproperty.php (renamed from apps/contacts/ajax/saveproperty.php)31
-rw-r--r--apps/contacts/ajax/createaddressbook.php36
-rw-r--r--apps/contacts/ajax/currentphoto.php2
-rw-r--r--apps/contacts/ajax/editaddressbook.php16
-rw-r--r--apps/contacts/ajax/savecrop.php28
-rw-r--r--apps/contacts/ajax/uploadphoto.php12
-rw-r--r--apps/contacts/appinfo/app.php2
-rw-r--r--apps/contacts/css/contacts.css13
-rw-r--r--apps/contacts/js/contacts.js3146
-rw-r--r--apps/contacts/js/settings.js186
-rw-r--r--apps/contacts/l10n/ar.php25
-rw-r--r--apps/contacts/l10n/ca.php63
-rw-r--r--apps/contacts/l10n/cs_CZ.php105
-rw-r--r--apps/contacts/l10n/da.php117
-rw-r--r--apps/contacts/l10n/de.php63
-rw-r--r--apps/contacts/l10n/el.php59
-rw-r--r--apps/contacts/l10n/eo.php136
-rw-r--r--apps/contacts/l10n/es.php105
-rw-r--r--apps/contacts/l10n/et_EE.php102
-rw-r--r--apps/contacts/l10n/eu.php140
-rw-r--r--apps/contacts/l10n/fa.php105
-rw-r--r--apps/contacts/l10n/fi_FI.php50
-rw-r--r--apps/contacts/l10n/fr.php54
-rw-r--r--apps/contacts/l10n/gl.php139
-rw-r--r--apps/contacts/l10n/he.php120
-rw-r--r--apps/contacts/l10n/hr.php67
-rw-r--r--apps/contacts/l10n/hu_HU.php105
-rw-r--r--apps/contacts/l10n/ia.php42
-rw-r--r--apps/contacts/l10n/it.php65
-rw-r--r--apps/contacts/l10n/ja_JP.php127
-rw-r--r--apps/contacts/l10n/ko.php129
-rw-r--r--apps/contacts/l10n/lb.php69
-rw-r--r--apps/contacts/l10n/lt_LT.php32
-rw-r--r--apps/contacts/l10n/mk.php105
-rw-r--r--apps/contacts/l10n/ms_MY.php140
-rw-r--r--apps/contacts/l10n/nb_NO.php91
-rw-r--r--apps/contacts/l10n/nl.php79
-rw-r--r--apps/contacts/l10n/nn_NO.php25
-rw-r--r--apps/contacts/l10n/pl.php135
-rw-r--r--apps/contacts/l10n/pt_BR.php105
-rw-r--r--apps/contacts/l10n/pt_PT.php125
-rw-r--r--apps/contacts/l10n/ro.php47
-rw-r--r--apps/contacts/l10n/ru.php125
-rw-r--r--apps/contacts/l10n/sk_SK.php53
-rw-r--r--apps/contacts/l10n/sl.php105
-rw-r--r--apps/contacts/l10n/sr.php19
-rw-r--r--apps/contacts/l10n/sr@latin.php7
-rw-r--r--apps/contacts/l10n/sv.php114
-rw-r--r--apps/contacts/l10n/th_TH.php105
-rw-r--r--apps/contacts/l10n/tr.php141
-rw-r--r--apps/contacts/l10n/uk.php12
-rw-r--r--apps/contacts/l10n/vi.php14
-rw-r--r--apps/contacts/l10n/zh_CN.php121
-rw-r--r--apps/contacts/l10n/zh_TW.php37
-rw-r--r--apps/contacts/lib/app.php36
-rw-r--r--apps/contacts/lib/connector_sabre.php23
-rw-r--r--apps/contacts/settings.php2
-rw-r--r--apps/contacts/templates/index.php32
-rw-r--r--apps/contacts/templates/part.chooseaddressbook.php24
-rw-r--r--apps/contacts/templates/part.chooseaddressbook.rowfields.php21
-rw-r--r--apps/contacts/templates/part.contact.php3
-rw-r--r--apps/contacts/templates/part.edit_address_dialog.php1
-rw-r--r--apps/contacts/templates/part.editaddressbook.php31
-rw-r--r--apps/contacts/templates/part.no_contacts.php1
-rw-r--r--apps/contacts/templates/settings.php47
78 files changed, 4145 insertions, 3397 deletions
diff --git a/apps/contacts/ajax/addbook.php b/apps/contacts/ajax/addbook.php
deleted file mode 100644
index 751185b44fd..00000000000
--- a/apps/contacts/ajax/addbook.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-
-OCP\JSON::checkLoggedIn();
-OCP\JSON::checkAppEnabled('contacts');
-$book = array(
- 'id' => 'new',
- 'displayname' => '',
-);
-$tmpl = new OCP\Template('contacts', 'part.editaddressbook');
-$tmpl->assign('new', true);
-$tmpl->assign('addressbook', $book);
-$tmpl->printPage();
diff --git a/apps/contacts/ajax/activation.php b/apps/contacts/ajax/addressbook/activate.php
index 69173c54c44..a8dec21dac7 100644
--- a/apps/contacts/ajax/activation.php
+++ b/apps/contacts/ajax/addressbook/activate.php
@@ -7,17 +7,17 @@
* See the COPYING-README file.
*/
-
+
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
OCP\JSON::callCheck();
-$bookid = $_POST['bookid'];
-$book = OC_Contacts_App::getAddressbook($bookid);// is owner access check
+$id = $_POST['id'];
+$book = OC_Contacts_App::getAddressbook($id);// is owner access check
-if(!OC_Contacts_Addressbook::setActive($bookid, $_POST['active'])) {
+if(!OC_Contacts_Addressbook::setActive($id, $_POST['active'])) {
OCP\Util::writeLog('contacts',
- 'ajax/activation.php: Error activating addressbook: '. $bookid,
+ 'ajax/activation.php: Error activating addressbook: '. $id,
OCP\Util::ERROR);
OCP\JSON::error(array(
'data' => array(
@@ -26,7 +26,7 @@ if(!OC_Contacts_Addressbook::setActive($bookid, $_POST['active'])) {
}
OCP\JSON::success(array(
- 'active' => OC_Contacts_Addressbook::isActive($bookid),
- 'bookid' => $bookid,
- 'book' => $book,
+ 'active' => OC_Contacts_Addressbook::isActive($id),
+ 'id' => $id,
+ 'addressbook' => $book,
));
diff --git a/apps/contacts/ajax/addaddressbook.php b/apps/contacts/ajax/addressbook/add.php
index 40773704bb4..65077743ed5 100644
--- a/apps/contacts/ajax/addaddressbook.php
+++ b/apps/contacts/ajax/addressbook/add.php
@@ -6,13 +6,13 @@
* later.
* See the COPYING-README file.
*/
-
+
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
OCP\JSON::callCheck();
-require_once 'loghandler.php';
+require_once __DIR__.'/../loghandler.php';
debug('name: '.$_POST['name']);
@@ -34,4 +34,4 @@ if(!OC_Contacts_Addressbook::setActive($bookid, 1)) {
bailOut('Error activating addressbook.');
}
$addressbook = OC_Contacts_App::getAddressbook($bookid);
-OCP\JSON::success(array('data' => $addressbook));
+OCP\JSON::success(array('data' => array('addressbook' => $addressbook)));
diff --git a/apps/contacts/ajax/deletebook.php b/apps/contacts/ajax/addressbook/delete.php
index 1b86ecf223e..f59c605f4e4 100644
--- a/apps/contacts/ajax/deletebook.php
+++ b/apps/contacts/ajax/addressbook/delete.php
@@ -24,9 +24,12 @@
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
OCP\JSON::callCheck();
+require_once __DIR__.'/../loghandler.php';
-//$id = $_GET['id'];
$id = $_POST['id'];
+if(!$id) {
+ bailOut(OC_Contacts_App::$l10n->t('id is not set.'));
+}
OC_Contacts_App::getAddressbook( $id ); // is owner access check
OC_Contacts_Addressbook::delete($id);
diff --git a/apps/contacts/ajax/updateaddressbook.php b/apps/contacts/ajax/addressbook/update.php
index a14b2158431..0fc66c3a3bf 100644
--- a/apps/contacts/ajax/updateaddressbook.php
+++ b/apps/contacts/ajax/addressbook/update.php
@@ -6,33 +6,34 @@
* See the COPYING-README file.
*/
-
+
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
-require_once 'loghandler.php';
-
-$bookid = $_POST['id'];
-OC_Contacts_App::getAddressbook($bookid); // is owner access check
+require_once __DIR__.'/../loghandler.php';
+$id = $_POST['id'];
$name = trim(strip_tags($_POST['name']));
+$description = trim(strip_tags($_POST['description']));
+if(!$id) {
+ bailOut(OC_Contacts_App::$l10n->t('id is not set.'));
+}
+
if(!$name) {
bailOut(OC_Contacts_App::$l10n->t('Cannot update addressbook with an empty name.'));
}
-if(!OC_Contacts_Addressbook::edit($bookid, $name, null)) {
+if(!OC_Contacts_Addressbook::edit($id, $name, $description)) {
bailOut(OC_Contacts_App::$l10n->t('Error updating addressbook.'));
}
-if(!OC_Contacts_Addressbook::setActive($bookid, $_POST['active'])) {
+if(!OC_Contacts_Addressbook::setActive($id, $_POST['active'])) {
bailOut(OC_Contacts_App::$l10n->t('Error (de)activating addressbook.'));
}
-$addressbook = OC_Contacts_App::getAddressbook($bookid);
-$tmpl = new OCP\Template('contacts', 'part.chooseaddressbook.rowfields');
-$tmpl->assign('addressbook', $addressbook);
+OC_Contacts_App::getAddressbook($id); // is owner access check
+$addressbook = OC_Contacts_App::getAddressbook($id);
OCP\JSON::success(array(
- 'page' => $tmpl->fetchPage(),
'addressbook' => $addressbook,
));
diff --git a/apps/contacts/ajax/chooseaddressbook.php b/apps/contacts/ajax/chooseaddressbook.php
deleted file mode 100644
index 1ce8dd46eef..00000000000
--- a/apps/contacts/ajax/chooseaddressbook.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Copyright (c) 2011 Thomas Tanghus <thomas@tanghus.net>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-
-OCP\JSON::checkLoggedIn();
-OCP\JSON::checkAppEnabled('contacts');
-
-$tmpl = new OCP\Template("contacts", "part.chooseaddressbook");
-$page = $tmpl->fetchPage();
-OCP\JSON::success(array('data' => array('page'=>$page)));
diff --git a/apps/contacts/ajax/addcontact.php b/apps/contacts/ajax/contact/add.php
index 6aaf5a9df35..6aaf5a9df35 100644
--- a/apps/contacts/ajax/addcontact.php
+++ b/apps/contacts/ajax/contact/add.php
diff --git a/apps/contacts/ajax/addproperty.php b/apps/contacts/ajax/contact/addproperty.php
index 58b857547fb..58b857547fb 100644
--- a/apps/contacts/ajax/addproperty.php
+++ b/apps/contacts/ajax/contact/addproperty.php
diff --git a/apps/contacts/ajax/deletecard.php b/apps/contacts/ajax/contact/delete.php
index 9777046fc82..9777046fc82 100644
--- a/apps/contacts/ajax/deletecard.php
+++ b/apps/contacts/ajax/contact/delete.php
diff --git a/apps/contacts/ajax/deleteproperty.php b/apps/contacts/ajax/contact/deleteproperty.php
index 205df8bc184..205df8bc184 100644
--- a/apps/contacts/ajax/deleteproperty.php
+++ b/apps/contacts/ajax/contact/deleteproperty.php
diff --git a/apps/contacts/ajax/contactdetails.php b/apps/contacts/ajax/contact/details.php
index 27d7611ade9..0e07f9ec3d8 100644
--- a/apps/contacts/ajax/contactdetails.php
+++ b/apps/contacts/ajax/contact/details.php
@@ -19,8 +19,8 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
-
-require_once 'loghandler.php';
+
+require_once __DIR__.'/../loghandler.php';
// Check if we are a user
OCP\JSON::checkLoggedIn();
@@ -31,7 +31,7 @@ if(is_null($id)) {
bailOut(OC_Contacts_App::$l10n->t('Missing ID'));
}
$card = OC_Contacts_VCard::find($id);
-$vcard = OC_Contacts_App::getContactVCard( $id );
+$vcard = OC_VObject::parse($card['carddata']);
if(is_null($vcard)) {
bailOut(OC_Contacts_App::$l10n->t('Error parsing VCard for ID: "'.$id.'"'));
}
diff --git a/apps/contacts/ajax/contacts.php b/apps/contacts/ajax/contact/list.php
index 67ebcaf7362..c5eca292f15 100644
--- a/apps/contacts/ajax/contacts.php
+++ b/apps/contacts/ajax/contact/list.php
@@ -13,7 +13,7 @@ function cmp($a, $b)
}
return ($a['displayname'] < $b['displayname']) ? -1 : 1;
}
-
+
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
@@ -37,34 +37,49 @@ $ids = array();
foreach($active_addressbooks as $addressbook) {
$ids[] = $addressbook['id'];
if(!isset($contacts_addressbook[$addressbook['id']])) {
- $contacts_addressbook[$addressbook['id']] = array('contacts' => array('type' => 'book',));
- $contacts_addressbook[$addressbook['id']]['displayname'] = $addressbook['displayname'];
+ $contacts_addressbook[$addressbook['id']]
+ = array('contacts' => array('type' => 'book',));
+ $contacts_addressbook[$addressbook['id']]['displayname']
+ = $addressbook['displayname'];
}
-}
+}
-$contacts_alphabet = array();
+$contacts_alphabet = array();
// get next 50 for each addressbook.
foreach($ids as $id) {
if($id) {
- $contacts_alphabet = array_merge($contacts_alphabet, OC_Contacts_VCard::all($id, $start, 50));
+ $contacts_alphabet = array_merge(
+ $contacts_alphabet,
+ OC_Contacts_VCard::all($id, $start, 50)
+ );
}
}
// Our new array for the contacts sorted by addressbook
if($contacts_alphabet) {
foreach($contacts_alphabet as $contact) {
- if(!isset($contacts_addressbook[$contact['addressbookid']])) { // It should never execute.
- $contacts_addressbook[$contact['addressbookid']] = array('contacts' => array('type' => 'book',));
+ // This should never execute.
+ if(!isset($contacts_addressbook[$contact['addressbookid']])) {
+ $contacts_addressbook[$contact['addressbookid']] = array(
+ 'contacts' => array('type' => 'book',)
+ );
}
$display = trim($contact['fullname']);
if(!$display) {
$vcard = OC_Contacts_App::getContactVCard($contact['id']);
if(!is_null($vcard)) {
$struct = OC_Contacts_VCard::structureContact($vcard);
- $display = isset($struct['EMAIL'][0])?$struct['EMAIL'][0]['value']:'[UNKNOWN]';
+ $display = isset($struct['EMAIL'][0])
+ ? $struct['EMAIL'][0]['value']
+ : '[UNKNOWN]';
}
}
- $contacts_addressbook[$contact['addressbookid']]['contacts'][] = array('type' => 'contact', 'id' => $contact['id'], 'addressbookid' => $contact['addressbookid'], 'displayname' => htmlspecialchars($display));
+ $contacts_addressbook[$contact['addressbookid']]['contacts'][] = array(
+ 'type' => 'contact',
+ 'id' => $contact['id'],
+ 'addressbookid' => $contact['addressbookid'],
+ 'displayname' => htmlspecialchars($display)
+ );
}
}
unset($contacts_alphabet);
diff --git a/apps/contacts/ajax/movetoaddressbook.php b/apps/contacts/ajax/contact/move.php
index a3336c3cb6c..a3336c3cb6c 100644
--- a/apps/contacts/ajax/movetoaddressbook.php
+++ b/apps/contacts/ajax/contact/move.php
diff --git a/apps/contacts/ajax/saveproperty.php b/apps/contacts/ajax/contact/saveproperty.php
index 5d743c99df4..ef4d1b26c5b 100644
--- a/apps/contacts/ajax/saveproperty.php
+++ b/apps/contacts/ajax/contact/saveproperty.php
@@ -41,9 +41,9 @@ if(!$checksum) {
}
if(is_array($value)) {
$value = array_map('strip_tags', $value);
- // NOTE: Important, otherwise the compound value will be
+ // NOTE: Important, otherwise the compound value will be
// set in the order the fields appear in the form!
- ksort($value);
+ ksort($value);
//if($name == 'CATEGORIES') {
// $value = OC_Contacts_VCard::escapeDelimiters($value, ',');
//} else {
@@ -56,12 +56,16 @@ if(is_array($value)) {
$vcard = OC_Contacts_App::getContactVCard( $id );
$line = OC_Contacts_App::getPropertyLineByChecksum($vcard, $checksum);
if(is_null($line)) {
- bailOut(OC_Contacts_App::$l10n->t('Information about vCard is incorrect. Please reload the page: ').$checksum);
+ bailOut(OC_Contacts_App::$l10n->t(
+ 'Information about vCard is incorrect. Please reload the page: ').$checksum
+ );
}
$element = $vcard->children[$line]->name;
if($element != $name) {
- bailOut(OC_Contacts_App::$l10n->t('Something went FUBAR. ').$name.' != '.$element);
+ bailOut(OC_Contacts_App::$l10n->t(
+ 'Something went FUBAR. ').$name.' != '.$element
+ );
}
/* preprocessing value */
@@ -91,11 +95,13 @@ if(!$value) {
/* setting value */
switch($element) {
case 'BDAY':
- // I don't use setDateTime() because that formats it as YYYYMMDD instead of YYYY-MM-DD
- // which is what the RFC recommends.
+ // I don't use setDateTime() because that formats it as YYYYMMDD instead
+ // of YYYY-MM-DD which is what the RFC recommends.
$vcard->children[$line]->setValue($value);
$vcard->children[$line]->parameters = array();
- $vcard->children[$line]->add(new Sabre_VObject_Parameter('VALUE', 'DATE'));
+ $vcard->children[$line]->add(
+ new Sabre_VObject_Parameter('VALUE', 'DATE')
+ );
debug('Setting value:'.$name.' '.$vcard->children[$line]);
break;
case 'CATEGORIES':
@@ -114,7 +120,10 @@ if(!$value) {
debug('Adding parameter: '.$key);
foreach($parameter as $val) {
debug('Adding parameter: '.$key.'=>'.$val);
- $vcard->children[$line]->add(new Sabre_VObject_Parameter($key, strtoupper(strip_tags($val))));
+ $vcard->children[$line]->add(new Sabre_VObject_Parameter(
+ $key,
+ strtoupper(strip_tags($val)))
+ );
}
}
}
@@ -134,4 +143,8 @@ if(!OC_Contacts_VCard::edit($id, $vcard)) {
exit();
}
-OCP\JSON::success(array('data' => array( 'line' => $line, 'checksum' => $checksum, 'oldchecksum' => $_POST['checksum'] )));
+OCP\JSON::success(array('data' => array(
+ 'line' => $line,
+ 'checksum' => $checksum,
+ 'oldchecksum' => $_POST['checksum']))
+);
diff --git a/apps/contacts/ajax/createaddressbook.php b/apps/contacts/ajax/createaddressbook.php
deleted file mode 100644
index 8dbd63f6425..00000000000
--- a/apps/contacts/ajax/createaddressbook.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * Copyright (c) 2011-2012 Thomas Tanghus <thomas@tanghus.net>
- * Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-
-// Check if we are a user
-OCP\JSON::checkLoggedIn();
-OCP\JSON::checkAppEnabled('contacts');
-OCP\JSON::callCheck();
-require_once 'loghandler.php';
-
-$userid = OCP\USER::getUser();
-$name = trim(strip_tags($_POST['name']));
-if(!$name) {
- bailOut('Cannot add addressbook with an empty name.');
-}
-$bookid = OC_Contacts_Addressbook::add($userid, $name, null);
-if(!$bookid) {
- bailOut('Error adding addressbook: '.$name);
-}
-
-if(!OC_Contacts_Addressbook::setActive($bookid, 1)) {
- bailOut('Error activating addressbook.');
-}
-$addressbook = OC_Contacts_App::getAddressbook($bookid);
-$tmpl = new OCP\Template('contacts', 'part.chooseaddressbook.rowfields');
-$tmpl->assign('addressbook', $addressbook);
-OCP\JSON::success(array(
- 'page' => $tmpl->fetchPage(),
- 'addressbook' => $addressbook,
-));
diff --git a/apps/contacts/ajax/currentphoto.php b/apps/contacts/ajax/currentphoto.php
index c8cccf83a65..96080e661ef 100644
--- a/apps/contacts/ajax/currentphoto.php
+++ b/apps/contacts/ajax/currentphoto.php
@@ -20,6 +20,8 @@
*
*/
+// Firefox and Konqueror tries to download application/json for me. --Arthur
+OCP\JSON::setContentTypeHeader('text/plain');
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
require_once 'loghandler.php';
diff --git a/apps/contacts/ajax/editaddressbook.php b/apps/contacts/ajax/editaddressbook.php
deleted file mode 100644
index 4bc77302e5b..00000000000
--- a/apps/contacts/ajax/editaddressbook.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-
-OCP\JSON::checkLoggedIn();
-OCP\JSON::checkAppEnabled('contacts');
-$addressbook = OC_Contacts_App::getAddressbook($_GET['bookid']);
-$tmpl = new OCP\Template("contacts", "part.editaddressbook");
-$tmpl->assign('new', false);
-$tmpl->assign('addressbook', $addressbook);
-$tmpl->printPage();
diff --git a/apps/contacts/ajax/savecrop.php b/apps/contacts/ajax/savecrop.php
index 07de138757d..1df5299c7a6 100644
--- a/apps/contacts/ajax/savecrop.php
+++ b/apps/contacts/ajax/savecrop.php
@@ -24,6 +24,9 @@ OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
OCP\JSON::callCheck();
+// Firefox and Konqueror tries to download application/json for me. --Arthur
+OCP\JSON::setContentTypeHeader('text/plain; charset=utf-8');
+
require_once 'loghandler.php';
$image = null;
@@ -54,34 +57,39 @@ if($data) {
$w = ($w != -1 ? $w : $image->width());
$h = ($h != -1 ? $h : $image->height());
OCP\Util::writeLog('contacts',
- 'savecrop.php, x: '.$x1.' y: '.$y1.' w: '.$w.' h: '.$h,
+ 'savecrop.php, x: '.$x1.' y: '.$y1.' w: '.$w.' h: '.$h,
OCP\Util::DEBUG);
if($image->crop($x1, $y1, $w, $h)) {
- if(($image->width() <= 200 && $image->height() <= 200) || $image->resize(200)) {
+ if(($image->width() <= 200 && $image->height() <= 200)
+ || $image->resize(200)) {
$card = OC_Contacts_App::getContactVCard($id);
if(!$card) {
OC_Cache::remove($tmpkey);
- bailOut(OC_Contacts_App::$l10n->t('Error getting contact object.'));
+ bailOut(OC_Contacts_App::$l10n
+ ->t('Error getting contact object.'));
}
if($card->__isset('PHOTO')) {
OCP\Util::writeLog('contacts',
- 'savecrop.php: PHOTO property exists.',
+ 'savecrop.php: PHOTO property exists.',
OCP\Util::DEBUG);
$property = $card->__get('PHOTO');
if(!$property) {
OC_Cache::remove($tmpkey);
- bailOut(OC_Contacts_App::$l10n->t('Error getting PHOTO property.'));
+ bailOut(OC_Contacts_App::$l10n
+ ->t('Error getting PHOTO property.'));
}
$property->setValue($image->__toString());
- $property->parameters[] = new Sabre_VObject_Parameter('ENCODING', 'b');
- $property->parameters[] = new Sabre_VObject_Parameter('TYPE', $image->mimeType());
+ $property->parameters[]
+ = new Sabre_VObject_Parameter('ENCODING', 'b');
+ $property->parameters[]
+ = new Sabre_VObject_Parameter('TYPE', $image->mimeType());
$card->__set('PHOTO', $property);
} else {
OCP\Util::writeLog('contacts',
- 'savecrop.php: files: Adding PHOTO property.',
+ 'savecrop.php: files: Adding PHOTO property.',
OCP\Util::DEBUG);
- $card->addProperty('PHOTO',
- $image->__toString(), array('ENCODING' => 'b',
+ $card->addProperty('PHOTO',
+ $image->__toString(), array('ENCODING' => 'b',
'TYPE' => $image->mimeType()));
}
$now = new DateTime;
diff --git a/apps/contacts/ajax/uploadphoto.php b/apps/contacts/ajax/uploadphoto.php
index 63abeb1fee1..34830b291d2 100644
--- a/apps/contacts/ajax/uploadphoto.php
+++ b/apps/contacts/ajax/uploadphoto.php
@@ -25,6 +25,8 @@ OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
OCP\JSON::callCheck();
+// Firefox and Konqueror tries to download application/json for me. --Arthur
+OCP\JSON::setContentTypeHeader('text/plain; charset=utf-8');
require_once 'loghandler.php';
$l10n = OC_Contacts_App::$l10n;
// If it is a Drag'n'Drop transfer it's handled here.
@@ -48,9 +50,9 @@ if ($fn) {
if(OC_Cache::set($tmpkey, $image->data(), 600)) {
OCP\JSON::success(array(
'data' => array(
- 'mime'=>$_SERVER['CONTENT_TYPE'],
- 'name'=>$fn,
- 'id'=>$id,
+ 'mime'=>$_SERVER['CONTENT_TYPE'],
+ 'name'=>$fn,
+ 'id'=>$id,
'tmp'=>$tmpkey)));
exit();
} else {
@@ -98,8 +100,8 @@ if(file_exists($file['tmp_name'])) {
'data' => array(
'mime'=>$file['type'],
'size'=>$file['size'],
- 'name'=>$file['name'],
- 'id'=>$_POST['id'],
+ 'name'=>$file['name'],
+ 'id'=>$_POST['id'],
'tmp'=>$tmpkey,
)));
exit();
diff --git a/apps/contacts/appinfo/app.php b/apps/contacts/appinfo/app.php
index 3c32f7f5c93..68163430186 100644
--- a/apps/contacts/appinfo/app.php
+++ b/apps/contacts/appinfo/app.php
@@ -20,8 +20,6 @@ OCP\App::addNavigationEntry( array(
'icon' => OCP\Util::imagePath( 'settings', 'users.svg' ),
'name' => OC_L10N::get('contacts')->t('Contacts') ));
-
-OCP\App::registerPersonal('contacts', 'settings');
OCP\Util::addscript('contacts', 'loader');
OC_Search::registerProvider('OC_Search_Provider_Contacts');
OCP\Share::registerBackend('contact', 'OC_Share_Backend_Contact');
diff --git a/apps/contacts/css/contacts.css b/apps/contacts/css/contacts.css
index 5a9e9cb9fe3..df9bba2dd3e 100644
--- a/apps/contacts/css/contacts.css
+++ b/apps/contacts/css/contacts.css
@@ -14,8 +14,8 @@
#bottomcontrols { padding: 0; bottom:0px; height:2.8em; width: 20em; margin:0; background:#eee; border-top:1px solid #ccc; position:fixed; -moz-box-shadow: 0 -3px 3px -3px #000; -webkit-box-shadow: 0 -3px 3px -3px #000; box-shadow: 0 -3px 3px -3px #000;}
#bottomcontrols img { margin-top: 0.35em; }
#uploadprogressbar { display: none; padding: 0; bottom: 3em; height:2em; width: 20em; margin:0; background:#eee; border:1px solid #ccc; position:fixed; }
-#contacts_newcontact, #contacts_import, #chooseaddressbook { float: left; margin: 0.2em 0 0 1em; border: 0 none; border-radius: 0; -moz-box-shadow: none; box-shadow: none; outline: 0 none; }
-#chooseaddressbook { float: right; margin: 0.2em 1em 0 0; }
+#contacts_newcontact, #bottomcontrols .settings { float: left; margin: 0.2em 0 0 1em; border: 0 none; border-radius: 0; -moz-box-shadow: none; box-shadow: none; outline: 0 none; }
+#bottomcontrols .settings { float: right; margin: 0.2em 1em 0 0; }
#actionbar { clear: both; height: 30px;}
#contacts_deletecard {position:relative; float:left; background:url('%webroot%/core/img/actions/delete.svg') no-repeat center; }
#contacts_downloadcard {position:relative; float:left; background:url('%webroot%/core/img/actions/download.svg') no-repeat center; }
@@ -126,7 +126,7 @@ input[type="checkbox"] { width: 20px; height: 20px; vertical-align: bottom; }
.typelist[type="button"] { float: left; max-width: 10em; border: 0; background-color: #fff; color: #bbb} /* for multiselect */
.typelist[type="button"]:hover { color: #777; } /* for multiselect */
.addresslist { clear: both; font-weight: bold; }
-#ninjahelp { position: absolute; bottom: 0; left: 0; right: 0; padding: 1em; margin: 1em; border: thin solid #eee; border-radius: 5px; background-color: #DBDBDB; opacity: 0.9; }
+#ninjahelp { position: absolute; bottom: 0; left: 0; right: 0; padding: 1em; margin: 1em; opacity: 0.9; }
#ninjahelp .close { position: absolute; top: 5px; right: 5px; height: 20px; width: 20px; }
#ninjahelp h2, .help-section h3 { width: 100%; font-weight: bold; text-align: center; }
#ninjahelp h2 { font-size: 1.4em; }
@@ -135,3 +135,10 @@ input[type="checkbox"] { width: 20px; height: 20px; vertical-align: bottom; }
.help-section dl { width: 100%; float: left; clear: right; margin: 0; padding: 0; cursor: normal; }
.help-section dt { display: table-cell; clear: left; float: left; width: 35%; margin: 0; padding: 0.2em; text-align: right; text-overflow: ellipsis; vertical-align: text-bottom; font-weight: bold: }
.help-section dd { display: table-cell; clear: right; float: left; margin: 0; padding: 0.2em; white-space: nowrap; vertical-align: text-bottom; }
+.contacts-settings dl { width: 100%; }
+.addressbooks-settings table { width: 100%; }
+.addressbooks-settings .actions { width: 100%; white-space: nowrap; }
+.addressbooks-settings .actions * { float: left; }
+.addressbooks-settings .actions input.name { width: 5em; }
+.addressbooks-settings .actions input.name { width: 7em; }
+
diff --git a/apps/contacts/js/contacts.js b/apps/contacts/js/contacts.js
index 34961360eea..9aec02557fc 100644
--- a/apps/contacts/js/contacts.js
+++ b/apps/contacts/js/contacts.js
@@ -10,1760 +10,1700 @@ String.prototype.strip_tags = function(){
return stripped;
};
-Contacts={
- UI:{
- /**
- * Arguments:
- * message: The text message to show.
- * timeout: The timeout in seconds before the notification disappears. Default 10.
- * timeouthandler: A function to run on timeout.
- * clickhandler: A function to run on click. If a timeouthandler is given it will be cancelled.
- * data: An object that will be passed as argument to the timeouthandler and clickhandler functions.
- * cancel: If set cancel all ongoing timer events and hide the notification.
- */
- notify:function(params) {
- self = this;
- if(!self.notifier) {
+OC.Contacts={
+ /**
+ * Arguments:
+ * message: The text message to show.
+ * timeout: The timeout in seconds before the notification disappears. Default 10.
+ * timeouthandler: A function to run on timeout.
+ * clickhandler: A function to run on click. If a timeouthandler is given it will be cancelled.
+ * data: An object that will be passed as argument to the timeouthandler and clickhandler functions.
+ * cancel: If set cancel all ongoing timer events and hide the notification.
+ */
+ notify:function(params) {
+ var self = this;
+ if(!self.notifier) {
+ self.notifier = $('#notification');
+ }
+ if(params.cancel) {
+ self.notifier.off('click');
+ for(var id in self.notifier.data()) {
+ if($.isNumeric(id)) {
+ clearTimeout(parseInt(id));
+ }
+ }
+ self.notifier.text('').fadeOut().removeData();
+ return;
+ }
+ self.notifier.text(params.message);
+ self.notifier.fadeIn();
+ self.notifier.on('click', function() { $(this).fadeOut();});
+ var timer = setTimeout(function() {
+ if(!self || !self.notifier) {
+ var self = OC.Contacts;
self.notifier = $('#notification');
}
- if(params.cancel) {
+ self.notifier.fadeOut();
+ if(params.timeouthandler && $.isFunction(params.timeouthandler)) {
+ params.timeouthandler(self.notifier.data(dataid));
self.notifier.off('click');
- for(var id in self.notifier.data()) {
- if($.isNumeric(id)) {
- clearTimeout(parseInt(id));
- }
- }
- self.notifier.text('').fadeOut().removeData();
- return;
+ self.notifier.removeData(dataid);
}
- self.notifier.text(params.message);
- self.notifier.fadeIn();
- self.notifier.on('click', function() { $(this).fadeOut();});
- var timer = setTimeout(function() {
- self.notifier.fadeOut();
- if(params.timeouthandler && $.isFunction(params.timeouthandler)) {
- params.timeouthandler(self.notifier.data(dataid));
- self.notifier.off('click');
- self.notifier.removeData(dataid);
+ }, params.timeout && $.isNumeric(params.timeout) ? parseInt(params.timeout)*1000 : 10000);
+ var dataid = timer.toString();
+ if(params.data) {
+ self.notifier.data(dataid, params.data);
+ }
+ if(params.clickhandler && $.isFunction(params.clickhandler)) {
+ self.notifier.on('click', function() {
+ if(!self || !self.notifier) {
+ var self = OC.Contacts;
+ self.notifier = $(this);
}
- }, params.timeout && $.isNumeric(params.timeout) ? parseInt(params.timeout)*1000 : 10000);
- var dataid = timer.toString();
- if(params.data) {
- self.notifier.data(dataid, params.data);
- }
- if(params.clickhandler && $.isFunction(params.clickhandler)) {
- self.notifier.on('click', function() {
- clearTimeout(timer);
- self.notifier.off('click');
- params.clickhandler(self.notifier.data(dataid));
- self.notifier.removeData(dataid);
- });
- }
- },
- notImplemented:function() {
- OC.dialogs.alert(t('contacts', 'Sorry, this functionality has not been implemented yet'), t('contacts', 'Not implemented'));
- },
- searchOSM:function(obj) {
- var adr = Contacts.UI.propertyContainerFor(obj).find('.adr').val();
- if(adr == undefined) {
- OC.dialogs.alert(t('contacts', 'Couldn\'t get a valid address.'), t('contacts', 'Error'));
- return;
- }
- // FIXME: I suck at regexp. /Tanghus
- var adrarr = adr.split(';');
- var adrstr = '';
- if(adrarr[2].trim() != '') {
- adrstr = adrstr + adrarr[2].trim() + ',';
- }
- if(adrarr[3].trim() != '') {
- adrstr = adrstr + adrarr[3].trim() + ',';
- }
- if(adrarr[4].trim() != '') {
- adrstr = adrstr + adrarr[4].trim() + ',';
- }
- if(adrarr[5].trim() != '') {
- adrstr = adrstr + adrarr[5].trim() + ',';
- }
- if(adrarr[6].trim() != '') {
- adrstr = adrstr + adrarr[6].trim();
+ clearTimeout(timer);
+ self.notifier.off('click');
+ params.clickhandler(self.notifier.data(dataid));
+ self.notifier.removeData(dataid);
+ });
+ }
+ },
+ notImplemented:function() {
+ OC.dialogs.alert(t('contacts', 'Sorry, this functionality has not been implemented yet'), t('contacts', 'Not implemented'));
+ },
+ searchOSM:function(obj) {
+ var adr = OC.Contacts.propertyContainerFor(obj).find('.adr').val();
+ if(adr == undefined) {
+ OC.dialogs.alert(t('contacts', 'Couldn\'t get a valid address.'), t('contacts', 'Error'));
+ return;
+ }
+ // FIXME: I suck at regexp. /Tanghus
+ var adrarr = adr.split(';');
+ var adrstr = '';
+ if(adrarr[2].trim() != '') {
+ adrstr = adrstr + adrarr[2].trim() + ',';
+ }
+ if(adrarr[3].trim() != '') {
+ adrstr = adrstr + adrarr[3].trim() + ',';
+ }
+ if(adrarr[4].trim() != '') {
+ adrstr = adrstr + adrarr[4].trim() + ',';
+ }
+ if(adrarr[5].trim() != '') {
+ adrstr = adrstr + adrarr[5].trim() + ',';
+ }
+ if(adrarr[6].trim() != '') {
+ adrstr = adrstr + adrarr[6].trim();
+ }
+ adrstr = encodeURIComponent(adrstr);
+ var uri = 'http://open.mapquestapi.com/nominatim/v1/search.php?q=' + adrstr + '&limit=10&addressdetails=1&polygon=1&zoom=';
+ var newWindow = window.open(uri,'_blank');
+ newWindow.focus();
+ },
+ mailTo:function(obj) {
+ var adr = OC.Contacts.propertyContainerFor($(obj)).find('input[type="email"]').val().trim();
+ if(adr == '') {
+ OC.dialogs.alert(t('contacts', 'Please enter an email address.'), t('contacts', 'Error'));
+ return;
+ }
+ window.location.href='mailto:' + adr;
+ },
+ propertyContainerFor:function(obj) {
+ return $(obj).parents('.propertycontainer').first();
+ },
+ checksumFor:function(obj) {
+ return $(obj).parents('.propertycontainer').first().data('checksum');
+ },
+ propertyTypeFor:function(obj) {
+ return $(obj).parents('.propertycontainer').first().data('element');
+ },
+ loading:function(obj, state) {
+ if(state) {
+ $(obj).addClass('loading');
+ } else {
+ $(obj).removeClass('loading');
+ }
+ },
+ showCardDAVUrl:function(username, bookname){
+ $('#carddav_url').val(totalurl + '/' + username + '/' + decodeURIComponent(bookname));
+ $('#carddav_url').show();
+ $('#carddav_url_close').show();
+ },
+ loadListHandlers:function() {
+ $('.propertylist li a.delete').unbind('click');
+ $('.propertylist li a.delete').unbind('keydown');
+ var deleteItem = function(obj) {
+ obj.tipsy('hide');
+ OC.Contacts.Card.deleteProperty(obj, 'list');
+ }
+ $('.propertylist li a.delete, .addresscard .delete').click(function() { deleteItem($(this)) });
+ $('.propertylist li a.delete, .addresscard .delete').keydown(function() { deleteItem($(this)) });
+ $('.propertylist li a.mail').click(function() { OC.Contacts.mailTo(this) });
+ $('.propertylist li a.mail').keydown(function() { OC.Contacts.mailTo(this) });
+ $('.addresscard .globe').click(function() { $(this).tipsy('hide');OC.Contacts.searchOSM(this); });
+ $('.addresscard .globe').keydown(function() { $(this).tipsy('hide');OC.Contacts.searchOSM(this); });
+ $('.addresscard .edit').click(function() { $(this).tipsy('hide');OC.Contacts.Card.editAddress(this, false); });
+ $('.addresscard .edit').keydown(function() { $(this).tipsy('hide');OC.Contacts.Card.editAddress(this, false); });
+ $('.addresscard,.propertylist li,.propertycontainer').hover(
+ function () {
+ $(this).find('.globe,.mail,.delete,.edit').animate({ opacity: 1.0 }, 200, function() {});
+ },
+ function () {
+ $(this).find('.globe,.mail,.delete,.edit').animate({ opacity: 0.1 }, 200, function() {});
}
- adrstr = encodeURIComponent(adrstr);
- var uri = 'http://open.mapquestapi.com/nominatim/v1/search.php?q=' + adrstr + '&limit=10&addressdetails=1&polygon=1&zoom=';
- var newWindow = window.open(uri,'_blank');
+ );
+ },
+ loadHandlers:function() {
+ var deleteItem = function(obj) {
+ obj.tipsy('hide');
+ OC.Contacts.Card.deleteProperty(obj, 'single');
+ }
+ var goToUrl = function(obj) {
+ var url = OC.Contacts.propertyContainerFor(obj).find('#url').val();
+ if(url != '') {
+ var newWindow = window.open(url,'_blank');
newWindow.focus();
- },
- mailTo:function(obj) {
- var adr = Contacts.UI.propertyContainerFor($(obj)).find('input[type="email"]').val().trim();
- if(adr == '') {
- OC.dialogs.alert(t('contacts', 'Please enter an email address.'), t('contacts', 'Error'));
- return;
}
- window.location.href='mailto:' + adr;
- },
- propertyContainerFor:function(obj) {
- return $(obj).parents('.propertycontainer').first();
- },
- checksumFor:function(obj) {
- return $(obj).parents('.propertycontainer').first().data('checksum');
- },
- propertyTypeFor:function(obj) {
- return $(obj).parents('.propertycontainer').first().data('element');
- },
- loading:function(obj, state) {
- if(state) {
- $(obj).addClass('loading');
- } else {
- $(obj).removeClass('loading');
+ }
+
+ $('#identityprops a.delete').click( function() { deleteItem($(this)) });
+ $('#identityprops a.delete').keydown( function() { deleteItem($(this)) });
+ $('#categories_value a.edit').click( function() { $(this).tipsy('hide');OCCategories.edit(); } );
+ $('#categories_value a.edit').keydown( function() { $(this).tipsy('hide');OCCategories.edit(); } );
+ $('#url_value a.globe').click( function() { $(this).tipsy('hide');goToUrl($(this)); } );
+ $('#url_value a.globe').keydown( function() { $(this).tipsy('hide');goToUrl($(this)); } );
+ $('#fn_select').combobox({
+ 'id': 'fn',
+ 'name': 'value',
+ 'classes': ['contacts_property', 'nonempty', 'huge', 'tip', 'float'],
+ 'attributes': {'placeholder': t('contacts', 'Enter name')},
+ 'title': t('contacts', 'Format custom, Short name, Full name, Reverse or Reverse with comma')});
+ $('#bday').datepicker({
+ dateFormat : 'dd-mm-yy'
+ });
+ // Style phone types
+ $('#phonelist').find('select.contacts_property').multiselect({
+ noneSelectedText: t('contacts', 'Select type'),
+ header: false,
+ selectedList: 4,
+ classes: 'typelist'
+ });
+ $('#edit_name').click(function(){OC.Contacts.Card.editName()});
+ $('#edit_name').keydown(function(){OC.Contacts.Card.editName()});
+
+ $('#phototools li a').click(function() {
+ $(this).tipsy('hide');
+ });
+ $('#contacts_details_photo_wrapper').hover(
+ function () {
+ $('#phototools').slideDown(200);
+ },
+ function () {
+ $('#phototools').slideUp(200);
}
- },
- showCardDAVUrl:function(username, bookname){
- $('#carddav_url').val(totalurl + '/' + username + '/' + decodeURIComponent(bookname));
- $('#carddav_url').show();
- $('#carddav_url_close').show();
- },
- loadListHandlers:function() {
- $('.propertylist li a.delete').unbind('click');
- $('.propertylist li a.delete').unbind('keydown');
- var deleteItem = function(obj) {
- obj.tipsy('hide');
- Contacts.UI.Card.deleteProperty(obj, 'list');
- }
- $('.propertylist li a.delete, .addresscard .delete').click(function() { deleteItem($(this)) });
- $('.propertylist li a.delete, .addresscard .delete').keydown(function() { deleteItem($(this)) });
- $('.propertylist li a.mail').click(function() { Contacts.UI.mailTo(this) });
- $('.propertylist li a.mail').keydown(function() { Contacts.UI.mailTo(this) });
- $('.addresscard .globe').click(function() { $(this).tipsy('hide');Contacts.UI.searchOSM(this); });
- $('.addresscard .globe').keydown(function() { $(this).tipsy('hide');Contacts.UI.searchOSM(this); });
- $('.addresscard .edit').click(function() { $(this).tipsy('hide');Contacts.UI.Card.editAddress(this, false); });
- $('.addresscard .edit').keydown(function() { $(this).tipsy('hide');Contacts.UI.Card.editAddress(this, false); });
- $('.addresscard,.propertylist li,.propertycontainer').hover(
- function () {
- $(this).find('.globe,.mail,.delete,.edit').animate({ opacity: 1.0 }, 200, function() {});
- },
- function () {
- $(this).find('.globe,.mail,.delete,.edit').animate({ opacity: 0.1 }, 200, function() {});
- }
- );
- },
- loadHandlers:function() {
- var deleteItem = function(obj) {
- obj.tipsy('hide');
- Contacts.UI.Card.deleteProperty(obj, 'single');
+ );
+ $('#phototools').hover(
+ function () {
+ $(this).removeClass('transparent');
+ },
+ function () {
+ $(this).addClass('transparent');
}
-
- var goToUrl = function(obj) {
- var url = Contacts.UI.propertyContainerFor(obj).find('#url').val();
- if(url != '') {
- var newWindow = window.open(url,'_blank');
- newWindow.focus();
+ );
+ $('#phototools .upload').click(function() {
+ $('#file_upload_start').trigger('click');
+ });
+ $('#phototools .cloud').click(function() {
+ OC.dialogs.filepicker(t('contacts', 'Select photo'), OC.Contacts.Card.cloudPhotoSelected, false, 'image', true);
+ });
+ /* Initialize the photo edit dialog */
+ $('#edit_photo_dialog').dialog({
+ autoOpen: false, modal: true, height: 'auto', width: 'auto'
+ });
+ $('#edit_photo_dialog' ).dialog( 'option', 'buttons', [
+ {
+ text: "Ok",
+ click: function() {
+ OC.Contacts.Card.savePhoto(this);
+ $(this).dialog('close');
}
+ },
+ {
+ text: "Cancel",
+ click: function() { $(this).dialog('close'); }
}
+ ] );
- $('#identityprops a.delete').click( function() { deleteItem($(this)) });
- $('#identityprops a.delete').keydown( function() { deleteItem($(this)) });
- $('#categories_value a.edit').click( function() { $(this).tipsy('hide');OCCategories.edit(); } );
- $('#categories_value a.edit').keydown( function() { $(this).tipsy('hide');OCCategories.edit(); } );
- $('#url_value a.globe').click( function() { $(this).tipsy('hide');goToUrl($(this)); } );
- $('#url_value a.globe').keydown( function() { $(this).tipsy('hide');goToUrl($(this)); } );
- $('#fn_select').combobox({
- 'id': 'fn',
- 'name': 'value',
- 'classes': ['contacts_property', 'nonempty', 'huge', 'tip', 'float'],
- 'attributes': {'placeholder': t('contacts', 'Enter name')},
- 'title': t('contacts', 'Format custom, Short name, Full name, Reverse or Reverse with comma')});
- $('#bday').datepicker({
- dateFormat : 'dd-mm-yy'
- });
- // Style phone types
- $('#phonelist').find('select.contacts_property').multiselect({
- noneSelectedText: t('contacts', 'Select type'),
- header: false,
- selectedList: 4,
- classes: 'typelist'
- });
- $('#edit_name').click(function(){Contacts.UI.Card.editName()});
- $('#edit_name').keydown(function(){Contacts.UI.Card.editName()});
+ // Name has changed. Update it and reorder.
+ $('#fn').change(function(){
+ var name = $('#fn').val().strip_tags();
+ var item = $('.contacts li[data-id="'+OC.Contacts.Card.id+'"]').detach();
+ $(item).find('a').html(name);
+ OC.Contacts.Card.fn = name;
+ OC.Contacts.Contacts.insertContact({contact:item});
+ OC.Contacts.Contacts.scrollTo(OC.Contacts.Card.id);
+ });
- $('#phototools li a').click(function() {
- $(this).tipsy('hide');
- });
- $('#contacts_details_photo_wrapper').hover(
- function () {
- $('#phototools').slideDown(200);
- },
- function () {
- $('#phototools').slideUp(200);
- }
- );
- $('#phototools').hover(
- function () {
- $(this).removeClass('transparent');
- },
- function () {
- $(this).addClass('transparent');
- }
- );
- $('#phototools .upload').click(function() {
- $('#file_upload_start').trigger('click');
- });
- $('#phototools .cloud').click(function() {
- OC.dialogs.filepicker(t('contacts', 'Select photo'), Contacts.UI.Card.cloudPhotoSelected, false, 'image', true);
- });
- /* Initialize the photo edit dialog */
- $('#edit_photo_dialog').dialog({
- autoOpen: false, modal: true, height: 'auto', width: 'auto'
- });
- $('#edit_photo_dialog' ).dialog( 'option', 'buttons', [
- {
- text: "Ok",
- click: function() {
- Contacts.UI.Card.savePhoto(this);
- $(this).dialog('close');
- }
- },
- {
- text: "Cancel",
- click: function() { $(this).dialog('close'); }
- }
- ] );
-
- // Name has changed. Update it and reorder.
- $('#fn').change(function(){
- var name = $('#fn').val().strip_tags();
- var item = $('.contacts li[data-id="'+Contacts.UI.Card.id+'"]').detach();
- $(item).find('a').html(name);
- Contacts.UI.Card.fn = name;
- Contacts.UI.Contacts.insertContact({contact:item});
- Contacts.UI.Contacts.scrollTo(Contacts.UI.Card.id);
- });
-
- $('#contacts_deletecard').click( function() { Contacts.UI.Card.delayedDelete();return false;} );
- $('#contacts_deletecard').keydown( function(event) {
- if(event.which == 13 || event.which == 32) {
- Contacts.UI.Card.delayedDelete();
- }
- return false;
- });
+ $('#contacts_deletecard').click( function() { OC.Contacts.Card.delayedDelete();return false;} );
+ $('#contacts_deletecard').keydown( function(event) {
+ if(event.which == 13 || event.which == 32) {
+ OC.Contacts.Card.delayedDelete();
+ }
+ return false;
+ });
- $('#contacts_downloadcard').click( function() { Contacts.UI.Card.doExport();return false;} );
- $('#contacts_downloadcard').keydown( function(event) {
- if(event.which == 13 || event.which == 32) {
- Contacts.UI.Card.doExport();
- }
- return false;
- });
+ $('#contacts_downloadcard').click( function() { OC.Contacts.Card.doExport();return false;} );
+ $('#contacts_downloadcard').keydown( function(event) {
+ if(event.which == 13 || event.which == 32) {
+ OC.Contacts.Card.doExport();
+ }
+ return false;
+ });
- // Profile picture upload handling
- // New profile picture selected
- $('#file_upload_start').change(function(){
- Contacts.UI.Card.uploadPhoto(this.files);
- });
- $('#contacts_details_photo_wrapper').bind('dragover',function(event){
- $(event.target).addClass('droppable');
- event.stopPropagation();
- event.preventDefault();
- });
- $('#contacts_details_photo_wrapper').bind('dragleave',function(event){
- $(event.target).removeClass('droppable');
- //event.stopPropagation();
- //event.preventDefault();
- });
- $('#contacts_details_photo_wrapper').bind('drop',function(event){
- event.stopPropagation();
- event.preventDefault();
- $(event.target).removeClass('droppable');
- $.fileUpload(event.originalEvent.dataTransfer.files);
- });
+ // Profile picture upload handling
+ // New profile picture selected
+ $('#file_upload_start').change(function(){
+ OC.Contacts.Card.uploadPhoto(this.files);
+ });
+ $('#contacts_details_photo_wrapper').bind('dragover',function(event){
+ $(event.target).addClass('droppable');
+ event.stopPropagation();
+ event.preventDefault();
+ });
+ $('#contacts_details_photo_wrapper').bind('dragleave',function(event){
+ $(event.target).removeClass('droppable');
+ });
+ $('#contacts_details_photo_wrapper').bind('drop',function(event){
+ event.stopPropagation();
+ event.preventDefault();
+ $(event.target).removeClass('droppable');
+ $.fileUpload(event.originalEvent.dataTransfer.files);
+ });
- $('#categories').multiple_autocomplete({source: categories});
- $('#contacts_deletecard').tipsy({gravity: 'ne'});
- $('#contacts_downloadcard').tipsy({gravity: 'ne'});
- $('#contacts_propertymenu_button').tipsy();
- $('#contacts_newcontact, #contacts_import, #chooseaddressbook').tipsy({gravity: 'sw'});
+ $('#categories').multiple_autocomplete({source: categories});
+ $('#contacts_deletecard').tipsy({gravity: 'ne'});
+ $('#contacts_downloadcard').tipsy({gravity: 'ne'});
+ $('#contacts_propertymenu_button').tipsy();
+ $('#contacts_newcontact, #contacts_import, #bottomcontrols .settings').tipsy({gravity: 'sw'});
- $('body').click(function(e){
- if(!$(e.target).is('#contacts_propertymenu_button')) {
- $('#contacts_propertymenu_dropdown').hide();
- }
- });
- function propertyMenu(){
- var menu = $('#contacts_propertymenu_dropdown');
- if(menu.is(':hidden')) {
- menu.show();
- menu.find('li').first().focus();
- } else {
- menu.hide();
- }
- }
- $('#contacts_propertymenu_button').click(propertyMenu);
- $('#contacts_propertymenu_button').keydown(propertyMenu);
- function propertyMenuItem(){
- var type = $(this).data('type');
- Contacts.UI.Card.addProperty(type);
+ $('body').click(function(e){
+ if(!$(e.target).is('#contacts_propertymenu_button')) {
$('#contacts_propertymenu_dropdown').hide();
}
- $('#contacts_propertymenu_dropdown a').click(propertyMenuItem);
- $('#contacts_propertymenu_dropdown a').keydown(propertyMenuItem);
- },
- Card:{
- update:function(params) { // params {cid:int, aid:int}
- if(!params) { params = {}; }
- $('#contacts li,#contacts h3').removeClass('active');
- console.log('Card, cid: ' + params.cid + ' aid: ' + params.aid);
- var newid, bookid, firstitem;
- if(!parseInt(params.cid) && !parseInt(params.aid)) {
- firstitem = $('#contacts ul').first().find('li:first-child');
- if(firstitem.length > 0) {
- newid = parseInt(firstitem.data('id'));
- bookid = parseInt(firstitem.data('bookid'));
- }
- } else if(!parseInt(params.cid) && parseInt(params.aid)) {
- bookid = parseInt(params.aid);
- newid = parseInt($('#contacts').find('li[data-bookid="'+bookid+'"]').first().data('id'));
- } else if(parseInt(params.cid) && !parseInt(params.aid)) {
- newid = parseInt(params.cid);
- var listitem = Contacts.UI.Contacts.getContact(newid); //$('#contacts li[data-id="'+newid+'"]');
- console.log('Is contact in list? ' + listitem.length);
- if(listitem.length) {
- //bookid = parseInt($('#contacts li[data-id="'+newid+'"]').data('bookid'));
- bookid = parseInt(Contacts.UI.Contacts.getContact(newid).data('bookid'));
- } else { // contact isn't in list yet.
- bookid = 'unknown';
- }
- } else {
- newid = parseInt(params.cid);
- bookid = parseInt(params.aid);
- }
- if(!bookid || !newid) {
- bookid = parseInt($('#contacts h3').first().data('id'));
- newid = parseInt($('#contacts').find('li[data-bookid="'+bookid+'"]').first().data('id'));
- }
- console.log('newid: ' + newid + ' bookid: ' +bookid);
- var localLoadContact = function(newid, bookid) {
- if($('.contacts li').length > 0) {
- $.getJSON(OC.filePath('contacts', 'ajax', 'contactdetails.php'),{'id':newid},function(jsondata){
- if(jsondata.status == 'success'){
- if(bookid == 'unknown') {
- bookid = jsondata.data.addressbookid;
- var contact = Contacts.UI.Contacts.insertContact({
- contactlist:$('#contacts ul[data-id="'+bookid+'"]'),
- data:jsondata.data
- });
- }
- $('#contacts li[data-id="'+newid+'"],#contacts h3[data-id="'+bookid+'"]').addClass('active');
- $('#contacts ul[data-id="'+bookid+'"]').slideDown(300);
- Contacts.UI.Card.loadContact(jsondata.data, bookid);
- Contacts.UI.Contacts.scrollTo(newid);
- } else {
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
+ });
+ function propertyMenu(){
+ var menu = $('#contacts_propertymenu_dropdown');
+ if(menu.is(':hidden')) {
+ menu.show();
+ menu.find('li').first().focus();
+ } else {
+ menu.hide();
+ }
+ }
+ $('#contacts_propertymenu_button').click(propertyMenu);
+ $('#contacts_propertymenu_button').keydown(propertyMenu);
+ function propertyMenuItem(){
+ var type = $(this).data('type');
+ OC.Contacts.Card.addProperty(type);
+ $('#contacts_propertymenu_dropdown').hide();
+ }
+ $('#contacts_propertymenu_dropdown a').click(propertyMenuItem);
+ $('#contacts_propertymenu_dropdown a').keydown(propertyMenuItem);
+ },
+ Card:{
+ update:function(params) { // params {cid:int, aid:int}
+ if(!params) { params = {}; }
+ $('#contacts li,#contacts h3').removeClass('active');
+ console.log('Card, cid: ' + params.cid + ' aid: ' + params.aid);
+ var newid, bookid, firstitem;
+ if(!parseInt(params.cid) && !parseInt(params.aid)) {
+ firstitem = $('#contacts ul').find('li:first-child');
+ if(firstitem.length > 0) {
+ if(firstitem.length > 1) {
+ firstitem = firstitem.first();
}
+ newid = parseInt(firstitem.data('id'));
+ bookid = parseInt(firstitem.data('bookid'));
+ }
+ } else if(!parseInt(params.cid) && parseInt(params.aid)) {
+ bookid = parseInt(params.aid);
+ newid = parseInt($('#contacts').find('li[data-bookid="'+bookid+'"]').first().data('id'));
+ } else if(parseInt(params.cid) && !parseInt(params.aid)) {
+ newid = parseInt(params.cid);
+ var listitem = OC.Contacts.Contacts.getContact(newid); //$('#contacts li[data-id="'+newid+'"]');
+ console.log('Is contact in list? ' + listitem.length);
+ if(listitem.length) {
+ //bookid = parseInt($('#contacts li[data-id="'+newid+'"]').data('bookid'));
+ bookid = parseInt(OC.Contacts.Contacts.getContact(newid).data('bookid'));
+ } else { // contact isn't in list yet.
+ bookid = 'unknown';
}
-
- // Make sure proper DOM is loaded.
- if(!$('#card').length && newid) {
- console.log('Loading card DOM');
- $.getJSON(OC.filePath('contacts', 'ajax', 'loadcard.php'),{requesttoken:requesttoken},function(jsondata){
- if(jsondata.status == 'success'){
- $('#rightcontent').html(jsondata.data.page).ready(function() {
- Contacts.UI.loadHandlers();
- localLoadContact(newid, bookid);
- });
- } else {
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- }
- else if(!newid) {
- console.log('Loading intro');
- // load intro page
- $.getJSON(OC.filePath('contacts', 'ajax', 'loadintro.php'),{},function(jsondata){
+ } else {
+ newid = parseInt(params.cid);
+ bookid = parseInt(params.aid);
+ }
+ if(!bookid || !newid) {
+ bookid = parseInt($('#contacts h3').first().data('id'));
+ newid = parseInt($('#contacts').find('li[data-bookid="'+bookid+'"]').first().data('id'));
+ }
+ console.log('newid: ' + newid + ' bookid: ' +bookid);
+ var localLoadContact = function(newid, bookid) {
+ if($('.contacts li').length > 0) {
+ $.getJSON(OC.filePath('contacts', 'ajax', 'contact/details.php'),{'id':newid},function(jsondata){
if(jsondata.status == 'success'){
- id = '';
- $('#rightcontent').data('id','');
- $('#rightcontent').html(jsondata.data.page);
+ if(bookid == 'unknown') {
+ bookid = jsondata.data.addressbookid;
+ var contact = OC.Contacts.Contacts.insertContact({
+ contactlist:$('#contacts ul[data-id="'+bookid+'"]'),
+ data:jsondata.data
+ });
+ }
+ $('#contacts li[data-id="'+newid+'"],#contacts h3[data-id="'+bookid+'"]').addClass('active');
+ $('#contacts ul[data-id="'+bookid+'"]').slideDown(300);
+ OC.Contacts.Card.loadContact(jsondata.data, bookid);
+ OC.Contacts.Contacts.scrollTo(newid);
} else {
OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
}
});
}
- else {
- localLoadContact(newid, bookid);
- }
- },
- doExport:function() {
- document.location.href = OC.linkTo('contacts', 'export.php') + '?contactid=' + this.id;
- },
- editNew:function(){ // add a new contact
- this.id = ''; this.fn = ''; this.fullname = ''; this.givname = ''; this.famname = ''; this.addname = ''; this.honpre = ''; this.honsuf = '';
- //Contacts.UI.Card.add(t('contacts', 'Contact')+';'+t('contacts', 'New')+';;;', t('contacts', 'New Contact'), '', true);
- Contacts.UI.Card.add(';;;;;', '', '', true);
- return false;
- },
- add:function(n, fn, aid, isnew){ // add a new contact
- console.log('Adding ' + fn);
- aid = aid?aid:$('#contacts h3.active').first().data('id');
- var localAddcontact = function(n, fn, aid, isnew) {
- $.post(OC.filePath('contacts', 'ajax', 'addcontact.php'), { n: n, fn: fn, aid: aid, isnew: isnew },
- function(jsondata) {
- if (jsondata.status == 'success'){
- $('#rightcontent').data('id',jsondata.data.id);
- var id = jsondata.data.id;
- var aid = jsondata.data.aid;
- $.getJSON(OC.filePath('contacts', 'ajax', 'contactdetails.php'),{'id':id},function(jsondata){
- if(jsondata.status == 'success'){
- Contacts.UI.Card.loadContact(jsondata.data, aid);
- var item = Contacts.UI.Contacts.insertContact({data:jsondata.data});
- if(isnew) { // add some default properties
- Contacts.UI.Card.addProperty('EMAIL');
- Contacts.UI.Card.addProperty('TEL');
- $('#fn').focus();
- }
- }
- else{
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- $('#contact_identity').show();
- $('#actionbar').show();
- }
- else{
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- }
-
- if(!$('#card').length) {
- console.log('Loading card DOM');
- $.getJSON(OC.filePath('contacts', 'ajax', 'loadcard.php'),{'requesttoken': requesttoken},function(jsondata){
- if(jsondata.status == 'success'){
- $('#rightcontent').html(jsondata.data.page).ready(function() {
- Contacts.UI.loadHandlers();
- localAddcontact(n, fn, aid, isnew);
- });
- } else{
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- } else {
- localAddcontact(n, fn, aid, isnew);
- }
- },
- delayedDelete:function() {
- /* TODO:
- $(window).unload(function() {
- deleteFilesInQueue();
- });
- */
- $('#contacts_deletecard').tipsy('hide');
- var newid = '', bookid;
- var curlistitem = Contacts.UI.Contacts.getContact(this.id);
- curlistitem.removeClass('active');
- var newlistitem = curlistitem.prev('li');
- if(!newlistitem) {
- newlistitem = curlistitem.next('li');
- }
- curlistitem.detach();
- if($(newlistitem).is('li')) {
- newid = newlistitem.data('id');
- bookid = newlistitem.data('bookid');
- }
- $('#rightcontent').data('id', newid);
-
- Contacts.UI.Contacts.deletionQueue.push(this.id);
- if(!window.onbeforeunload) {
- window.onbeforeunload = Contacts.UI.Contacts.warnNotDeleted;
- }
-
- with(this) {
- delete id; delete fn; delete fullname; delete shortname; delete famname;
- delete givname; delete addname; delete honpre; delete honsuf; delete data;
- }
+ }
- if($('.contacts li').length > 0) {
- Contacts.UI.Card.update({cid:newid, aid:bookid});
- } else {
- // load intro page
- $.getJSON(OC.filePath('contacts', 'ajax', 'loadintro.php'),{},function(jsondata){
- if(jsondata.status == 'success'){
- id = '';
- $('#rightcontent').html(jsondata.data.page).removeData('id');
- }
- else{
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- }
- Contacts.UI.notify({
- data:curlistitem,
- message:t('contacts','Click to undo deletion of "') + curlistitem.find('a').text() + '"',
- timeouthandler:function(contact) {
- Contacts.UI.Card.doDelete(contact.data('id'), true);
- delete contact;
- },
- clickhandler:function(contact) {
- Contacts.UI.Contacts.insertContact({contact:contact});
- Contacts.UI.notify({message:t('contacts', 'Cancelled deletion of: "') + curlistitem.find('a').text() + '"'});
+ // Make sure proper DOM is loaded.
+ if(!$('#card').length && newid) {
+ console.log('Loading card DOM');
+ $.getJSON(OC.filePath('contacts', 'ajax', 'loadcard.php'),{requesttoken:requesttoken},function(jsondata){
+ if(jsondata.status == 'success'){
+ $('#rightcontent').html(jsondata.data.page).ready(function() {
+ OC.Contacts.loadHandlers();
+ localLoadContact(newid, bookid);
+ });
+ } else {
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
}
});
- },
- doDelete:function(id, removeFromQueue) {
- if(Contacts.UI.Contacts.deletionQueue.indexOf(id) == -1 && removeFromQueue) {
- return;
- }
- $.post(OC.filePath('contacts', 'ajax', 'deletecard.php'),{'id':id},function(jsondata) {
- if(jsondata.status == 'error'){
+ } else if(!newid) {
+ console.log('Loading intro');
+ // load intro page
+ $.getJSON(OC.filePath('contacts', 'ajax', 'loadintro.php'),{},function(jsondata){
+ if(jsondata.status == 'success'){
+ id = '';
+ $('#rightcontent').data('id','');
+ $('#rightcontent').html(jsondata.data.page);
+ } else {
OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
}
- if(removeFromQueue) {
- Contacts.UI.Contacts.deletionQueue.splice(Contacts.UI.Contacts.deletionQueue.indexOf(id), 1);
+ });
+ }
+ else {
+ localLoadContact(newid, bookid);
+ }
+ },
+ doExport:function() {
+ document.location.href = OC.linkTo('contacts', 'export.php') + '?contactid=' + this.id;
+ },
+ editNew:function(){ // add a new contact
+ this.id = ''; this.fn = ''; this.fullname = ''; this.givname = ''; this.famname = ''; this.addname = ''; this.honpre = ''; this.honsuf = '';
+ OC.Contacts.Card.add(';;;;;', '', '', true);
+ return false;
+ },
+ add:function(n, fn, aid, isnew){ // add a new contact
+ console.log('Adding ' + fn);
+ aid = aid?aid:$('#contacts h3.active').first().data('id');
+ var localAddcontact = function(n, fn, aid, isnew) {
+ $.post(OC.filePath('contacts', 'ajax', 'contact/add.php'), { n: n, fn: fn, aid: aid, isnew: isnew },
+ function(jsondata) {
+ if (jsondata.status == 'success'){
+ $('#rightcontent').data('id',jsondata.data.id);
+ var id = jsondata.data.id;
+ var aid = jsondata.data.aid;
+ $.getJSON(OC.filePath('contacts', 'ajax', 'contact/details.php'),{'id':id},function(jsondata){
+ if(jsondata.status == 'success'){
+ OC.Contacts.Card.loadContact(jsondata.data, aid);
+ var item = OC.Contacts.Contacts.insertContact({data:jsondata.data});
+ if(isnew) { // add some default properties
+ OC.Contacts.Card.addProperty('EMAIL');
+ OC.Contacts.Card.addProperty('TEL');
+ $('#fn').focus();
+ }
+ }
+ else{
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
+ }
+ });
+ $('#contact_identity').show();
+ $('#actionbar').show();
}
- if(Contacts.UI.Contacts.deletionQueue.length == 0) {
- window.onbeforeunload = null;
+ else{
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
}
});
- },
- loadContact:function(jsondata, bookid){
- this.data = jsondata;
- this.id = this.data.id;
- this.bookid = bookid;
- $('#rightcontent').data('id',this.id);
- this.populateNameFields();
- this.loadPhoto();
- this.loadMails();
- this.loadPhones();
- this.loadAddresses();
- this.loadSingleProperties();
- Contacts.UI.loadListHandlers();
- var note = $('#note');
- if(this.data.NOTE) {
- note.data('checksum', this.data.NOTE[0]['checksum']);
- var textarea = note.find('textarea');
- var txt = this.data.NOTE[0]['value'];
- var nheight = txt.split('\n').length > 4 ? txt.split('\n').length+2 : 5;
- textarea.css('min-height', nheight+'em');
- textarea.attr('rows', nheight);
- textarea.val(txt);
- note.show();
- textarea.expandingTextarea();
- $('#contacts_propertymenu_dropdown a[data-type="NOTE"]').parent().hide();
- } else {
- note.removeData('checksum');
- note.find('textarea').val('');
- note.hide();
- $('#contacts_propertymenu_dropdown a[data-type="NOTE"]').parent().show();
- }
- },
- loadSingleProperties:function() {
- var props = ['BDAY', 'NICKNAME', 'ORG', 'URL', 'CATEGORIES'];
- // Clear all elements
- $('#ident .propertycontainer').each(function(){
- if(props.indexOf($(this).data('element')) > -1) {
- $(this).data('checksum', '');
- $(this).find('input').val('');
- $(this).hide();
- $(this).prev().hide();
+ }
+
+ if(!$('#card').length) {
+ console.log('Loading card DOM');
+ $.getJSON(OC.filePath('contacts', 'ajax', 'loadcard.php'),{'requesttoken': requesttoken},function(jsondata){
+ if(jsondata.status == 'success'){
+ $('#rightcontent').html(jsondata.data.page).ready(function() {
+ OC.Contacts.loadHandlers();
+ localAddcontact(n, fn, aid, isnew);
+ });
+ } else{
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
}
});
- for(var prop in props) {
- var propname = props[prop];
- if(this.data[propname] != undefined) {
- $('#contacts_propertymenu_dropdown a[data-type="'+propname+'"]').parent().hide();
- var property = this.data[propname][0];
- var value = property['value'], checksum = property['checksum'];
+ } else {
+ localAddcontact(n, fn, aid, isnew);
+ }
+ },
+ delayedDelete:function() {
+ $('#contacts_deletecard').tipsy('hide');
+ var newid = '', bookid;
+ var curlistitem = OC.Contacts.Contacts.getContact(this.id);
+ curlistitem.removeClass('active');
+ var newlistitem = curlistitem.prev('li');
+ if(!newlistitem) {
+ newlistitem = curlistitem.next('li');
+ }
+ curlistitem.detach();
+ if($(newlistitem).is('li')) {
+ newid = newlistitem.data('id');
+ bookid = newlistitem.data('bookid');
+ }
+ $('#rightcontent').data('id', newid);
- if(propname == 'BDAY') {
- var val = $.datepicker.parseDate('yy-mm-dd', value.substring(0, 10));
- value = $.datepicker.formatDate('dd-mm-yy', val);
- }
- var identcontainer = $('#contact_identity');
- identcontainer.find('#'+propname.toLowerCase()).val(value);
- identcontainer.find('#'+propname.toLowerCase()+'_value').data('checksum', checksum);
- identcontainer.find('#'+propname.toLowerCase()+'_label').show();
- identcontainer.find('#'+propname.toLowerCase()+'_value').show();
+ OC.Contacts.Contacts.deletionQueue.push(this.id);
+ if(!window.onbeforeunload) {
+ window.onbeforeunload = OC.Contacts.Contacts.warnNotDeleted;
+ }
+
+ with(this) {
+ delete id; delete fn; delete fullname; delete shortname; delete famname;
+ delete givname; delete addname; delete honpre; delete honsuf; delete data;
+ }
+
+ if($('.contacts li').length > 0) {
+ OC.Contacts.Card.update({cid:newid, aid:bookid});
+ } else {
+ // load intro page
+ $.getJSON(OC.filePath('contacts', 'ajax', 'loadintro.php'),{},function(jsondata){
+ if(jsondata.status == 'success'){
+ id = '';
+ $('#rightcontent').html(jsondata.data.page).removeData('id');
} else {
- $('#contacts_propertymenu_dropdown a[data-type="'+propname+'"]').parent().show();
- }
- }
- },
- populateNameFields:function() {
- var props = ['FN', 'N'];
- // Clear all elements
- $('#ident .propertycontainer').each(function(){
- if(props.indexOf($(this).data('element')) > -1) {
- $(this).data('checksum', '');
- $(this).find('input').val('');
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
}
});
-
- with(this) {
- delete fn; delete fullname; delete givname; delete famname;
- delete addname; delete honpre; delete honsuf;
- }
-
- if(this.data.FN) {
- this.fn = this.data.FN[0]['value'];
- }
- else {
- this.fn = '';
- }
- if(this.data.N == undefined) {
- narray = [this.fn,'','','','']; // Checking for non-existing 'N' property :-P
- } else {
- narray = this.data.N[0]['value'];
+ }
+ OC.Contacts.notify({
+ data:curlistitem,
+ message:t('contacts','Click to undo deletion of "') + curlistitem.find('a').text() + '"',
+ timeouthandler:function(contact) {
+ OC.Contacts.Card.doDelete(contact.data('id'), true);
+ delete contact;
+ },
+ clickhandler:function(contact) {
+ OC.Contacts.Contacts.insertContact({contact:contact});
+ OC.Contacts.notify({message:t('contacts', 'Cancelled deletion of: "') + curlistitem.find('a').text() + '"'});
+ window.onbeforeunload = null;
}
- this.famname = narray[0] || '';
- this.givname = narray[1] || '';
- this.addname = narray[2] || '';
- this.honpre = narray[3] || '';
- this.honsuf = narray[4] || '';
- if(this.honpre.length > 0) {
- this.fullname += this.honpre + ' ';
+ });
+ },
+ doDelete:function(id, removeFromQueue) {
+ if(OC.Contacts.Contacts.deletionQueue.indexOf(id) == -1 && removeFromQueue) {
+ return;
+ }
+ $.post(OC.filePath('contacts', 'ajax', 'contact/delete.php'),{'id':id},function(jsondata) {
+ if(jsondata.status == 'error'){
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
}
- if(this.givname.length > 0) {
- this.fullname += ' ' + this.givname;
+ if(removeFromQueue) {
+ OC.Contacts.Contacts.deletionQueue.splice(OC.Contacts.Contacts.deletionQueue.indexOf(id), 1);
}
- if(this.addname.length > 0) {
- this.fullname += ' ' + this.addname;
+ if(OC.Contacts.Contacts.deletionQueue.length == 0) {
+ window.onbeforeunload = null;
}
- if(this.famname.length > 0) {
- this.fullname += ' ' + this.famname;
+ });
+ },
+ loadContact:function(jsondata, bookid){
+ this.data = jsondata;
+ this.id = this.data.id;
+ this.bookid = bookid;
+ $('#rightcontent').data('id',this.id);
+ this.populateNameFields();
+ this.loadPhoto();
+ this.loadMails();
+ this.loadPhones();
+ this.loadAddresses();
+ this.loadSingleProperties();
+ OC.Contacts.loadListHandlers();
+ var note = $('#note');
+ if(this.data.NOTE) {
+ note.data('checksum', this.data.NOTE[0]['checksum']);
+ var textarea = note.find('textarea');
+ var txt = this.data.NOTE[0]['value'];
+ var nheight = txt.split('\n').length > 4 ? txt.split('\n').length+2 : 5;
+ textarea.css('min-height', nheight+'em');
+ textarea.attr('rows', nheight);
+ textarea.val(txt);
+ note.show();
+ textarea.expandingTextarea();
+ $('#contacts_propertymenu_dropdown a[data-type="NOTE"]').parent().hide();
+ } else {
+ note.removeData('checksum');
+ note.find('textarea').val('');
+ note.hide();
+ $('#contacts_propertymenu_dropdown a[data-type="NOTE"]').parent().show();
+ }
+ },
+ loadSingleProperties:function() {
+ var props = ['BDAY', 'NICKNAME', 'ORG', 'URL', 'CATEGORIES'];
+ // Clear all elements
+ $('#ident .propertycontainer').each(function(){
+ if(props.indexOf($(this).data('element')) > -1) {
+ $(this).data('checksum', '');
+ $(this).find('input').val('');
+ $(this).hide();
+ $(this).prev().hide();
}
- if(this.honsuf.length > 0) {
- this.fullname += ', ' + this.honsuf;
+ });
+ for(var prop in props) {
+ var propname = props[prop];
+ if(this.data[propname] != undefined) {
+ $('#contacts_propertymenu_dropdown a[data-type="'+propname+'"]').parent().hide();
+ var property = this.data[propname][0];
+ var value = property['value'], checksum = property['checksum'];
+
+ if(propname == 'BDAY') {
+ var val = $.datepicker.parseDate('yy-mm-dd', value.substring(0, 10));
+ value = $.datepicker.formatDate('dd-mm-yy', val);
+ }
+ var identcontainer = $('#contact_identity');
+ identcontainer.find('#'+propname.toLowerCase()).val(value);
+ identcontainer.find('#'+propname.toLowerCase()+'_value').data('checksum', checksum);
+ identcontainer.find('#'+propname.toLowerCase()+'_label').show();
+ identcontainer.find('#'+propname.toLowerCase()+'_value').show();
+ } else {
+ $('#contacts_propertymenu_dropdown a[data-type="'+propname+'"]').parent().show();
}
- $('#n').val(narray.join(';'));
- $('#fn_select option').remove();
- var names = [this.fn, this.fullname, this.givname + ' ' + this.famname, this.famname + ' ' + this.givname, this.famname + ', ' + this.givname];
- if(this.data.ORG) {
- names[names.length]=this.data.ORG[0].value;
+ }
+ },
+ populateNameFields:function() {
+ var props = ['FN', 'N'];
+ // Clear all elements
+ $('#ident .propertycontainer').each(function(){
+ if(props.indexOf($(this).data('element')) > -1) {
+ $(this).data('checksum', '');
+ $(this).find('input').val('');
}
- $.each(names, function(key, value) {
- $('#fn_select')
- .append($('<option></option>')
- .text(value));
- });
+ });
+
+ with(this) {
+ delete fn; delete fullname; delete givname; delete famname;
+ delete addname; delete honpre; delete honsuf;
+ }
+
+ if(this.data.FN) {
+ this.fn = this.data.FN[0]['value'];
+ }
+ else {
+ this.fn = '';
+ }
+ if(this.data.N == undefined) {
+ narray = [this.fn,'','','','']; // Checking for non-existing 'N' property :-P
+ } else {
+ narray = this.data.N[0]['value'];
+ }
+ this.famname = narray[0] || '';
+ this.givname = narray[1] || '';
+ this.addname = narray[2] || '';
+ this.honpre = narray[3] || '';
+ this.honsuf = narray[4] || '';
+ if(this.honpre.length > 0) {
+ this.fullname += this.honpre + ' ';
+ }
+ if(this.givname.length > 0) {
+ this.fullname += ' ' + this.givname;
+ }
+ if(this.addname.length > 0) {
+ this.fullname += ' ' + this.addname;
+ }
+ if(this.famname.length > 0) {
+ this.fullname += ' ' + this.famname;
+ }
+ if(this.honsuf.length > 0) {
+ this.fullname += ', ' + this.honsuf;
+ }
+ $('#n').val(narray.join(';'));
+ $('#fn_select option').remove();
+ var names = [this.fn, this.fullname, this.givname + ' ' + this.famname, this.famname + ' ' + this.givname, this.famname + ', ' + this.givname];
+ if(this.data.ORG) {
+ names[names.length]=this.data.ORG[0].value;
+ }
+ $.each(names, function(key, value) {
+ $('#fn_select')
+ .append($('<option></option>')
+ .text(value));
+ });
$('#fn_select').combobox('value', this.fn);
$('#contact_identity').find('*[data-element="N"]').data('checksum', this.data.N[0]['checksum']);
if(this.data.FN) {
$('#contact_identity').find('*[data-element="FN"]').data('checksum', this.data.FN[0]['checksum']);
}
$('#contact_identity').show();
- },
- hasCategory:function(category) {
- if(this.data.CATEGORIES) {
- var categories = this.data.CATEGORIES[0]['value'].split(/,\s*/);
- for(var c in categories) {
- var cat = this.data.CATEGORIES[0]['value'][c];
- if(typeof cat === 'string' && (cat.toUpperCase() === category.toUpperCase())) {
- return true;
- }
+ },
+ hasCategory:function(category) {
+ if(this.data.CATEGORIES) {
+ var categories = this.data.CATEGORIES[0]['value'].split(/,\s*/);
+ for(var c in categories) {
+ var cat = this.data.CATEGORIES[0]['value'][c];
+ if(typeof cat === 'string' && (cat.toUpperCase() === category.toUpperCase())) {
+ return true;
}
}
- return false;
- },
- categoriesChanged:function(newcategories) { // Categories added/deleted.
- categories = $.map(newcategories, function(v) {return v;});
- $('#categories').multiple_autocomplete('option', 'source', categories);
- var categorylist = $('#categories_value').find('input');
- $.getJSON(OC.filePath('contacts', 'ajax', 'categories/categoriesfor.php'),{'id':Contacts.UI.Card.id},function(jsondata){
- if(jsondata.status == 'success'){
- $('#categories_value').data('checksum', jsondata.data.checksum);
- categorylist.val(jsondata.data.value);
+ }
+ return false;
+ },
+ categoriesChanged:function(newcategories) { // Categories added/deleted.
+ categories = $.map(newcategories, function(v) {return v;});
+ $('#categories').multiple_autocomplete('option', 'source', categories);
+ var categorylist = $('#categories_value').find('input');
+ $.getJSON(OC.filePath('contacts', 'ajax', 'categories/categoriesfor.php'),{'id':OC.Contacts.Card.id},function(jsondata){
+ if(jsondata.status == 'success'){
+ $('#categories_value').data('checksum', jsondata.data.checksum);
+ categorylist.val(jsondata.data.value);
+ } else {
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
+ }
+ });
+ },
+ savePropertyInternal:function(name, fields, oldchecksum, checksum) {
+ // TODO: Add functionality for new fields.
+ //console.log('savePropertyInternal: ' + name + ', fields: ' + fields + 'checksum: ' + checksum);
+ //console.log('savePropertyInternal: ' + this.data[name]);
+ var multivalue = ['CATEGORIES'];
+ var params = {};
+ var value = multivalue.indexOf(name) != -1 ? new Array() : undefined;
+ jQuery.each(fields, function(i, field){
+ //.substring(11,'parameters[TYPE][]'.indexOf(']'))
+ if(field.name.substring(0, 5) === 'value') {
+ if(multivalue.indexOf(name) != -1) {
+ value.push(field.value);
} else {
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- },
- savePropertyInternal:function(name, fields, oldchecksum, checksum){
- // TODO: Add functionality for new fields.
- //console.log('savePropertyInternal: ' + name + ', fields: ' + fields + 'checksum: ' + checksum);
- //console.log('savePropertyInternal: ' + this.data[name]);
- var multivalue = ['CATEGORIES'];
- var params = {};
- var value = multivalue.indexOf(name) != -1 ? new Array() : undefined;
- jQuery.each(fields, function(i, field){
- //.substring(11,'parameters[TYPE][]'.indexOf(']'))
- if(field.name.substring(0, 5) === 'value') {
- if(multivalue.indexOf(name) != -1) {
- value.push(field.value);
- } else {
- value = field.value;
- }
- } else if(field.name.substring(0, 10) === 'parameters') {
- var p = field.name.substring(11,'parameters[TYPE][]'.indexOf(']'));
- if(!(p in params)) {
- params[p] = [];
- }
- params[p].push(field.value);
+ value = field.value;
}
- });
- for(var i in this.data[name]) {
- if(this.data[name][i]['checksum'] == oldchecksum) {
- this.data[name][i]['checksum'] = checksum;
- this.data[name][i]['value'] = value;
- this.data[name][i]['parameters'] = params;
+ } else if(field.name.substring(0, 10) === 'parameters') {
+ var p = field.name.substring(11,'parameters[TYPE][]'.indexOf(']'));
+ if(!(p in params)) {
+ params[p] = [];
}
+ params[p].push(field.value);
}
- },
- saveProperty:function(obj){
- if(!$(obj).hasClass('contacts_property')) {
- return false;
- }
- if($(obj).hasClass('nonempty') && $(obj).val().trim() == '') {
- OC.dialogs.alert(t('contacts', 'This property has to be non-empty.'), t('contacts', 'Error'));
- return false;
- }
- container = $(obj).parents('.propertycontainer').first(); // get the parent holding the metadata.
- Contacts.UI.loading(obj, true);
- var checksum = container.data('checksum');
- var name = container.data('element');
- var fields = container.find('input.contacts_property,select.contacts_property').serializeArray();
- switch(name) {
- case 'FN':
- var nempty = true;
- for(var i in Contacts.UI.Card.data.N[0]['value']) {
- if(Contacts.UI.Card.data.N[0]['value'][i] != '') {
- nempty = false;
- break;
- }
+ });
+ for(var i in this.data[name]) {
+ if(this.data[name][i]['checksum'] == oldchecksum) {
+ this.data[name][i]['checksum'] = checksum;
+ this.data[name][i]['value'] = value;
+ this.data[name][i]['parameters'] = params;
}
- if(nempty) {
- $('#n').val(fields[0].value + ';;;;');
- Contacts.UI.Card.data.N[0]['value'] = Array(fields[0].value, '', '', '', '');
- setTimeout(function() {Contacts.UI.Card.saveProperty($('#n'))}, 500);
+ }
+ },
+ saveProperty:function(obj) {
+ if(!$(obj).hasClass('contacts_property')) {
+ return false;
+ }
+ if($(obj).hasClass('nonempty') && $(obj).val().trim() == '') {
+ OC.dialogs.alert(t('contacts', 'This property has to be non-empty.'), t('contacts', 'Error'));
+ return false;
+ }
+ container = $(obj).parents('.propertycontainer').first(); // get the parent holding the metadata.
+ OC.Contacts.loading(obj, true);
+ var checksum = container.data('checksum');
+ var name = container.data('element');
+ var fields = container.find('input.contacts_property,select.contacts_property').serializeArray();
+ switch(name) {
+ case 'FN':
+ var nempty = true;
+ for(var i in OC.Contacts.Card.data.N[0]['value']) {
+ if(OC.Contacts.Card.data.N[0]['value'][i] != '') {
+ nempty = false;
+ break;
}
- break;
- }
- var q = container.find('input.contacts_property,select.contacts_property,textarea.contacts_property').serialize();
- if(q == '' || q == undefined) {
- OC.dialogs.alert(t('contacts', 'Couldn\'t serialize elements.'), t('contacts', 'Error'));
- Contacts.UI.loading(obj, false);
- return false;
- }
- q = q + '&id=' + this.id + '&name=' + name;
- if(checksum != undefined && checksum != '') { // save
+ }
+ if(nempty) {
+ $('#n').val(fields[0].value + ';;;;');
+ OC.Contacts.Card.data.N[0]['value'] = Array(fields[0].value, '', '', '', '');
+ setTimeout(function() {OC.Contacts.Card.saveProperty($('#n'))}, 500);
+ }
+ break;
+ }
+ var q = container.find('input.contacts_property,select.contacts_property,textarea.contacts_property').serialize();
+ if(q == '' || q == undefined) {
+ OC.dialogs.alert(t('contacts', 'Couldn\'t serialize elements.'), t('contacts', 'Error'));
+ OC.Contacts.loading(obj, false);
+ return false;
+ }
+ q = q + '&id=' + this.id + '&name=' + name;
+ if(checksum != undefined && checksum != '') { // save
q = q + '&checksum=' + checksum;
console.log('Saving: ' + q);
$(obj).attr('disabled', 'disabled');
- $.post(OC.filePath('contacts', 'ajax', 'saveproperty.php'),q,function(jsondata){
+ $.post(OC.filePath('contacts', 'ajax', 'contact/saveproperty.php'),q,function(jsondata){
if(jsondata.status == 'success'){
container.data('checksum', jsondata.data.checksum);
- Contacts.UI.Card.savePropertyInternal(name, fields, checksum, jsondata.data.checksum);
- Contacts.UI.loading(obj, false);
+ OC.Contacts.Card.savePropertyInternal(name, fields, checksum, jsondata.data.checksum);
+ OC.Contacts.loading(obj, false);
$(obj).removeAttr('disabled');
return true;
}
else{
OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- Contacts.UI.loading(obj, false);
+ OC.Contacts.loading(obj, false);
$(obj).removeAttr('disabled');
return false;
}
},'json');
- } else { // add
+ } else { // add
console.log('Adding: ' + q);
$(obj).attr('disabled', 'disabled');
- $.post(OC.filePath('contacts', 'ajax', 'addproperty.php'),q,function(jsondata){
+ $.post(OC.filePath('contacts', 'ajax', 'contact/addproperty.php'),q,function(jsondata){
if(jsondata.status == 'success'){
container.data('checksum', jsondata.data.checksum);
// TODO: savePropertyInternal doesn't know about new fields
- //Contacts.UI.Card.savePropertyInternal(name, fields, checksum, jsondata.data.checksum);
- Contacts.UI.loading(obj, false);
+ //OC.Contacts.Card.savePropertyInternal(name, fields, checksum, jsondata.data.checksum);
+ OC.Contacts.loading(obj, false);
$(obj).removeAttr('disabled');
return true;
}
else{
OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- Contacts.UI.loading(obj, false);
+ OC.Contacts.loading(obj, false);
$(obj).removeAttr('disabled');
return false;
}
},'json');
- }
- },
- addProperty:function(type){
- switch (type) {
- case 'NOTE':
- $('#contacts_propertymenu_dropdown a[data-type="'+type+'"]').parent().hide();
- $('#note').find('textarea').expandingTextarea().show().focus();
- break;
- case 'EMAIL':
- if($('#emaillist>li').length == 1) {
- $('#emails').show();
- }
- Contacts.UI.Card.addMail();
- break;
- case 'TEL':
- if($('#phonelist>li').length == 1) {
- $('#phones').show();
- }
- Contacts.UI.Card.addPhone();
- break;
- case 'ADR':
- if($('#addressdisplay>dl').length == 1) {
- $('#addresses').show();
- }
- Contacts.UI.Card.editAddress('new', true);
- break;
- case 'NICKNAME':
- case 'URL':
- case 'ORG':
- case 'BDAY':
- case 'CATEGORIES':
- $('dl dt[data-element="'+type+'"],dd[data-element="'+type+'"]').show();
- $('dd[data-element="'+type+'"]').find('input').focus();
- $('#contacts_propertymenu_dropdown a[data-type="'+type+'"]').parent().hide();
- break;
- }
- },
- deleteProperty:function(obj, type){
- console.log('deleteProperty');
- Contacts.UI.loading(obj, true);
- var checksum = Contacts.UI.checksumFor(obj);
- if(checksum) {
- $.post(OC.filePath('contacts', 'ajax', 'deleteproperty.php'),{'id': this.id, 'checksum': checksum },function(jsondata){
- if(jsondata.status == 'success'){
- if(type == 'list') {
- Contacts.UI.propertyContainerFor(obj).remove();
- } else if(type == 'single') {
- var proptype = Contacts.UI.propertyTypeFor(obj);
- Contacts.UI.Card.data[proptype] = null;
- var othertypes = ['NOTE', 'PHOTO'];
- if(othertypes.indexOf(proptype) != -1) {
- Contacts.UI.propertyContainerFor(obj).data('checksum', '');
- if(proptype == 'PHOTO') {
- Contacts.UI.Contacts.refreshThumbnail(Contacts.UI.Card.id);
- Contacts.UI.Card.loadPhoto(true);
- } else if(proptype == 'NOTE') {
- $('#note').find('textarea').val('');
- Contacts.UI.propertyContainerFor(obj).hide();
- }
- } else {
- $('dl dt[data-element="'+proptype+'"],dd[data-element="'+proptype+'"]').hide();
- $('dl dd[data-element="'+proptype+'"]').data('checksum', '').find('input').val('');
+ }
+ },
+ addProperty:function(type) {
+ switch (type) {
+ case 'NOTE':
+ $('#contacts_propertymenu_dropdown a[data-type="'+type+'"]').parent().hide();
+ $('#note').find('textarea').expandingTextarea().show().focus();
+ break;
+ case 'EMAIL':
+ if($('#emaillist>li').length == 1) {
+ $('#emails').show();
+ }
+ OC.Contacts.Card.addMail();
+ break;
+ case 'TEL':
+ if($('#phonelist>li').length == 1) {
+ $('#phones').show();
+ }
+ OC.Contacts.Card.addPhone();
+ break;
+ case 'ADR':
+ if($('#addressdisplay>dl').length == 1) {
+ $('#addresses').show();
+ }
+ OC.Contacts.Card.editAddress('new', true);
+ break;
+ case 'NICKNAME':
+ case 'URL':
+ case 'ORG':
+ case 'BDAY':
+ case 'CATEGORIES':
+ $('dl dt[data-element="'+type+'"],dd[data-element="'+type+'"]').show();
+ $('dd[data-element="'+type+'"]').find('input').focus();
+ $('#contacts_propertymenu_dropdown a[data-type="'+type+'"]').parent().hide();
+ break;
+ }
+ },
+ deleteProperty:function(obj, type) {
+ console.log('deleteProperty');
+ OC.Contacts.loading(obj, true);
+ var checksum = OC.Contacts.checksumFor(obj);
+ if(checksum) {
+ $.post(OC.filePath('contacts', 'ajax', 'contact/deleteproperty.php'),{'id': this.id, 'checksum': checksum },function(jsondata){
+ if(jsondata.status == 'success'){
+ if(type == 'list') {
+ OC.Contacts.propertyContainerFor(obj).remove();
+ } else if(type == 'single') {
+ var proptype = OC.Contacts.propertyTypeFor(obj);
+ OC.Contacts.Card.data[proptype] = null;
+ var othertypes = ['NOTE', 'PHOTO'];
+ if(othertypes.indexOf(proptype) != -1) {
+ OC.Contacts.propertyContainerFor(obj).data('checksum', '');
+ if(proptype == 'PHOTO') {
+ OC.Contacts.Contacts.refreshThumbnail(OC.Contacts.Card.id);
+ OC.Contacts.Card.loadPhoto(true);
+ } else if(proptype == 'NOTE') {
+ $('#note').find('textarea').val('');
+ OC.Contacts.propertyContainerFor(obj).hide();
}
- $('#contacts_propertymenu_dropdown a[data-type="'+proptype+'"]').parent().show();
- Contacts.UI.loading(obj, false);
} else {
- OC.dialogs.alert(t('contacts', '\'deleteProperty\' called without type argument. Please report at bugs.owncloud.org'), t('contacts', 'Error'));
- Contacts.UI.loading(obj, false);
+ $('dl dt[data-element="'+proptype+'"],dd[data-element="'+proptype+'"]').hide();
+ $('dl dd[data-element="'+proptype+'"]').data('checksum', '').find('input').val('');
}
+ $('#contacts_propertymenu_dropdown a[data-type="'+proptype+'"]').parent().show();
+ OC.Contacts.loading(obj, false);
+ } else {
+ OC.dialogs.alert(t('contacts', '\'deleteProperty\' called without type argument. Please report at bugs.owncloud.org'), t('contacts', 'Error'));
+ OC.Contacts.loading(obj, false);
}
- else{
- Contacts.UI.loading(obj, false);
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- } else { // Property hasn't been saved so there's nothing to delete.
- if(type == 'list') {
- Contacts.UI.propertyContainerFor(obj).remove();
- } else if(type == 'single') {
- var proptype = Contacts.UI.propertyTypeFor(obj);
- $('dl dt[data-element="'+proptype+'"],dd[data-element="'+proptype+'"]').hide();
- $('#contacts_propertymenu_dropdown a[data-type="'+proptype+'"]').parent().show();
- Contacts.UI.loading(obj, false);
- } else {
- OC.dialogs.alert(t('contacts', '\'deleteProperty\' called without type argument. Please report at bugs.owncloud.org'), t('contacts', 'Error'));
}
- }
- },
- editName:function() {
- var params = {id: this.id};
- /* Initialize the name edit dialog */
- if($('#edit_name_dialog').dialog('isOpen') == true) {
- $('#edit_name_dialog').dialog('moveToTop');
+ else{
+ OC.Contacts.loading(obj, false);
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
+ }
+ });
+ } else { // Property hasn't been saved so there's nothing to delete.
+ if(type == 'list') {
+ OC.Contacts.propertyContainerFor(obj).remove();
+ } else if(type == 'single') {
+ var proptype = OC.Contacts.propertyTypeFor(obj);
+ $('dl dt[data-element="'+proptype+'"],dd[data-element="'+proptype+'"]').hide();
+ $('#contacts_propertymenu_dropdown a[data-type="'+proptype+'"]').parent().show();
+ OC.Contacts.loading(obj, false);
} else {
- $.getJSON(OC.filePath('contacts', 'ajax', 'editname.php'),{id: this.id},function(jsondata) {
- if(jsondata.status == 'success') {
- $('body').append('<div id="name_dialog"></div>');
- $('#name_dialog').html(jsondata.data.page).find('#edit_name_dialog' ).dialog({
- modal: true,
- closeOnEscape: true,
- title: t('contacts', 'Edit name'),
- height: 'auto', width: 'auto',
- buttons: {
- 'Ok':function() {
- Contacts.UI.Card.saveName(this);
- $(this).dialog('close');
- },
- 'Cancel':function() { $(this).dialog('close'); }
- },
- close: function(event, ui) {
- $(this).dialog('destroy').remove();
- $('#name_dialog').remove();
+ OC.dialogs.alert(t('contacts', '\'deleteProperty\' called without type argument. Please report at bugs.owncloud.org'), t('contacts', 'Error'));
+ }
+ }
+ },
+ editName:function() {
+ var params = {id: this.id};
+ /* Initialize the name edit dialog */
+ if($('#edit_name_dialog').dialog('isOpen') == true) {
+ $('#edit_name_dialog').dialog('moveToTop');
+ } else {
+ $.getJSON(OC.filePath('contacts', 'ajax', 'editname.php'),{id: this.id},function(jsondata) {
+ if(jsondata.status == 'success') {
+ $('body').append('<div id="name_dialog"></div>');
+ $('#name_dialog').html(jsondata.data.page).find('#edit_name_dialog' ).dialog({
+ modal: true,
+ closeOnEscape: true,
+ title: t('contacts', 'Edit name'),
+ height: 'auto', width: 'auto',
+ buttons: {
+ 'Ok':function() {
+ OC.Contacts.Card.saveName(this);
+ $(this).dialog('close');
},
- open: function(event, ui) {
- // load 'N' property - maybe :-P
- }
- });
- } else {
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
+ 'Cancel':function() { $(this).dialog('close'); }
+ },
+ close: function(event, ui) {
+ $(this).dialog('destroy').remove();
+ $('#name_dialog').remove();
+ },
+ open: function(event, ui) {
+ // load 'N' property - maybe :-P
+ }
+ });
+ } else {
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
+ }
+ });
+ }
+ },
+ saveName:function(dlg) {
+ //console.log('saveName, id: ' + this.id);
+ var n = new Array($(dlg).find('#fam').val().strip_tags(),$(dlg).find('#giv').val().strip_tags(),$(dlg).find('#add').val().strip_tags(),$(dlg).find('#pre').val().strip_tags(),$(dlg).find('#suf').val().strip_tags());
+ this.famname = n[0];
+ this.givname = n[1];
+ this.addname = n[2];
+ this.honpre = n[3];
+ this.honsuf = n[4];
+ this.fullname = '';
+
+ $('#n').val(n.join(';'));
+ if(n[3].length > 0) {
+ this.fullname = n[3] + ' ';
+ }
+ this.fullname += n[1] + ' ' + n[2] + ' ' + n[0];
+ if(n[4].length > 0) {
+ this.fullname += ', ' + n[4];
+ }
+
+ $('#fn_select option').remove();
+ //$('#fn_select').combobox('value', this.fn);
+ var tmp = [this.fullname, this.givname + ' ' + this.famname, this.famname + ' ' + this.givname, this.famname + ', ' + this.givname];
+ var names = new Array();
+ for(var name in tmp) {
+ if(names.indexOf(tmp[name]) == -1) {
+ names.push(tmp[name]);
}
- },
- saveName:function(dlg){
- //console.log('saveName, id: ' + this.id);
- var n = new Array($(dlg).find('#fam').val().strip_tags(),$(dlg).find('#giv').val().strip_tags(),$(dlg).find('#add').val().strip_tags(),$(dlg).find('#pre').val().strip_tags(),$(dlg).find('#suf').val().strip_tags());
- this.famname = n[0];
- this.givname = n[1];
- this.addname = n[2];
- this.honpre = n[3];
- this.honsuf = n[4];
- this.fullname = '';
+ }
+ $.each(names, function(key, value) {
+ $('#fn_select')
+ .append($('<option></option>')
+ .text(value));
+ });
- $('#n').val(n.join(';'));
- if(n[3].length > 0) {
- this.fullname = n[3] + ' ';
+ if(this.id == '') {
+ var aid = $(dlg).find('#aid').val();
+ OC.Contacts.Card.add(n.join(';'), $('#short').text(), aid);
+ } else {
+ OC.Contacts.Card.saveProperty($('#n'));
+ }
+ },
+ loadAddresses:function() {
+ $('#addresses').hide();
+ $('#addressdisplay dl.propertycontainer').remove();
+ var addresscontainer = $('#addressdisplay');
+ for(var adr in this.data.ADR) {
+ addresscontainer.find('dl').first().clone().insertAfter($('#addressdisplay dl').last()).show();
+ addresscontainer.find('dl').last().removeClass('template').addClass('propertycontainer');
+ addresscontainer.find('dl').last().data('checksum', this.data.ADR[adr]['checksum']);
+ var adrarray = this.data.ADR[adr]['value'];
+ var adrtxt = '';
+ if(adrarray[0] && adrarray[0].length > 0) {
+ adrtxt = adrtxt + '<li>' + adrarray[0].strip_tags() + '</li>';
}
- this.fullname += n[1] + ' ' + n[2] + ' ' + n[0];
- if(n[4].length > 0) {
- this.fullname += ', ' + n[4];
+ if(adrarray[1] && adrarray[1].length > 0) {
+ adrtxt = adrtxt + '<li>' + adrarray[1].strip_tags() + '</li>';
}
-
- $('#fn_select option').remove();
- //$('#fn_select').combobox('value', this.fn);
- var tmp = [this.fullname, this.givname + ' ' + this.famname, this.famname + ' ' + this.givname, this.famname + ', ' + this.givname];
- var names = new Array();
- for(var name in tmp) {
- if(names.indexOf(tmp[name]) == -1) {
- names.push(tmp[name]);
- }
+ if(adrarray[2] && adrarray[2].length > 0) {
+ adrtxt = adrtxt + '<li>' + adrarray[2].strip_tags() + '</li>';
}
- $.each(names, function(key, value) {
- $('#fn_select')
- .append($('<option></option>')
- .text(value));
- });
-
- if(this.id == '') {
- var aid = $(dlg).find('#aid').val();
- Contacts.UI.Card.add(n.join(';'), $('#short').text(), aid);
- } else {
- Contacts.UI.Card.saveProperty($('#n'));
+ if((3 in adrarray && 5 in adrarray) && adrarray[3].length > 0 || adrarray[5].length > 0) {
+ adrtxt = adrtxt + '<li>' + adrarray[5].strip_tags() + ' ' + adrarray[3].strip_tags() + '</li>';
}
- },
- loadAddresses:function(){
- $('#addresses').hide();
- $('#addressdisplay dl.propertycontainer').remove();
- var addresscontainer = $('#addressdisplay');
- for(var adr in this.data.ADR) {
- addresscontainer.find('dl').first().clone().insertAfter($('#addressdisplay dl').last()).show();
- addresscontainer.find('dl').last().removeClass('template').addClass('propertycontainer');
- addresscontainer.find('dl').last().data('checksum', this.data.ADR[adr]['checksum']);
- var adrarray = this.data.ADR[adr]['value'];
- var adrtxt = '';
- if(adrarray[0] && adrarray[0].length > 0) {
- adrtxt = adrtxt + '<li>' + adrarray[0].strip_tags() + '</li>';
- }
- if(adrarray[1] && adrarray[1].length > 0) {
- adrtxt = adrtxt + '<li>' + adrarray[1].strip_tags() + '</li>';
- }
- if(adrarray[2] && adrarray[2].length > 0) {
- adrtxt = adrtxt + '<li>' + adrarray[2].strip_tags() + '</li>';
- }
- if((3 in adrarray && 5 in adrarray) && adrarray[3].length > 0 || adrarray[5].length > 0) {
- adrtxt = adrtxt + '<li>' + adrarray[5].strip_tags() + ' ' + adrarray[3].strip_tags() + '</li>';
- }
- if(adrarray[4] && adrarray[4].length > 0) {
- adrtxt = adrtxt + '<li>' + adrarray[4].strip_tags() + '</li>';
- }
- if(adrarray[6] && adrarray[6].length > 0) {
- adrtxt = adrtxt + '<li>' + adrarray[6].strip_tags() + '</li>';
- }
- addresscontainer.find('dl').last().find('.addresslist').html(adrtxt);
- var types = new Array();
- var ttypes = new Array();
- for(var param in this.data.ADR[adr]['parameters']) {
- if(param.toUpperCase() == 'TYPE') {
- types.push(t('contacts', ucwords(this.data.ADR[adr]['parameters'][param].toLowerCase())));
- ttypes.push(this.data.ADR[adr]['parameters'][param]);
- }
- }
- addresscontainer.find('dl').last().find('.adr_type_label').text(types.join('/'));
- addresscontainer.find('dl').last().find('.adr_type').val(ttypes.join(','));
- addresscontainer.find('dl').last().find('.adr').val(adrarray.join(';'));
- addresscontainer.find('dl').last().data('checksum', this.data.ADR[adr]['checksum']);
+ if(adrarray[4] && adrarray[4].length > 0) {
+ adrtxt = adrtxt + '<li>' + adrarray[4].strip_tags() + '</li>';
}
- if(addresscontainer.find('dl').length > 1) {
- $('#addresses').show();
- $('#contact_communication').show();
+ if(adrarray[6] && adrarray[6].length > 0) {
+ adrtxt = adrtxt + '<li>' + adrarray[6].strip_tags() + '</li>';
}
- return false;
- },
- editAddress:function(obj, isnew){
- var container = undefined;
- var params = {id: this.id};
- if(obj === 'new') {
- isnew = true;
- $('#addressdisplay dl').first().clone(true).insertAfter($('#addressdisplay dl').last()).show();
- container = $('#addressdisplay dl').last();
- container.removeClass('template').addClass('propertycontainer');
- } else {
- params['checksum'] = Contacts.UI.checksumFor(obj);
+ addresscontainer.find('dl').last().find('.addresslist').html(adrtxt);
+ var types = new Array();
+ var ttypes = new Array();
+ for(var param in this.data.ADR[adr]['parameters']) {
+ if(param.toUpperCase() == 'TYPE') {
+ types.push(t('contacts', ucwords(this.data.ADR[adr]['parameters'][param].toLowerCase())));
+ ttypes.push(this.data.ADR[adr]['parameters'][param]);
+ }
}
- /* Initialize the address edit dialog */
- if($('#edit_address_dialog').dialog('isOpen') == true){
- $('#edit_address_dialog').dialog('moveToTop');
- }else{
- $.getJSON(OC.filePath('contacts', 'ajax', 'editaddress.php'),params,function(jsondata){
- if(jsondata.status == 'success'){
- $('body').append('<div id="address_dialog"></div>');
- $('#address_dialog').html(jsondata.data.page).find('#edit_address_dialog' ).dialog({
- height: 'auto', width: 'auto',
- buttons: {
- 'Ok':function() {
- if(isnew) {
- Contacts.UI.Card.saveAddress(this, $('#addressdisplay dl:last-child').find('input').first(), isnew);
- } else {
- Contacts.UI.Card.saveAddress(this, obj, isnew);
- }
- $(this).dialog('close');
- },
- 'Cancel':function() {
- $(this).dialog('close');
- if(isnew) {
- container.remove();
- }
+ addresscontainer.find('dl').last().find('.adr_type_label').text(types.join('/'));
+ addresscontainer.find('dl').last().find('.adr_type').val(ttypes.join(','));
+ addresscontainer.find('dl').last().find('.adr').val(adrarray.join(';'));
+ addresscontainer.find('dl').last().data('checksum', this.data.ADR[adr]['checksum']);
+ }
+ if(addresscontainer.find('dl').length > 1) {
+ $('#addresses').show();
+ $('#contact_communication').show();
+ }
+ return false;
+ },
+ editAddress:function(obj, isnew){
+ var container = undefined;
+ var params = {id: this.id};
+ if(obj === 'new') {
+ isnew = true;
+ $('#addressdisplay dl').first().clone(true).insertAfter($('#addressdisplay dl').last()).show();
+ container = $('#addressdisplay dl').last();
+ container.removeClass('template').addClass('propertycontainer');
+ } else {
+ params['checksum'] = OC.Contacts.checksumFor(obj);
+ }
+ /* Initialize the address edit dialog */
+ if($('#edit_address_dialog').dialog('isOpen') == true){
+ $('#edit_address_dialog').dialog('moveToTop');
+ }else{
+ $.getJSON(OC.filePath('contacts', 'ajax', 'editaddress.php'),params,function(jsondata){
+ if(jsondata.status == 'success'){
+ $('body').append('<div id="address_dialog"></div>');
+ $('#address_dialog').html(jsondata.data.page).find('#edit_address_dialog' ).dialog({
+ height: 'auto', width: 'auto',
+ buttons: {
+ 'Ok':function() {
+ if(isnew) {
+ OC.Contacts.Card.saveAddress(this, $('#addressdisplay dl:last-child').find('input').first(), isnew);
+ } else {
+ OC.Contacts.Card.saveAddress(this, obj, isnew);
}
+ $(this).dialog('close');
},
- close : function(event, ui) {
- $(this).dialog('destroy').remove();
- $('#address_dialog').remove();
- },
- open : function(event, ui) {
- $( "#adr_city" ).autocomplete({
- source: function( request, response ) {
- $.ajax({
- url: "http://ws.geonames.org/searchJSON",
- dataType: "jsonp",
- data: {
- featureClass: "P",
- style: "full",
- maxRows: 12,
- lang: lang,
- name_startsWith: request.term
- },
- success: function( data ) {
- response( $.map( data.geonames, function( item ) {
- return {
- label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
- value: item.name,
- country: item.countryName
- }
- }));
- }
- });
- },
- minLength: 2,
- select: function( event, ui ) {
- if(ui.item && $('#adr_country').val().trim().length == 0) {
- $('#adr_country').val(ui.item.country);
+ 'Cancel':function() {
+ $(this).dialog('close');
+ if(isnew) {
+ container.remove();
+ }
+ }
+ },
+ close : function(event, ui) {
+ $(this).dialog('destroy').remove();
+ $('#address_dialog').remove();
+ },
+ open : function(event, ui) {
+ $( "#adr_city" ).autocomplete({
+ source: function( request, response ) {
+ $.ajax({
+ url: "http://ws.geonames.org/searchJSON",
+ dataType: "jsonp",
+ data: {
+ featureClass: "P",
+ style: "full",
+ maxRows: 12,
+ lang: lang,
+ name_startsWith: request.term
+ },
+ success: function( data ) {
+ response( $.map( data.geonames, function( item ) {
+ return {
+ label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
+ value: item.name,
+ country: item.countryName
+ }
+ }));
}
- },
- open: function() {
- $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
- },
- close: function() {
- $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
+ });
+ },
+ minLength: 2,
+ select: function( event, ui ) {
+ if(ui.item && $('#adr_country').val().trim().length == 0) {
+ $('#adr_country').val(ui.item.country);
}
- });
- $('#adr_country').autocomplete({
- source: function( request, response ) {
- $.ajax({
- url: "http://ws.geonames.org/searchJSON",
- dataType: "jsonp",
- data: {
- /*featureClass: "A",*/
- featureCode: "PCLI",
- /*countryBias: "true",*/
- /*style: "full",*/
- lang: lang,
- maxRows: 12,
- name_startsWith: request.term
- },
- success: function( data ) {
- response( $.map( data.geonames, function( item ) {
- return {
- label: item.name,
- value: item.name
- }
- }));
- }
- });
- },
- minLength: 2,
- select: function( event, ui ) {
- /*if(ui.item) {
- $('#adr_country').val(ui.item.country);
+ },
+ open: function() {
+ $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
+ },
+ close: function() {
+ $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
+ }
+ });
+ $('#adr_country').autocomplete({
+ source: function( request, response ) {
+ $.ajax({
+ url: "http://ws.geonames.org/searchJSON",
+ dataType: "jsonp",
+ data: {
+ /*featureClass: "A",*/
+ featureCode: "PCLI",
+ /*countryBias: "true",*/
+ /*style: "full",*/
+ lang: lang,
+ maxRows: 12,
+ name_startsWith: request.term
+ },
+ success: function( data ) {
+ response( $.map( data.geonames, function( item ) {
+ return {
+ label: item.name,
+ value: item.name
+ }
+ }));
}
- log( ui.item ?
- "Selected: " + ui.item.label :
- "Nothing selected, input was " + this.value);*/
- },
- open: function() {
- $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
- },
- close: function() {
- $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
+ });
+ },
+ minLength: 2,
+ select: function( event, ui ) {
+ /*if(ui.item) {
+ $('#adr_country').val(ui.item.country);
}
- });
- }
- });
- } else {
- alert(jsondata.data.message);
- }
- });
- }
- },
- saveAddress:function(dlg, obj, isnew){
- if(isnew) {
- container = $('#addressdisplay dl').last();
- obj = container.find('input').first();
- } else {
- checksum = Contacts.UI.checksumFor(obj);
- container = Contacts.UI.propertyContainerFor(obj);
- }
- var adr = new Array(
- $(dlg).find('#adr_pobox').val().strip_tags(),
- $(dlg).find('#adr_extended').val().strip_tags(),
- $(dlg).find('#adr_street').val().strip_tags(),
- $(dlg).find('#adr_city').val().strip_tags(),
- $(dlg).find('#adr_region').val().strip_tags(),
- $(dlg).find('#adr_zipcode').val().strip_tags(),
- $(dlg).find('#adr_country').val().strip_tags()
- );
- container.find('.adr').val(adr.join(';'));
- container.find('.adr_type').val($(dlg).find('#adr_type').val());
- container.find('.adr_type_label').html(t('contacts',ucwords($(dlg).find('#adr_type').val().toLowerCase())));
- Contacts.UI.Card.saveProperty($(container).find('input').first());
- var adrtxt = '';
- if(adr[0].length > 0) {
- adrtxt = adrtxt + '<li>' + adr[0] + '</li>';
- }
- if(adr[1].length > 0) {
- adrtxt = adrtxt + '<li>' + adr[1] + '</li>';
- }
- if(adr[2].length > 0) {
- adrtxt = adrtxt + '<li>' + adr[2] + '</li>';
+ log( ui.item ?
+ "Selected: " + ui.item.label :
+ "Nothing selected, input was " + this.value);*/
+ },
+ open: function() {
+ $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
+ },
+ close: function() {
+ $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
+ }
+ });
+ }
+ });
+ } else {
+ alert(jsondata.data.message);
+ }
+ });
+ }
+ },
+ saveAddress:function(dlg, obj, isnew){
+ if(isnew) {
+ container = $('#addressdisplay dl').last();
+ obj = container.find('input').first();
+ } else {
+ checksum = OC.Contacts.checksumFor(obj);
+ container = OC.Contacts.propertyContainerFor(obj);
+ }
+ var adr = new Array(
+ $(dlg).find('#adr_pobox').val().strip_tags(),
+ $(dlg).find('#adr_extended').val().strip_tags(),
+ $(dlg).find('#adr_street').val().strip_tags(),
+ $(dlg).find('#adr_city').val().strip_tags(),
+ $(dlg).find('#adr_region').val().strip_tags(),
+ $(dlg).find('#adr_zipcode').val().strip_tags(),
+ $(dlg).find('#adr_country').val().strip_tags()
+ );
+ container.find('.adr').val(adr.join(';'));
+ container.find('.adr_type').val($(dlg).find('#adr_type').val());
+ container.find('.adr_type_label').html(t('contacts',ucwords($(dlg).find('#adr_type').val().toLowerCase())));
+ OC.Contacts.Card.saveProperty($(container).find('input').first());
+ var adrtxt = '';
+ if(adr[0].length > 0) {
+ adrtxt = adrtxt + '<li>' + adr[0] + '</li>';
+ }
+ if(adr[1].length > 0) {
+ adrtxt = adrtxt + '<li>' + adr[1] + '</li>';
+ }
+ if(adr[2].length > 0) {
+ adrtxt = adrtxt + '<li>' + adr[2] + '</li>';
+ }
+ if(adr[3].length > 0 || adr[5].length > 0) {
+ adrtxt = adrtxt + '<li>' + adr[5] + ' ' + adr[3] + '</li>';
+ }
+ if(adr[4].length > 0) {
+ adrtxt = adrtxt + '<li>' + adr[4] + '</li>';
+ }
+ if(adr[6].length > 0) {
+ adrtxt = adrtxt + '<li>' + adr[6] + '</li>';
+ }
+ container.find('.addresslist').html(adrtxt);
+ },
+ uploadPhoto:function(filelist) {
+ if(!filelist) {
+ OC.dialogs.alert(t('contacts','No files selected for upload.'), t('contacts', 'Error'));
+ return;
+ }
+ var file = filelist[0];
+ var target = $('#file_upload_target');
+ var form = $('#file_upload_form');
+ var totalSize=0;
+ if(file.size > $('#max_upload').val()){
+ OC.dialogs.alert(t('contacts','The file you are trying to upload exceed the maximum size for file uploads on this server.'), t('contacts', 'Error'));
+ return;
+ } else {
+ target.load(function(){
+ var response=jQuery.parseJSON(target.contents().text());
+ if(response != undefined && response.status == 'success'){
+ OC.Contacts.Card.editPhoto(response.data.id, response.data.tmp);
+ //alert('File: ' + file.tmp + ' ' + file.name + ' ' + file.mime);
+ }else{
+ OC.dialogs.alert(response.data.message, t('contacts', 'Error'));
+ }
+ });
+ form.submit();
+ }
+ },
+ loadPhotoHandlers:function() {
+ var phototools = $('#phototools');
+ phototools.find('li a').tipsy('hide');
+ phototools.find('li a').tipsy();
+ if(this.data.PHOTO) {
+ phototools.find('.delete').click(function() {
+ $(this).tipsy('hide');
+ OC.Contacts.Card.deleteProperty($('#contacts_details_photo'), 'single');
+ $(this).hide();
+ });
+ phototools.find('.edit').click(function() {
+ $(this).tipsy('hide');
+ OC.Contacts.Card.editCurrentPhoto();
+ });
+ phototools.find('.delete').show();
+ phototools.find('.edit').show();
+ } else {
+ phototools.find('.delete').hide();
+ phototools.find('.edit').hide();
+ }
+ },
+ cloudPhotoSelected:function(path){
+ $.getJSON(OC.filePath('contacts', 'ajax', 'oc_photo.php'),{'path':path,'id':OC.Contacts.Card.id},function(jsondata){
+ if(jsondata.status == 'success'){
+ //alert(jsondata.data.page);
+ OC.Contacts.Card.editPhoto(jsondata.data.id, jsondata.data.tmp)
+ $('#edit_photo_dialog_img').html(jsondata.data.page);
}
- if(adr[3].length > 0 || adr[5].length > 0) {
- adrtxt = adrtxt + '<li>' + adr[5] + ' ' + adr[3] + '</li>';
+ else{
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
}
- if(adr[4].length > 0) {
- adrtxt = adrtxt + '<li>' + adr[4] + '</li>';
+ });
+ },
+ loadPhoto:function(refresh){
+ var self = this;
+ var refreshstr = (refresh?'&refresh=1'+Math.random():'')
+ $('#phototools li a').tipsy('hide');
+ var wrapper = $('#contacts_details_photo_wrapper');
+ wrapper.addClass('loading').addClass('wait');
+ delete this.photo;
+ this.photo = new Image();
+ $(this.photo).load(function () {
+ $('img.contacts_details_photo').remove()
+ $(this).addClass('contacts_details_photo');
+ wrapper.removeClass('loading').removeClass('wait');
+ $(this).insertAfter($('#phototools')).fadeIn();
+ }).error(function () {
+ // notify the user that the image could not be loaded
+ OC.Contacts.notify({message:t('contacts','Error loading profile picture.')});
+ }).attr('src', OC.linkTo('contacts', 'photo.php')+'?id='+self.id+refreshstr);
+ this.loadPhotoHandlers()
+ },
+ editCurrentPhoto:function(){
+ $.getJSON(OC.filePath('contacts', 'ajax', 'currentphoto.php'),{'id':this.id},function(jsondata){
+ if(jsondata.status == 'success'){
+ //alert(jsondata.data.page);
+ OC.Contacts.Card.editPhoto(jsondata.data.id, jsondata.data.tmp)
+ $('#edit_photo_dialog_img').html(jsondata.data.page);
}
- if(adr[6].length > 0) {
- adrtxt = adrtxt + '<li>' + adr[6] + '</li>';
+ else{
+ wrapper.removeClass('wait');
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
}
- container.find('.addresslist').html(adrtxt);
- },
- uploadPhoto:function(filelist) {
- if(!filelist) {
- OC.dialogs.alert(t('contacts','No files selected for upload.'), t('contacts', 'Error'));
- return;
+ });
+ },
+ editPhoto:function(id, tmpkey){
+ //alert('editPhoto: ' + tmpkey);
+ $.getJSON(OC.filePath('contacts', 'ajax', 'cropphoto.php'),{'tmpkey':tmpkey,'id':this.id, 'requesttoken':requesttoken},function(jsondata){
+ if(jsondata.status == 'success'){
+ //alert(jsondata.data.page);
+ $('#edit_photo_dialog_img').html(jsondata.data.page);
}
- var file = filelist[0];
- var target = $('#file_upload_target');
- var form = $('#file_upload_form');
- var totalSize=0;
- if(file.size > $('#max_upload').val()){
- OC.dialogs.alert(t('contacts','The file you are trying to upload exceed the maximum size for file uploads on this server.'), t('contacts', 'Error'));
- return;
- } else {
- target.load(function(){
- var response=jQuery.parseJSON(target.contents().text());
- if(response != undefined && response.status == 'success'){
- Contacts.UI.Card.editPhoto(response.data.id, response.data.tmp);
- //alert('File: ' + file.tmp + ' ' + file.name + ' ' + file.mime);
- }else{
- OC.dialogs.alert(response.data.message, t('contacts', 'Error'));
- }
- });
- form.submit();
+ else{
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
}
- },
- loadPhotoHandlers:function() {
- var phototools = $('#phototools');
- phototools.find('li a').tipsy('hide');
- phototools.find('li a').tipsy();
- if(this.data.PHOTO) {
- phototools.find('.delete').click(function() {
- $(this).tipsy('hide');
- Contacts.UI.Card.deleteProperty($('#contacts_details_photo'), 'single');
- $(this).hide();
- });
- phototools.find('.edit').click(function() {
- $(this).tipsy('hide');
- Contacts.UI.Card.editCurrentPhoto();
- });
- phototools.find('.delete').show();
- phototools.find('.edit').show();
- } else {
- phototools.find('.delete').hide();
- phototools.find('.edit').hide();
+ });
+ if($('#edit_photo_dialog').dialog('isOpen') == true){
+ $('#edit_photo_dialog').dialog('moveToTop');
+ } else {
+ $('#edit_photo_dialog').dialog('open');
+ }
+ },
+ savePhoto:function(){
+ var target = $('#crop_target');
+ var form = $('#cropform');
+ var wrapper = $('#contacts_details_photo_wrapper');
+ var self = this;
+ wrapper.addClass('wait');
+ form.submit();
+ target.load(function(){
+ var response=jQuery.parseJSON(target.contents().text());
+ if(response != undefined && response.status == 'success'){
+ // load cropped photo.
+ self.loadPhoto(true);
+ OC.Contacts.Card.data.PHOTO = true;
+ }else{
+ OC.dialogs.alert(response.data.message, t('contacts', 'Error'));
+ wrapper.removeClass('wait');
}
- },
- cloudPhotoSelected:function(path){
- $.getJSON(OC.filePath('contacts', 'ajax', 'oc_photo.php'),{'path':path,'id':Contacts.UI.Card.id},function(jsondata){
- if(jsondata.status == 'success'){
- //alert(jsondata.data.page);
- Contacts.UI.Card.editPhoto(jsondata.data.id, jsondata.data.tmp)
- $('#edit_photo_dialog_img').html(jsondata.data.page);
- }
- else{
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- },
- loadPhoto:function(refresh){
- var self = this;
- var refreshstr = (refresh?'&refresh=1'+Math.random():'')
- $('#phototools li a').tipsy('hide');
- var wrapper = $('#contacts_details_photo_wrapper');
- wrapper.addClass('loading').addClass('wait');
- delete this.photo;
- this.photo = new Image();
- $(this.photo).load(function () {
- $('img.contacts_details_photo').remove()
- $(this).addClass('contacts_details_photo');
- wrapper.removeClass('loading').removeClass('wait');
- $(this).insertAfter($('#phototools')).fadeIn();
- }).error(function () {
- // notify the user that the image could not be loaded
- Contacts.UI.notify({message:t('contacts','Error loading profile picture.')});
- }).attr('src', OC.linkTo('contacts', 'photo.php')+'?id='+self.id+refreshstr);
- this.loadPhotoHandlers()
- },
- editCurrentPhoto:function(){
- $.getJSON(OC.filePath('contacts', 'ajax', 'currentphoto.php'),{'id':this.id},function(jsondata){
- if(jsondata.status == 'success'){
- //alert(jsondata.data.page);
- Contacts.UI.Card.editPhoto(jsondata.data.id, jsondata.data.tmp)
- $('#edit_photo_dialog_img').html(jsondata.data.page);
- }
- else{
- wrapper.removeClass('wait');
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- },
- editPhoto:function(id, tmpkey){
- //alert('editPhoto: ' + tmpkey);
- $.getJSON(OC.filePath('contacts', 'ajax', 'cropphoto.php'),{'tmpkey':tmpkey,'id':this.id, 'requesttoken':requesttoken},function(jsondata){
- if(jsondata.status == 'success'){
- //alert(jsondata.data.page);
- $('#edit_photo_dialog_img').html(jsondata.data.page);
+ });
+ OC.Contacts.Contacts.refreshThumbnail(this.id);
+ },
+ addMail:function() {
+ //alert('addMail');
+ var emaillist = $('#emaillist');
+ emaillist.find('li.template:first-child').clone(true).appendTo(emaillist).show().find('a .tip').tipsy();
+ emaillist.find('li.template:last-child').find('select').addClass('contacts_property');
+ emaillist.find('li.template:last-child').removeClass('template').addClass('propertycontainer');
+ emaillist.find('li:last-child').find('input[type="email"]').focus();
+ return false;
+ },
+ loadMails:function() {
+ $('#emails').hide();
+ $('#emaillist li.propertycontainer').remove();
+ for(var mail in this.data.EMAIL) {
+ this.addMail();
+ //$('#emaillist li:first-child').clone().appendTo($('#emaillist')).show();
+ $('#emaillist li:last-child').data('checksum', this.data.EMAIL[mail]['checksum'])
+ $('#emaillist li:last-child').find('input[type="email"]').val(this.data.EMAIL[mail]['value']);
+ for(var param in this.data.EMAIL[mail]['parameters']) {
+ if(param.toUpperCase() == 'PREF') {
+ $('#emaillist li:last-child').find('input[type="checkbox"]').attr('checked', 'checked')
}
- else{
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
+ else if(param.toUpperCase() == 'TYPE') {
+ for(etype in this.data.EMAIL[mail]['parameters'][param]) {
+ var et = this.data.EMAIL[mail]['parameters'][param][etype];
+ $('#emaillist li:last-child').find('select option').each(function(){
+ if($.inArray($(this).val().toUpperCase(), et.toUpperCase().split(',')) > -1) {
+ $(this).attr('selected', 'selected');
+ }
+ });
+ }
}
- });
- if($('#edit_photo_dialog').dialog('isOpen') == true){
- $('#edit_photo_dialog').dialog('moveToTop');
- } else {
- $('#edit_photo_dialog').dialog('open');
}
- },
- savePhoto:function(){
- var target = $('#crop_target');
- var form = $('#cropform');
- var wrapper = $('#contacts_details_photo_wrapper');
- var self = this;
- wrapper.addClass('wait');
- form.submit();
- target.load(function(){
- var response=jQuery.parseJSON(target.contents().text());
- if(response != undefined && response.status == 'success'){
- // load cropped photo.
- self.loadPhoto(true);
- Contacts.UI.Card.data.PHOTO = true;
- }else{
- OC.dialogs.alert(response.data.message, t('contacts', 'Error'));
- wrapper.removeClass('wait');
+ }
+ if($('#emaillist li').length > 1) {
+ $('#emails').show();
+ $('#contact_communication').show();
+ }
+ $('#emaillist li:last-child').find('input[type="text"]').focus();
+ return false;
+ },
+ addPhone:function() {
+ var phonelist = $('#phonelist');
+ phonelist.find('li.template:first-child').clone(true).appendTo(phonelist); //.show();
+ phonelist.find('li.template:last-child').find('select').addClass('contacts_property');
+ phonelist.find('li.template:last-child').removeClass('template').addClass('propertycontainer');
+ phonelist.find('li:last-child').find('input[type="text"]').focus();
+ phonelist.find('li:last-child').find('select').multiselect({
+ noneSelectedText: t('contacts', 'Select type'),
+ header: false,
+ selectedList: 4,
+ classes: 'typelist'
+ });
+ phonelist.find('li:last-child').show();
+ return false;
+ },
+ loadPhones:function() {
+ $('#phones').hide();
+ $('#phonelist li.propertycontainer').remove();
+ var phonelist = $('#phonelist');
+ for(var phone in this.data.TEL) {
+ this.addPhone();
+ phonelist.find('li:last-child').find('select').multiselect('destroy');
+ phonelist.find('li:last-child').data('checksum', this.data.TEL[phone]['checksum'])
+ phonelist.find('li:last-child').find('input[type="text"]').val(this.data.TEL[phone]['value']);
+ for(var param in this.data.TEL[phone]['parameters']) {
+ if(param.toUpperCase() == 'PREF') {
+ phonelist.find('li:last-child').find('input[type="checkbox"]').attr('checked', 'checked');
}
- });
- Contacts.UI.Contacts.refreshThumbnail(this.id);
- },
- addMail:function() {
- //alert('addMail');
- var emaillist = $('#emaillist');
- emaillist.find('li.template:first-child').clone(true).appendTo(emaillist).show().find('a .tip').tipsy();
- emaillist.find('li.template:last-child').find('select').addClass('contacts_property');
- emaillist.find('li.template:last-child').removeClass('template').addClass('propertycontainer');
- emaillist.find('li:last-child').find('input[type="email"]').focus();
- return false;
- },
- loadMails:function() {
- $('#emails').hide();
- $('#emaillist li.propertycontainer').remove();
- for(var mail in this.data.EMAIL) {
- this.addMail();
- //$('#emaillist li:first-child').clone().appendTo($('#emaillist')).show();
- $('#emaillist li:last-child').data('checksum', this.data.EMAIL[mail]['checksum'])
- $('#emaillist li:last-child').find('input[type="email"]').val(this.data.EMAIL[mail]['value']);
- for(var param in this.data.EMAIL[mail]['parameters']) {
- if(param.toUpperCase() == 'PREF') {
- $('#emaillist li:last-child').find('input[type="checkbox"]').attr('checked', 'checked')
- }
- else if(param.toUpperCase() == 'TYPE') {
- for(etype in this.data.EMAIL[mail]['parameters'][param]) {
- var et = this.data.EMAIL[mail]['parameters'][param][etype];
- $('#emaillist li:last-child').find('select option').each(function(){
- if($.inArray($(this).val().toUpperCase(), et.toUpperCase().split(',')) > -1) {
- $(this).attr('selected', 'selected');
- }
- });
- }
+ else if(param.toUpperCase() == 'TYPE') {
+ for(ptype in this.data.TEL[phone]['parameters'][param]) {
+ var pt = this.data.TEL[phone]['parameters'][param][ptype];
+ phonelist.find('li:last-child').find('select option').each(function(){
+ //if ($(this).val().toUpperCase() == pt.toUpperCase()) {
+ if ($.inArray($(this).val().toUpperCase(), pt.toUpperCase().split(',')) > -1) {
+ $(this).attr('selected', 'selected');
+ }
+ });
}
}
}
- if($('#emaillist li').length > 1) {
- $('#emails').show();
- $('#contact_communication').show();
- }
-
- $('#emaillist li:last-child').find('input[type="text"]').focus();
- return false;
- },
- addPhone:function() {
- var phonelist = $('#phonelist');
- phonelist.find('li.template:first-child').clone(true).appendTo(phonelist); //.show();
- phonelist.find('li.template:last-child').find('select').addClass('contacts_property');
- phonelist.find('li.template:last-child').removeClass('template').addClass('propertycontainer');
- phonelist.find('li:last-child').find('input[type="text"]').focus();
phonelist.find('li:last-child').find('select').multiselect({
- noneSelectedText: t('contacts', 'Select type'),
- header: false,
- selectedList: 4,
- classes: 'typelist'
- });
- phonelist.find('li:last-child').show();
- return false;
- },
- loadPhones:function() {
- $('#phones').hide();
- $('#phonelist li.propertycontainer').remove();
- var phonelist = $('#phonelist');
- for(var phone in this.data.TEL) {
- this.addPhone();
- phonelist.find('li:last-child').find('select').multiselect('destroy');
- phonelist.find('li:last-child').data('checksum', this.data.TEL[phone]['checksum'])
- phonelist.find('li:last-child').find('input[type="text"]').val(this.data.TEL[phone]['value']);
- for(var param in this.data.TEL[phone]['parameters']) {
- if(param.toUpperCase() == 'PREF') {
- phonelist.find('li:last-child').find('input[type="checkbox"]').attr('checked', 'checked');
- }
- else if(param.toUpperCase() == 'TYPE') {
- for(ptype in this.data.TEL[phone]['parameters'][param]) {
- var pt = this.data.TEL[phone]['parameters'][param][ptype];
- phonelist.find('li:last-child').find('select option').each(function(){
- //if ($(this).val().toUpperCase() == pt.toUpperCase()) {
- if ($.inArray($(this).val().toUpperCase(), pt.toUpperCase().split(',')) > -1) {
- $(this).attr('selected', 'selected');
- }
- });
- }
- }
+ noneSelectedText: t('contacts', 'Select type'),
+ header: false,
+ selectedList: 4,
+ classes: 'typelist'
+ });
+ }
+ if(phonelist.find('li').length > 1) {
+ $('#phones').show();
+ $('#contact_communication').show();
+ }
+ return false;
+ },
+ },
+ Contacts:{
+ contacts:{},
+ deletionQueue:[],
+ batchnum:50,
+ warnNotDeleted:function(e) {
+ e = e || window.event;
+ var warn = t('contacts', 'Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted.');
+ if (e) {
+ e.returnValue = String(warn);
+ }
+ if(OC.Contacts.Contacts.deletionQueue.length > 0) {
+ setTimeout(OC.Contacts.Contacts.deleteFilesInQueue, 1);
+ }
+ return warn;
+ },
+ deleteFilesInQueue:function() {
+ var queue = OC.Contacts.Contacts.deletionQueue;
+ if(queue.length > 0) {
+ OC.Contacts.notify({cancel:true});
+ while(queue.length > 0) {
+ var id = queue.pop();
+ if(id) {
+ OC.Contacts.Card.doDelete(id, false);
}
- phonelist.find('li:last-child').find('select').multiselect({
- noneSelectedText: t('contacts', 'Select type'),
- header: false,
- selectedList: 4,
- classes: 'typelist'
- });
- }
- if(phonelist.find('li').length > 1) {
- $('#phones').show();
- $('#contact_communication').show();
}
- return false;
- },
+ }
},
- Addressbooks:{
- overview:function(){
- if($('#chooseaddressbook_dialog').dialog('isOpen') == true){
- $('#chooseaddressbook_dialog').dialog('moveToTop');
- }else{
- $('body').append('<div id="addressbook_dialog"></div>');
- $.getJSON(OC.filePath('contacts', 'ajax', 'chooseaddressbook.php'), function(jsondata){
- if(jsondata.status == 'success'){
- $('#addressbook_dialog').html(jsondata.data.page).find('#chooseaddressbook_dialog').dialog({
- minWidth : 600,
- close : function(event, ui) {
- $(this).dialog('destroy').remove();
- $('#addressbook_dialog').remove();
- }
- }).css('overflow','visible');
- } else {
- alert(jsondata.data.message);
- $('#addressbook_dialog').remove();
- }
- });
- }
+ getContact:function(id) {
+ if(!this.contacts[id]) {
+ this.contacts[id] = $('#contacts li[data-id="'+id+'"]');
+ if(!this.contacts[id]) {
+ self = this;
+ $.getJSON(OC.filePath('contacts', 'ajax', 'contactdetails.php'),{'id':id},function(jsondata){
+ if(jsondata.status == 'success'){
+ self.contacts[id] = self.insertContact({data:jsondata.data});
+ }
+ else{
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
+ }
+ });
+ }
+ }
+ return this.contacts[id];
+ },
+ drop:function(event, ui) {
+ var dragitem = ui.draggable, droptarget = $(this);
+ if(dragitem.is('li')) {
+ OC.Contacts.Contacts.dropContact(event, dragitem, droptarget);
+ } else {
+ OC.Contacts.Contacts.dropAddressbook(event, dragitem, droptarget);
+ }
+ },
+ dropContact:function(event, dragitem, droptarget) {
+ if(dragitem.data('bookid') == droptarget.data('id')) {
return false;
- },
- activation:function(checkbox, bookid){
- var active = checkbox.checked;
- $.post(OC.filePath('contacts', 'ajax', 'activation.php'), {bookid: bookid, active: (active?1:0)}, function(jsondata) {
- if (jsondata.status == 'success'){
- if(!active) {
- $('#contacts h3[data-id="'+bookid+'"],#contacts ul[data-id="'+bookid+'"]').remove();
- } else {
- Contacts.UI.Contacts.update();
- }
+ }
+ var droplist = (droptarget.is('ul'))?droptarget:droptarget.next();
+ $.post(OC.filePath('contacts', 'ajax', 'contact/move.php'), { ids: dragitem.data('id'), aid: droptarget.data('id') },
+ function(jsondata){
+ if(jsondata.status == 'success'){
+ dragitem.attr('data-bookid', droptarget.data('id'))
+ dragitem.data('bookid', droptarget.data('id'));
+ OC.Contacts.Contacts.insertContact({
+ contactlist:droplist,
+ contact:dragitem.detach()
+ });
+ OC.Contacts.Contacts.scrollTo(dragitem.data('id'));
} else {
OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- checkbox.checked = !active;
}
- });
- },
- addAddressbook:function(name, description, cb) {
- $.post(OC.filePath('contacts', 'ajax', 'addaddressbook.php'), { name: name, description: description, active: true },
- function(jsondata){
- if(jsondata.status == 'success'){
- if(cb) {
- cb(jsondata.data);
- }
- } else {
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- return false;
- }
- });
-
- },
- newAddressbook:function(object){
- var tr = $(document.createElement('tr'))
- .load(OC.filePath('contacts', 'ajax', 'addbook.php'));
- $(object).closest('tr').after(tr).hide();
- },
- editAddressbook:function(object, bookid){
- var tr = $(document.createElement('tr'))
- .load(OC.filePath('contacts', 'ajax', 'editaddressbook.php') + "?bookid="+bookid);
- $(object).closest('tr').after(tr).hide();
- },
- deleteAddressbook:function(obj, bookid){
- var check = confirm("Do you really want to delete this address book?");
- if(check == false){
- return false;
- }else{
- $.post(OC.filePath('contacts', 'ajax', 'deletebook.php'), { id: bookid},
- function(jsondata) {
- if (jsondata.status == 'success'){
- $(obj).closest('tr').remove();
- $('#contacts h3[data-id="'+bookid+'"],#contacts ul[data-id="'+bookid+'"]').remove();
- Contacts.UI.Contacts.update();
- } else {
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- }
- },
- doImport:function(file, aid){
- $.post(OC.filePath('contacts', '', 'import.php'), { id: aid, file: file, fstype: 'OC_FilesystemView' },
- function(jsondata){
- if(jsondata.status != 'success'){
- Contacts.UI.notify({message:jsondata.data.message});
- }
- });
- return false;
- },
- submit:function(button, bookid){
- var displayname = $("#displayname_"+bookid).val().trim();
- var active = $("#edit_active_"+bookid+":checked").length;
- var description = $("#description_"+bookid).val();
-
- if(displayname.length == 0) {
- OC.dialogs.alert(t('contacts', 'Displayname cannot be empty.'), t('contacts', 'Error'));
- return false;
- }
- var url;
- if (bookid == 'new'){
- url = OC.filePath('contacts', 'ajax', 'createaddressbook.php');
- }else{
- url = OC.filePath('contacts', 'ajax', 'updateaddressbook.php');
- }
- $.post(url, { id: bookid, name: displayname, active: active, description: description },
- function(jsondata){
- if(jsondata.status == 'success'){
- $(button).closest('tr').prev().html(jsondata.page).show().next().remove();
- Contacts.UI.Contacts.update();
- } else {
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
+ });
+ },
+ dropAddressbook:function(event, dragitem, droptarget) {
+ alert('Dropping address books not implemented yet');
+ },
+ /**
+ * @params params An object with the properties 'contactlist':a jquery object of the ul to insert into,
+ * 'contacts':a jquery object of all items in the list and either 'data': an object with the properties
+ * id, addressbookid and displayname or 'contact': a listitem to be inserted directly.
+ * If 'contactlist' or 'contacts' aren't defined they will be search for based in the properties in 'data'.
+ */
+ insertContact:function(params) {
+ var id, bookid;
+ if(!params.contactlist) {
+ // FIXME: Check if contact really exists.
+ bookid = params.data ? params.data.addressbookid : params.contact.data('bookid');
+ id = params.data ? params.data.id : params.contact.data('id');
+ params.contactlist = $('#contacts ul[data-id="'+bookid+'"]');
+ }
+ if(!params.contacts) {
+ bookid = params.data ? params.data.addressbookid : params.contact.data('bookid');
+ id = params.data ? params.data.id : params.contact.data('id');
+ params.contacts = $('#contacts ul[data-id="'+bookid+'"] li');
+ }
+ var contact = params.data
+ ? $('<li data-id="'+params.data.id+'" data-bookid="'+params.data.addressbookid
+ + '" role="button"><a href="'+OC.linkTo('contacts', 'index.php')+'&id='
+ + params.data.id+'" style="background: url('+OC.filePath('contacts', '', 'thumbnail.php')
+ + '?id='+params.data.id+') no-repeat scroll 0% 0% transparent;">'
+ + params.data.displayname+'</a></li>')
+ : params.contact;
+ var added = false;
+ var name = params.data ? params.data.displayname.toLowerCase() : contact.find('a').text().toLowerCase();
+ if(params.contacts) {
+ params.contacts.each(function() {
+ if ($(this).text().toLowerCase() > name) {
+ $(this).before(contact);
+ added = true;
+ return false;
+ }
});
- },
- cancel:function(button, bookid){
- $(button).closest('tr').prev().show().next().remove();
}
+ if(!added || !params.contacts) {
+ params.contactlist.append(contact);
+ }
+ //this.contacts[id] = contact;
+ return contact;
},
- Contacts:{
- contacts:{},
- deletionQueue:[],
- batchnum:50,
- warnNotDeleted:function(e) {
- e = e || window.event;
- var warn = t('contacts', 'Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted.');
- if (e) {
- e.returnValue = String(warn);
- }
- if(Contacts.UI.Contacts.deletionQueue.length > 0) {
- setTimeout(Contacts.UI.Contacts.deleteFilesInQueue, 1);
- }
- return warn;
- },
- deleteFilesInQueue:function() {
- var queue = Contacts.UI.Contacts.deletionQueue;
- if(queue.length > 0) {
- Contacts.UI.notify({cancel:true});
- while(queue.length > 0) {
- var id = queue.pop();
- if(id) {
- Contacts.UI.Card.doDelete(id, false);
- }
+ addAddressbook:function(name, description, cb) {
+ $.post(OC.filePath('contacts', 'ajax/addressbook', 'add.php'), { name: name, description: description, active: true },
+ function(jsondata) {
+ if(jsondata.status == 'success'){
+ if(cb && typeof cb == 'function') {
+ cb(jsondata.data.addressbook);
}
- }
- },
- getContact:function(id) {
- if(!this.contacts[id]) {
- this.contacts[id] = $('#contacts li[data-id="'+id+'"]');
- if(!this.contacts[id]) {
- self = this;
- $.getJSON(OC.filePath('contacts', 'ajax', 'contactdetails.php'),{'id':id},function(jsondata){
- if(jsondata.status == 'success'){
- self.contacts[id] = self.insertContact({data:jsondata.data});
- }
- else{
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
- });
- }
- }
- return this.contacts[id];
- },
- drop:function(event, ui) {
- var dragitem = ui.draggable, droptarget = $(this);
- if(dragitem.is('li')) {
- Contacts.UI.Contacts.dropContact(event, dragitem, droptarget);
} else {
- Contacts.UI.Contacts.dropAddressbook(event, dragitem, droptarget);
- }
- },
- dropContact:function(event, dragitem, droptarget) {
- if(dragitem.data('bookid') == droptarget.data('id')) {
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
return false;
}
- var droplist = (droptarget.is('ul'))?droptarget:droptarget.next();
- $.post(OC.filePath('contacts', 'ajax', 'movetoaddressbook.php'), { ids: dragitem.data('id'), aid: droptarget.data('id') },
- function(jsondata){
- if(jsondata.status == 'success'){
- dragitem.attr('data-bookid', droptarget.data('id'))
- dragitem.data('bookid', droptarget.data('id'));
- Contacts.UI.Contacts.insertContact({
- contactlist:droplist,
- contact:dragitem.detach()
- });
- Contacts.UI.Contacts.scrollTo(dragitem.data('id'));
- } else {
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
- }
+ });
+ },
+ doImport:function(file, aid){
+ $.post(OC.filePath('contacts', '', 'import.php'), { id: aid, file: file, fstype: 'OC_FilesystemView' },
+ function(jsondata){
+ if(jsondata.status != 'success'){
+ OC.Contacts.notify({message:jsondata.data.message});
+ }
+ });
+ return false;
+ },
+ next:function(reverse) {
+ var curlistitem = this.getContact(OC.Contacts.Card.id);
+ var newlistitem = reverse ? curlistitem.prev('li') : curlistitem.next('li');
+ if(newlistitem) {
+ curlistitem.removeClass('active');
+ OC.Contacts.Card.update({
+ cid:newlistitem.data('id'),
+ aid:newlistitem.data('bookid')
});
- },
- dropAddressbook:function(event, dragitem, droptarget) {
- alert('Dropping address books not implemented yet');
- },
- /**
- * @params params An object with the properties 'contactlist':a jquery object of the ul to insert into,
- * 'contacts':a jquery object of all items in the list and either 'data': an object with the properties
- * id, addressbookid and displayname or 'contact': a listitem to be inserted directly.
- * If 'contactlist' or 'contacts' aren't defined they will be search for based in the properties in 'data'.
- */
- insertContact:function(params) {
- var id, bookid;
- if(!params.contactlist) {
- // FIXME: Check if contact really exists.
- bookid = params.data ? params.data.addressbookid : params.contact.data('bookid');
- id = params.data ? params.data.id : params.contact.data('id');
- params.contactlist = $('#contacts ul[data-id="'+bookid+'"]');
- }
- if(!params.contacts) {
- bookid = params.data ? params.data.addressbookid : params.contact.data('bookid');
- id = params.data ? params.data.id : params.contact.data('id');
- params.contacts = $('#contacts ul[data-id="'+bookid+'"] li');
- }
- var contact = params.data
- ? $('<li data-id="'+params.data.id+'" data-bookid="'+params.data.addressbookid+'" role="button"><a href="'+OC.linkTo('contacts', 'index.php')+'&id='+params.data.id+'" style="background: url('+OC.filePath('contacts', '', 'thumbnail.php')+'?id='+params.data.id+') no-repeat scroll 0% 0% transparent;">'+params.data.displayname+'</a></li>')
- : params.contact;
- var added = false;
- var name = params.data ? params.data.displayname.toLowerCase() : contact.find('a').text().toLowerCase();
- if(params.contacts) {
- params.contacts.each(function() {
- if ($(this).text().toLowerCase() > name) {
- $(this).before(contact);
- added = true;
- return false;
- }
- });
- }
- if(!added || !params.contacts) {
- params.contactlist.append(contact);
- }
- //this.contacts[id] = contact;
- return contact;
- },
- next:function(reverse) {
- // TODO: Check if we're last-child/first-child and jump to next/prev address book.
- var curlistitem = $('#contacts li[data-id="'+Contacts.UI.Card.id+'"]');
- var newlistitem = reverse ? curlistitem.prev('li') : curlistitem.next('li');
+ }
+ },
+ previous:function() {
+ this.next(true);
+ },
+ nextAddressbook:function(reverse) {
+ console.log('nextAddressbook', reverse);
+ var curlistitem = this.getContact(OC.Contacts.Card.id);
+ var parent = curlistitem.parent('ul');
+ var newparent = reverse
+ ? parent.prevAll('ul').first()
+ : parent.nextAll('ul').first();
+ if(newparent) {
+ newlistitem = newparent.find('li:first-child');
if(newlistitem) {
+ parent.slideUp().prev('h3').removeClass('active');
+ newparent.slideDown().prev('h3').addClass('active');
curlistitem.removeClass('active');
- Contacts.UI.Card.update({
+ OC.Contacts.Card.update({
cid:newlistitem.data('id'),
aid:newlistitem.data('bookid')
});
}
- },
- previous:function() {
- this.next(true);
- },
- // Reload the contacts list.
- update:function(params){
- if(!params) { params = {}; }
- if(!params.start) {
- if(params.aid) {
- $('#contacts h3[data-id="'+params.aid+'"],#contacts ul[data-id="'+params.aid+'"]').remove();
- } else {
- $('#contacts').empty();
- }
- }
- self = this;
- console.log('update: ' + params.cid + ' ' + params.aid + ' ' + params.start);
- var firstrun = false;
- var opts = {};
- opts['startat'] = (params.start?params.start:0);
+ }
+ },
+ previousAddressbook:function() {
+ console.log('previousAddressbook');
+ this.nextAddressbook(true);
+ },
+ // Reload the contacts list.
+ update:function(params){
+ if(!params) { params = {}; }
+ if(!params.start) {
if(params.aid) {
- opts['aid'] = params.aid;
+ $('#contacts h3[data-id="'+params.aid+'"],#contacts ul[data-id="'+params.aid+'"]').remove();
+ } else {
+ $('#contacts').empty();
}
- $.getJSON(OC.filePath('contacts', 'ajax', 'contacts.php'),opts,function(jsondata){
- if(jsondata.status == 'success'){
- var books = jsondata.data.entries;
- $.each(books, function(b, book) {
- if($('#contacts h3[data-id="'+b+'"]').length == 0) {
- firstrun = true;
- if($('#contacts h3').length == 0) {
- $('#contacts').html('<h3 class="addressbook" contextmenu="addressbookmenu" data-id="'+b+'">'+book.displayname+'</h3><ul class="contacts hidden" data-id="'+b+'"></ul>');
- } else {
- if(!$('#contacts h3[data-id="'+b+'"]').length) {
- var item = $('<h3 class="addressbook" contextmenu="addressbookmenu" data-id="'+b+'">'+book.displayname+'</h3><ul class="contacts hidden" data-id="'+b+'"></ul>')
- var added = false;
- $('#contacts h3').each(function(){
- if ($(this).text().toLowerCase() > book.displayname.toLowerCase()) {
- $(this).before(item).fadeIn('fast');
- added = true;
- return false;
- }
- });
- if(!added) {
- $('#contacts').append(item);
+ }
+ self = this;
+ console.log('update: ' + params.cid + ' ' + params.aid + ' ' + params.start);
+ var firstrun = false;
+ var opts = {};
+ opts['startat'] = (params.start?params.start:0);
+ if(params.aid) {
+ opts['aid'] = params.aid;
+ }
+ $.getJSON(OC.filePath('contacts', 'ajax', 'contact/list.php'),opts,function(jsondata){
+ if(jsondata.status == 'success'){
+ var books = jsondata.data.entries;
+ $.each(books, function(b, book) {
+ if($('#contacts h3[data-id="'+b+'"]').length == 0) {
+ firstrun = true;
+ if($('#contacts h3').length == 0) {
+ $('#contacts').html('<h3 class="addressbook" contextmenu="addressbookmenu" data-id="'
+ + b+'">'+book.displayname+'</h3><ul class="contacts hidden" data-id="'+b+'"></ul>');
+ } else {
+ if(!$('#contacts h3[data-id="'+b+'"]').length) {
+ var item = $('<h3 class="addressbook" contextmenu="addressbookmenu" data-id="'+b+'">'
+ + book.displayname+'</h3><ul class="contacts hidden" data-id="'+b+'"></ul>')
+ var added = false;
+ $('#contacts h3').each(function(){
+ if ($(this).text().toLowerCase() > book.displayname.toLowerCase()) {
+ $(this).before(item).fadeIn('fast');
+ added = true;
+ return false;
}
-
- }
- }
- $('#contacts h3[data-id="'+b+'"]').on('click', function(event) {
- $('#contacts h3').removeClass('active');
- $(this).addClass('active');
- $('#contacts ul[data-id="'+b+'"]').slideToggle(300);
- return false;
- });
- var accept = 'li:not([data-bookid="'+b+'"]),h3:not([data-id="'+b+'"])';
- $('#contacts h3[data-id="'+b+'"],#contacts ul[data-id="'+b+'"]').droppable({
- drop: Contacts.UI.Contacts.drop,
- activeClass: 'ui-state-hover',
- accept: accept
- });
- }
- var contactlist = $('#contacts ul[data-id="'+b+'"]');
- var contacts = $('#contacts ul[data-id="'+b+'"] li');
- for(var c in book.contacts) {
- if(book.contacts[c].id == undefined) { continue; }
- if(!$('#contacts li[data-id="'+book.contacts[c]['id']+'"]').length) {
- var contact = Contacts.UI.Contacts.insertContact({contactlist:contactlist, contacts:contacts, data:book.contacts[c]});
- if(c == self.batchnum-10) {
- contact.bind('inview', function(event, isInView, visiblePartX, visiblePartY) {
- $(this).unbind(event);
- var bookid = $(this).data('bookid');
- var numsiblings = $('.contacts li[data-bookid="'+bookid+'"]').length;
- if (isInView && numsiblings >= self.batchnum) {
- console.log('This would be a good time to load more contacts.');
- Contacts.UI.Contacts.update({cid:params.cid, aid:bookid, start:$('#contacts li[data-bookid="'+bookid+'"]').length});
- }
- });
+ });
+ if(!added) {
+ $('#contacts').append(item);
}
}
}
- });
- if($('#contacts h3').length > 1) {
- $('#contacts li,#contacts h3').draggable({
- distance: 10,
- revert: 'invalid',
- axis: 'y', containment: '#contacts',
- scroll: true, scrollSensitivity: 40,
- opacity: 0.7, helper: 'clone'
+ $('#contacts h3[data-id="'+b+'"]').on('click', function(event) {
+ $('#contacts h3').removeClass('active');
+ $(this).addClass('active');
+ $('#contacts ul[data-id="'+b+'"]').slideToggle(300);
+ return false;
+ });
+ var accept = 'li:not([data-bookid="'+b+'"]),h3:not([data-id="'+b+'"])';
+ $('#contacts h3[data-id="'+b+'"],#contacts ul[data-id="'+b+'"]').droppable({
+ drop: OC.Contacts.Contacts.drop,
+ activeClass: 'ui-state-hover',
+ accept: accept
});
- } else {
- $('#contacts h3').first().addClass('active');
}
- if(opts['startat'] == 0) { // only update card on first load.
- Contacts.UI.Card.update(params);
+ var contactlist = $('#contacts ul[data-id="'+b+'"]');
+ var contacts = $('#contacts ul[data-id="'+b+'"] li');
+ for(var c in book.contacts) {
+ if(book.contacts[c].id == undefined) { continue; }
+ if(!$('#contacts li[data-id="'+book.contacts[c]['id']+'"]').length) {
+ var contact = OC.Contacts.Contacts.insertContact({contactlist:contactlist, contacts:contacts, data:book.contacts[c]});
+ if(c == self.batchnum-10) {
+ contact.bind('inview', function(event, isInView, visiblePartX, visiblePartY) {
+ $(this).unbind(event);
+ var bookid = $(this).data('bookid');
+ var numsiblings = $('.contacts li[data-bookid="'+bookid+'"]').length;
+ if (isInView && numsiblings >= self.batchnum) {
+ console.log('This would be a good time to load more contacts.');
+ OC.Contacts.Contacts.update({cid:params.cid, aid:bookid, start:$('#contacts li[data-bookid="'+bookid+'"]').length});
+ }
+ });
+ }
+ }
}
+ });
+ if($('#contacts h3').length > 1) {
+ $('#contacts li,#contacts h3').draggable({
+ distance: 10,
+ revert: 'invalid',
+ axis: 'y', containment: '#contacts',
+ scroll: true, scrollSensitivity: 40,
+ opacity: 0.7, helper: 'clone'
+ });
+ } else {
+ $('#contacts h3').first().addClass('active');
}
- else{
- OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
+ if(opts['startat'] == 0) { // only update card on first load.
+ OC.Contacts.Card.update(params);
}
- });
- },
- refreshThumbnail:function(id){
- var item = $('.contacts li[data-id="'+id+'"]').find('a');
- item.html(Contacts.UI.Card.fn);
- item.css('background','url('+OC.filePath('contacts', '', 'thumbnail.php')+'?id='+id+'&refresh=1'+Math.random()+') no-repeat');
- },
- scrollTo:function(id){
- var item = $('#contacts li[data-id="'+id+'"]');
- if(item && $.isNumeric(item.offset().top)) {
- console.log('scrollTo ' + parseInt(item.offset().top));
- $('#contacts').animate({
- scrollTop: parseInt(item.offset()).top-40}, 'slow','swing');
+ } else {
+ OC.Contacts.notify({message:t('contacts', 'Error')+': '+jsondata.data.message});
}
+ });
+ },
+ refreshThumbnail:function(id){
+ var item = $('.contacts li[data-id="'+id+'"]').find('a');
+ item.html(OC.Contacts.Card.fn);
+ item.css('background','url('+OC.filePath('contacts', '', 'thumbnail.php')+'?id='+id+'&refresh=1'+Math.random()+') no-repeat');
+ },
+ scrollTo:function(id){
+ var item = $('#contacts li[data-id="'+id+'"]');
+ if(item && $.isNumeric(item.offset().top)) {
+ console.log('scrollTo ' + parseInt(item.offset().top));
+ $('#contacts').animate({
+ scrollTop: parseInt(item.offset()).top-40}, 'slow','swing');
}
}
}
}
$(document).ready(function(){
- OCCategories.changed = Contacts.UI.Card.categoriesChanged;
+ OCCategories.changed = OC.Contacts.Card.categoriesChanged;
OCCategories.app = 'contacts';
- $('#chooseaddressbook').on('click keydown', Contacts.UI.Addressbooks.overview);
- $('#contacts_newcontact').on('click keydown', Contacts.UI.Card.editNew);
-
var ninjahelp = $('#ninjahelp');
+ $('#bottomcontrols .settings').on('click keydown', function() {
+ try {
+ ninjahelp.hide();
+ OC.appSettings({appid:'contacts', loadJS:true, cache:false});
+ } catch(e) {
+ console.log('error:', e.message);
+ }
+ });
+ $('#bottomcontrols .import').click(function() {
+ $('#import_upload_start').trigger('click');
+ });
+ $('#contacts_newcontact').on('click keydown', OC.Contacts.Card.editNew);
+
ninjahelp.find('.close').on('click keydown',function() {
ninjahelp.hide();
});
$(document).on('keyup', function(event) {
- console.log(event.which + ' ' + event.target.nodeName);
if(event.target.nodeName.toUpperCase() != 'BODY'
|| $('#contacts li').length == 0
- || !Contacts.UI.Card.id) {
+ || !OC.Contacts.Card.id) {
return;
}
+ //console.log(event.which + ' ' + event.target.nodeName);
/**
* To add:
- * (Shift)n/p: next/prev addressbook
+ * Shift-a: add addressbook
* u (85): hide/show leftcontent
* f (70): add field
*/
@@ -1771,49 +1711,45 @@ $(document).ready(function(){
case 27: // Esc
ninjahelp.hide();
break;
- case 46:
+ case 46: // Delete
if(event.shiftKey) {
- Contacts.UI.Card.delayedDelete();
+ OC.Contacts.Card.delayedDelete();
}
break;
- case 32: // space
- if(event.shiftKey) {
- Contacts.UI.Contacts.previous();
- break;
- }
case 40: // down
- case 75: // k
- Contacts.UI.Contacts.next();
+ case 74: // j
+ OC.Contacts.Contacts.next();
break;
case 65: // a
if(event.shiftKey) {
// add addressbook
- Contacts.UI.notImplemented();
+ OC.Contacts.notImplemented();
break;
}
- Contacts.UI.Card.editNew();
+ OC.Contacts.Card.editNew();
break;
case 38: // up
- case 74: // j
- Contacts.UI.Contacts.previous();
+ case 75: // k
+ OC.Contacts.Contacts.previous();
break;
+ case 34: // PageDown
case 78: // n
// next addressbook
- Contacts.UI.notImplemented();
+ OC.Contacts.Contacts.nextAddressbook();
break;
- case 13: // Enter
case 79: // o
var aid = $('#contacts h3.active').first().data('id');
if(aid) {
$('#contacts ul[data-id="'+aid+'"]').slideToggle(300);
}
break;
+ case 33: // PageUp
case 80: // p
// prev addressbook
- Contacts.UI.notImplemented();
+ OC.Contacts.Contacts.previousAddressbook();
break;
case 82: // r
- Contacts.UI.Contacts.update({cid:Contacts.UI.Card.id});
+ OC.Contacts.Contacts.update({cid:OC.Contacts.Card.id});
break;
case 191: // ?
ninjahelp.toggle('fast');
@@ -1822,7 +1758,7 @@ $(document).ready(function(){
});
- //$(window).on('beforeunload', Contacts.UI.Contacts.deleteFilesInQueue);
+ //$(window).on('beforeunload', OC.Contacts.Contacts.deleteFilesInQueue);
// Load a contact.
$('.contacts').keydown(function(event) {
@@ -1847,9 +1783,9 @@ $(document).ready(function(){
$('#contacts h3[data-id="'+bookid+'"]').addClass('active');
}
}
- $.getJSON(OC.filePath('contacts', 'ajax', 'contactdetails.php'),{'id':id},function(jsondata){
+ $.getJSON(OC.filePath('contacts', 'ajax', 'contact/details.php'),{'id':id},function(jsondata){
if(jsondata.status == 'success'){
- Contacts.UI.Card.loadContact(jsondata.data, bookid);
+ OC.Contacts.Card.loadContact(jsondata.data, bookid);
}
else{
OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
@@ -1860,7 +1796,7 @@ $(document).ready(function(){
});
$('.contacts_property').live('change', function(){
- Contacts.UI.Card.saveProperty(this);
+ OC.Contacts.Card.saveProperty(this);
});
$(function() {
@@ -1886,7 +1822,7 @@ $(document).ready(function(){
response = $.parseJSON(xhr.responseText);
if(response.status == 'success') {
if(xhr.status == 200) {
- Contacts.UI.Card.editPhoto(response.data.id, response.data.tmp);
+ OC.Contacts.Card.editPhoto(response.data.id, response.data.tmp);
} else {
OC.dialogs.alert(xhr.status + ': ' + xhr.responseText, t('contacts', 'Error'));
}
@@ -1903,7 +1839,7 @@ $(document).ready(function(){
//}
}
};
- xhr.open('POST', OC.filePath('contacts', 'ajax', 'uploadphoto.php')+'?id='+Contacts.UI.Card.id+'&requesttoken='+requesttoken+'&imagefile='+encodeURIComponent(file.name), true);
+ xhr.open('POST', OC.filePath('contacts', 'ajax', 'uploadphoto.php')+'?id='+OC.Contacts.Card.id+'&requesttoken='+requesttoken+'&imagefile='+encodeURIComponent(file.name), true);
xhr.setRequestHeader('Cache-Control', 'no-cache');
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('X_FILE_NAME', encodeURIComponent(file.name));
@@ -1973,13 +1909,13 @@ $(document).ready(function(){
// import the file
uploadedfiles += 1;
} else {
- Contacts.UI.notify({message:jsondata.data.message});
+ OC.Contacts.notify({message:jsondata.data.message});
}
return false;
})
.error(function(jqXHR, textStatus, errorThrown) {
console.log(textStatus);
- Contacts.UI.notify({message:errorThrown + ': ' + textStatus,});
+ OC.Contacts.notify({message:errorThrown + ': ' + textStatus,});
});
uploadingFiles[fileName] = jqXHR;
}
@@ -1996,7 +1932,7 @@ $(document).ready(function(){
}
FileList.loadingDone(file.name);
} else {
- Contacts.UI.notify({message:response.data.message});
+ OC.Contacts.notify({message:response.data.message});
}
});
}
@@ -2004,7 +1940,7 @@ $(document).ready(function(){
},
fail: function(e, data) {
console.log('fail');
- Contacts.UI.notify({message:data.errorThrown + ': ' + data.textStatus});
+ OC.Contacts.notify({message:data.errorThrown + ': ' + data.textStatus});
// TODO: Remove file from upload queue.
},
progressall: function(e, data) {
@@ -2023,7 +1959,7 @@ $(document).ready(function(){
var importFiles = function(aid, fileList) {
// Create a closure that can be called from different places.
if(numfiles != uploadedfiles) {
- Contacts.UI.notify({message:t('contacts', 'Not all files uploaded. Retrying...')});
+ OC.Contacts.notify({message:t('contacts', 'Not all files uploaded. Retrying...')});
retries += 1;
if(retries > 3) {
numfiles = uploadedfiles = retries = aid = 0;
@@ -2039,7 +1975,7 @@ $(document).ready(function(){
$('#uploadprogressbar').progressbar('value',50);
var todo = uploadedfiles;
$.each(fileList, function(fileName, data) {
- Contacts.UI.Addressbooks.doImport(fileName, aid);
+ OC.Contacts.Contacts.doImport(fileName, aid);
delete fileList[fileName];
numfiles -= 1; uploadedfiles -= 1;
$('#uploadprogressbar').progressbar('value',50+(50/(todo-uploadedfiles)));
@@ -2047,7 +1983,7 @@ $(document).ready(function(){
$('#uploadprogressbar').progressbar('value',100);
$('#uploadprogressbar').fadeOut();
setTimeout(function() {
- Contacts.UI.Contacts.update({aid:aid});
+ OC.Contacts.Contacts.update({aid:aid});
numfiles = uploadedfiles = retries = aid = 0;
}, 1000);
}
@@ -2073,7 +2009,7 @@ $(document).ready(function(){
return false;
}
$(this).dialog('close');
- Contacts.UI.Addressbooks.addAddressbook(displayname, description, function(addressbook){
+ OC.Contacts.Contacts.addAddressbook(displayname, description, function(addressbook) {
aid = addressbook.id;
setTimeout(function() {
importFiles(aid, uploadingFiles);
@@ -2120,6 +2056,6 @@ $(document).ready(function(){
})
});
- Contacts.UI.loadHandlers();
- Contacts.UI.Contacts.update({cid:id});
+ OC.Contacts.loadHandlers();
+ OC.Contacts.Contacts.update({cid:id});
});
diff --git a/apps/contacts/js/settings.js b/apps/contacts/js/settings.js
new file mode 100644
index 00000000000..284f972be8e
--- /dev/null
+++ b/apps/contacts/js/settings.js
@@ -0,0 +1,186 @@
+OC.Contacts = OC.Contacts || {};
+OC.Contacts.Settings = OC.Contacts.Settings || {
+ init:function() {
+ this.Addressbook.adrsettings = $('.addressbooks-settings').first();
+ this.Addressbook.adractions = $('#contacts-settings').find('div.actions');
+ console.log('actions: ' + this.Addressbook.adractions.length);
+ },
+ Addressbook:{
+ showActions:function(act) {
+ this.adractions.children().hide();
+ this.adractions.children('.'+act.join(',.')).show();
+ },
+ doActivate:function(id, tgt) {
+ var active = tgt.is(':checked');
+ console.log('doActivate: ', id, active);
+ $.post(OC.filePath('contacts', 'ajax', 'addressbook/activate.php'), {id: id, active: Number(active)}, function(jsondata) {
+ if (jsondata.status == 'success'){
+ if(!active) {
+ $('#contacts h3[data-id="'+id+'"],#contacts ul[data-id="'+id+'"]').remove();
+ } else {
+ OC.Contacts.Contacts.update();
+ }
+ } else {
+ console.log('Error:', jsondata.data.message);
+ OC.Contacts.notify(t('contacts', 'Error') + ': ' + jsondata.data.message);
+ tgt.checked = !active;
+ }
+ });
+ },
+ doDelete:function(id) {
+ console.log('doDelete: ', id);
+ var check = confirm('Do you really want to delete this address book?');
+ if(check == false){
+ return false;
+ } else {
+ $.post(OC.filePath('contacts', 'ajax', 'addressbook/delete.php'), { id: id}, function(jsondata) {
+ if (jsondata.status == 'success'){
+ $('#contacts h3[data-id="'+id+'"],#contacts ul[data-id="'+id+'"]').remove();
+ $('.addressbooks-settings tr[data-id="'+id+'"]').remove()
+ OC.Contacts.Contacts.update();
+ } else {
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
+ }
+ });
+ }
+ },
+ doEdit:function(id) {
+ console.log('doEdit: ', id);
+ this.showActions(['active', 'name', 'description', 'save', 'cancel']);
+ var name = this.adrsettings.find('[data-id="'+id+'"]').find('.name').text();
+ var description = this.adrsettings.find('[data-id="'+id+'"]').find('.description').text();
+ var active = this.adrsettings.find('[data-id="'+id+'"]').find(':checkbox').is(':checked');
+ console.log('name, desc', name, description);
+ this.adractions.find('.active').prop('checked', active);
+ this.adractions.find('.name').val(name);
+ this.adractions.find('.description').val(description);
+ this.adractions.data('id', id);
+ },
+ doSave:function() {
+ var name = this.adractions.find('.name').val();
+ var description = this.adractions.find('.description').val();
+ var active = this.adractions.find('.active').is(':checked');
+ var id = this.adractions.data('id');
+ console.log('doSave:', id, name, description, active);
+
+ if(name.length == 0) {
+ OC.dialogs.alert(t('contacts', 'Displayname cannot be empty.'), t('contacts', 'Error'));
+ return false;
+ }
+ var url;
+ if (id == 'new'){
+ url = OC.filePath('contacts', 'ajax', 'addressbook/add.php');
+ }else{
+ url = OC.filePath('contacts', 'ajax', 'addressbook/update.php');
+ }
+ self = this;
+ $.post(url, { id: id, name: name, active: Number(active), description: description },
+ function(jsondata){
+ if(jsondata.status == 'success'){
+ self.showActions(['new',]);
+ self.adractions.removeData('id');
+ active = Boolean(Number(jsondata.data.addressbook.active));
+ if(id == 'new') {
+ self.adrsettings.find('table')
+ .append('<tr class="addressbook" data-id="'+jsondata.data.addressbook.id+'" data-uri="'+jsondata.data.addressbook.uri+'">'
+ + '<td class="active"><input type="checkbox" '+(active ? 'checked="checked"' : '')+' /></td>'
+ + '<td class="name">'+jsondata.data.addressbook.displayname+'</td>'
+ + '<td class="description">'+jsondata.data.addressbook.description+'</td>'
+ + '<td class="action"><a class="svg action globe" title="'+t('contacts', 'Show CardDav link')+'"></a></td>'
+ + '<td class="action"><a class="svg action cloud" title="'+t('contacts', 'Show read-only VCF link')+'"></a></td>'
+ + '<td class="action"><a class="svg action download" title="'+t('contacts', 'Download')+'" '
+ + 'href="'+totalurl+'/'+encodeURIComponent(oc_current_user)+'/'
+ + encodeURIComponent(jsondata.data.addressbook.uri)+'?export"></a></td>'
+ + '<td class="action"><a class="svg action edit" title="'+t('contacts', 'Edit')+'"></a></td>'
+ + '<td class="action"><a class="svg action delete" title="'+t('contacts', 'Delete')+'"></a></td>'
+ + '</tr>');
+ } else {
+ var row = self.adrsettings.find('tr[data-id="'+id+'"]');
+ row.find('td.active').find('input:checkbox').prop('checked', active);
+ row.find('td.name').text(jsondata.data.addressbook.displayname);
+ row.find('td.description').text(jsondata.data.addressbook.description);
+ }
+ OC.Contacts.Contacts.update();
+ } else {
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
+ }
+ });
+ },
+ showCardDAV:function(id) {
+ console.log('showCardDAV: ', id);
+ var row = this.adrsettings.find('tr[data-id="'+id+'"]');
+ this.adractions.find('.link').val(totalurl+'/'+encodeURIComponent(oc_current_user)+'/');
+ this.showActions(['link','cancel']);
+ },
+ showVCF:function(id) {
+ console.log('showVCF: ', id);
+ var row = this.adrsettings.find('tr[data-id="'+id+'"]');
+ this.adractions.find('.link').val(totalurl+'/'+encodeURIComponent(oc_current_user)+'/'+encodeURIComponent(row.data('uri'))+'?export');
+ this.showActions(['link','cancel']);
+ }
+ }
+};
+
+
+$(document).ready(function() {
+ OC.Contacts.Settings.init();
+
+ var moreless = $('#contacts-settings').find('.moreless').first();
+ moreless.keydown(function(event) {
+ if(event.which == 13 || event.which == 32) {
+ moreless.click();
+ }
+ });
+ moreless.on('click', function(event) {
+ event.preventDefault();
+ if(OC.Contacts.Settings.Addressbook.adrsettings.is(':visible')) {
+ OC.Contacts.Settings.Addressbook.adrsettings.slideUp();
+ OC.Contacts.Settings.Addressbook.adrsettings.prev('dt').hide();
+ moreless.text(t('contacts', 'More...'));
+ } else {
+ OC.Contacts.Settings.Addressbook.adrsettings.slideDown();
+ OC.Contacts.Settings.Addressbook.adrsettings.prev('dt').show();
+ moreless.text(t('contacts', 'Less...'));
+ }
+ });
+
+ OC.Contacts.Settings.Addressbook.adrsettings.keydown(function(event) {
+ if(event.which == 13 || event.which == 32) {
+ OC.Contacts.Settings.Addressbook.adrsettings.click();
+ }
+ });
+
+
+ OC.Contacts.Settings.Addressbook.adrsettings.on('click', function(event){
+ $('.tipsy').remove();
+ var tgt = $(event.target);
+ if(tgt.is('a') || tgt.is(':checkbox')) {
+ var id = tgt.parents('tr').first().data('id');
+ if(!id) {
+ return;
+ }
+ if(tgt.is(':checkbox')) {
+ OC.Contacts.Settings.Addressbook.doActivate(id, tgt);
+ } else if(tgt.is('a')) {
+ if(tgt.hasClass('edit')) {
+ OC.Contacts.Settings.Addressbook.doEdit(id);
+ } else if(tgt.hasClass('delete')) {
+ OC.Contacts.Settings.Addressbook.doDelete(id);
+ } else if(tgt.hasClass('globe')) {
+ OC.Contacts.Settings.Addressbook.showCardDAV(id);
+ } else if(tgt.hasClass('cloud')) {
+ OC.Contacts.Settings.Addressbook.showVCF(id);
+ }
+ }
+ } else if(tgt.is('button')) {
+ event.preventDefault();
+ if(tgt.hasClass('save')) {
+ OC.Contacts.Settings.Addressbook.doSave();
+ } else if(tgt.hasClass('cancel')) {
+ OC.Contacts.Settings.Addressbook.showActions(['new']);
+ } else if(tgt.hasClass('new')) {
+ OC.Contacts.Settings.Addressbook.doEdit('new');
+ }
+ }
+ });
+});
diff --git a/apps/contacts/l10n/ar.php b/apps/contacts/l10n/ar.php
index 6bebda3b6ad..cd57b69a899 100644
--- a/apps/contacts/l10n/ar.php
+++ b/apps/contacts/l10n/ar.php
@@ -1,15 +1,12 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "خطء خلال توقيف كتاب العناوين.",
+"Error updating addressbook." => "خطء خلال تعديل كتاب العناوين",
"There was an error adding the contact." => "خطء خلال اضافة معرفه جديده.",
"Cannot add empty property." => "لا يمكنك اضافه صفه خاليه.",
"At least one of the address fields has to be filled out." => "يجب ملء على الاقل خانه واحده من العنوان.",
-"Error adding contact property." => "خطء خلال اضافة صفة المعرفه.",
-"Error adding addressbook." => "خطء خلال اضافة كتاب عناوين.",
-"Error activating addressbook." => "خطء خلال تفعيل كتاب العناوين.",
"Information about vCard is incorrect. Please reload the page." => "المعلومات الموجودة في ال vCard غير صحيحة. الرجاء إعادة تحديث الصفحة.",
"Error deleting contact property." => "خطء خلال محي الصفه.",
"Error updating contact property." => "خطء خلال تعديل الصفه.",
-"Error updating addressbook." => "خطء خلال تعديل كتاب العناوين",
"Contacts" => "المعارف",
"This is not your addressbook." => "هذا ليس دفتر عناوينك.",
"Contact could not be found." => "لم يتم العثور على الشخص.",
@@ -25,34 +22,26 @@
"Fax" => "الفاكس",
"Video" => "الفيديو",
"Pager" => "الرنان",
+"Birthday" => "تاريخ الميلاد",
"Contact" => "معرفه",
"Add Contact" => "أضف شخص ",
"Addressbooks" => "كتب العناوين",
-"New Address Book" => "كتاب عناوين جديد",
-"CardDav Link" => "وصلة CardDav",
-"Download" => "انزال",
-"Edit" => "تعديل",
"Delete" => "حذف",
-"Download contact" => "انزال المعرفه",
-"Delete contact" => "امحي المعرفه",
-"Birthday" => "تاريخ الميلاد",
"Preferred" => "مفضل",
"Phone" => "الهاتف",
+"Download contact" => "انزال المعرفه",
+"Delete contact" => "امحي المعرفه",
"Type" => "نوع",
"PO Box" => "العنوان البريدي",
"Extended" => "إضافة",
-"Street" => "شارع",
"City" => "المدينة",
"Region" => "المنطقة",
"Zipcode" => "رقم المنطقة",
"Country" => "البلد",
-"Add" => "أدخل",
"Addressbook" => "كتاب العناوين",
-"New Addressbook" => "كتاب عناوين جديد",
-"Edit Addressbook" => "عدل كتاب العناوين",
-"Displayname" => "الاسم المعروض",
-"Active" => "فعال",
+"Download" => "انزال",
+"Edit" => "تعديل",
+"New Address Book" => "كتاب عناوين جديد",
"Save" => "حفظ",
-"Submit" => "ارسال",
"Cancel" => "الغاء"
);
diff --git a/apps/contacts/l10n/ca.php b/apps/contacts/l10n/ca.php
index 256182f02cd..925d78b6844 100644
--- a/apps/contacts/l10n/ca.php
+++ b/apps/contacts/l10n/ca.php
@@ -1,26 +1,32 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Error en (des)activar la llibreta d'adreces.",
+"id is not set." => "no s'ha establert la id.",
+"Cannot update addressbook with an empty name." => "No es pot actualitzar la llibreta d'adreces amb un nom buit",
+"Error updating addressbook." => "Error en actualitzar la llibreta d'adreces.",
+"No ID provided" => "No heu facilitat cap ID",
+"Error setting checksum." => "Error en establir la suma de verificació.",
+"No categories selected for deletion." => "No heu seleccionat les categories a eliminar.",
+"No address books found." => "No s'han trobat llibretes d'adreces.",
+"No contacts found." => "No s'han trobat contactes.",
"There was an error adding the contact." => "S'ha produït un error en afegir el contacte.",
"element name is not set." => "no s'ha establert el nom de l'element.",
-"id is not set." => "no s'ha establert la id.",
"Could not parse contact: " => "No s'ha pogut processar el contacte:",
"Cannot add empty property." => "No es pot afegir una propietat buida.",
"At least one of the address fields has to be filled out." => "Almenys heu d'omplir un dels camps d'adreça.",
"Trying to add duplicate property: " => "Esteu intentant afegir una propietat duplicada:",
"Error adding contact property: " => "Error en afegir la propietat del contacte:",
-"No ID provided" => "No heu facilitat cap ID",
-"Error setting checksum." => "Error en establir la suma de verificació.",
-"No categories selected for deletion." => "No heu seleccionat les categories a eliminar.",
-"No address books found." => "No s'han trobat llibretes d'adreces.",
-"No contacts found." => "No s'han trobat contactes.",
+"Information about vCard is incorrect. Please reload the page." => "La informació de la vCard és incorrecta. Carregueu la pàgina de nou.",
+"Error deleting contact property." => "Error en eliminar la propietat del contacte.",
"Missing ID" => "Falta la ID",
"Error parsing VCard for ID: \"" => "Error en analitzar la ID de la VCard: \"",
+"checksum is not set." => "no s'ha establert la suma de verificació.",
+"Information about vCard is incorrect. Please reload the page: " => "La informació de la vCard és incorrecta. Carregueu de nou la pàgina:",
+"Something went FUBAR. " => "Alguna cosa ha anat FUBAR.",
+"Error updating contact property." => "Error en actualitzar la propietat del contacte.",
"No contact ID was submitted." => "No s'ha tramès cap ID de contacte.",
"Error reading contact photo." => "Error en llegir la foto del contacte.",
"Error saving temporary file." => "Error en desar el fitxer temporal.",
"The loading photo is not valid." => "La foto carregada no és vàlida.",
-"Information about vCard is incorrect. Please reload the page." => "La informació de la vCard és incorrecta. Carregueu la pàgina de nou.",
-"Error deleting contact property." => "Error en eliminar la propietat del contacte.",
"Contact ID is missing." => "falta la ID del contacte.",
"No photo path was submitted." => "No heu tramès el camí de la foto.",
"File doesn't exist:" => "El fitxer no existeix:",
@@ -32,12 +38,6 @@
"Error cropping image" => "Error en retallar la imatge",
"Error creating temporary image" => "Error en crear la imatge temporal",
"Error finding image: " => "Error en trobar la imatge:",
-"checksum is not set." => "no s'ha establert la suma de verificació.",
-"Information about vCard is incorrect. Please reload the page: " => "La informació de la vCard és incorrecta. Carregueu de nou la pàgina:",
-"Something went FUBAR. " => "Alguna cosa ha anat FUBAR.",
-"Error updating contact property." => "Error en actualitzar la propietat del contacte.",
-"Cannot update addressbook with an empty name." => "No es pot actualitzar la llibreta d'adreces amb un nom buit",
-"Error updating addressbook." => "Error en actualitzar la llibreta d'adreces.",
"Error uploading contacts to storage." => "Error en carregar contactes a l'emmagatzemament.",
"There is no error, the file uploaded with success" => "No hi ha errors, el fitxer s'ha carregat correctament",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "El fitxer carregat supera la directiva upload_max_filesize de php.ini",
@@ -53,9 +53,6 @@
"Not implemented" => "No implementada",
"Couldn't get a valid address." => "No s'ha pogut obtenir una adreça vàlida.",
"Error" => "Error",
-"Contact" => "Contacte",
-"New" => "Nou",
-"New Contact" => "Contate nou",
"This property has to be non-empty." => "Aquesta propietat no pot ser buida.",
"Couldn't serialize elements." => "No s'han pogut serialitzar els elements.",
"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' s'ha cridat sense argument de tipus. Informeu-ne a bugs.owncloud.org",
@@ -63,10 +60,12 @@
"No files selected for upload." => "No s'han seleccionat fitxers per a la pujada.",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "El fitxer que intenteu pujar excedeix la mida màxima de pujada en aquest servidor.",
"Select type" => "Seleccioneu un tipus",
+"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Heu marcat eliminar alguns contactes, però encara no s'han eliminat. Espereu mentre s'esborren.",
"Result: " => "Resultat: ",
" imported, " => " importat, ",
" failed." => " fallada.",
-"Addressbook not found." => "No s'ha trobat la llibreta d'adreces.",
+"Displayname cannot be empty." => "El nom a mostrar no pot ser buit",
+"Addressbook not found: " => "No s'ha trobat la llibreta d'adreces: ",
"This is not your addressbook." => "Aquesta no és la vostra llibreta d'adreces",
"Contact could not be found." => "No s'ha trobat el contacte.",
"Address" => "Adreça",
@@ -98,8 +97,10 @@
"Projects" => "Projectes",
"Questions" => "Preguntes",
"{name}'s Birthday" => "Aniversari de {name}",
+"Contact" => "Contacte",
"Add Contact" => "Afegeix un contacte",
"Import" => "Importa",
+"Settings" => "Configuració",
"Addressbooks" => "Llibretes d'adreces",
"Close" => "Tanca",
"Keyboard shortcuts" => "Dreceres de teclat",
@@ -107,18 +108,11 @@
"Next contact in list" => "Següent contacte de la llista",
"Previous contact in list" => "Contacte anterior de la llista",
"Expand/collapse current addressbook" => "Expandeix/col·lapsa la llibreta d'adreces",
-"Next/previous addressbook" => "Següent/anterior llibreta d'adreces",
"Actions" => "Accions",
"Refresh contacts list" => "Carrega de nou la llista de contactes",
"Add new contact" => "Afegeix un contacte nou",
"Add new addressbook" => "Afegeix una llibreta d'adreces nova",
"Delete current contact" => "Esborra el contacte",
-"Configure Address Books" => "Configura les llibretes d'adreces",
-"New Address Book" => "Nova llibreta d'adreces",
-"CardDav Link" => "Enllaç CardDav",
-"Download" => "Baixa",
-"Edit" => "Edita",
-"Delete" => "Suprimeix",
"Drop photo to upload" => "Elimina la foto a carregar",
"Delete current photo" => "Elimina la foto actual",
"Edit current photo" => "Edita la foto actual",
@@ -126,6 +120,7 @@
"Select photo from ownCloud" => "Selecciona una foto de ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Format personalitzat, Nom curt, Nom sencer, Invertit o Invertit amb coma",
"Edit name details" => "Edita detalls del nom",
+"Delete" => "Suprimeix",
"Nickname" => "Sobrenom",
"Enter nickname" => "Escriviu el sobrenom",
"Web site" => "Adreça web",
@@ -184,13 +179,6 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "Nova llibreta d'adreces",
-"Edit Addressbook" => "Edita la llibreta d'adreces",
-"Displayname" => "Nom a mostrar",
-"Active" => "Actiu",
-"Save" => "Desa",
-"Submit" => "Envia",
-"Cancel" => "Cancel·la",
"Import a contacts file" => "Importa un fitxer de contactes",
"Please choose the addressbook" => "Escolliu la llibreta d'adreces",
"create a new addressbook" => "crea una llibreta d'adreces nova",
@@ -206,5 +194,14 @@
"more info" => "més informació",
"Primary address (Kontact et al)" => "Adreça primària (Kontact i al)",
"iOS/OS X" => "iOS/OS X",
-"Read only vCard directory link(s)" => "Enllaç(os) vCard només de lectura"
+"Show CardDav link" => "Mostra l'enllaç CardDav",
+"Show read-only VCF link" => "Mostra l'enllaç VCF només de lectura",
+"Download" => "Baixa",
+"Edit" => "Edita",
+"New Address Book" => "Nova llibreta d'adreces",
+"Name" => "Nom",
+"Description" => "Descripció",
+"Save" => "Desa",
+"Cancel" => "Cancel·la",
+"More..." => "Més..."
);
diff --git a/apps/contacts/l10n/cs_CZ.php b/apps/contacts/l10n/cs_CZ.php
index 391a62010b1..9b342328ac9 100644
--- a/apps/contacts/l10n/cs_CZ.php
+++ b/apps/contacts/l10n/cs_CZ.php
@@ -1,39 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Chyba při (de)aktivaci adresáře.",
-"There was an error adding the contact." => "Během přidávání kontaktu nastala chyba.",
-"Cannot add empty property." => "Nelze přidat prazdný údaj.",
-"At least one of the address fields has to be filled out." => "Musí být uveden nejméně jeden z adresních údajů",
-"Trying to add duplicate property: " => "Pokoušíte se přidat duplicitní atribut: ",
-"Error adding contact property." => "Chyba během přdávání údaje kontaktu.",
+"id is not set." => "id neni nastaveno.",
+"Cannot update addressbook with an empty name." => "Nelze aktualizovat adresář s prázdným jménem.",
+"Error updating addressbook." => "Chyba při aktualizaci adresáře.",
"No ID provided" => "ID nezadáno",
"Error setting checksum." => "Chyba při nastavování kontrolního součtu.",
"No categories selected for deletion." => "Žádné kategorie nebyly vybrány k smazání.",
"No address books found." => "Žádný adresář nenalezen.",
"No contacts found." => "Žádné kontakty nenalezeny.",
+"There was an error adding the contact." => "Během přidávání kontaktu nastala chyba.",
+"element name is not set." => "jméno elementu není nastaveno.",
+"Cannot add empty property." => "Nelze přidat prazdný údaj.",
+"At least one of the address fields has to be filled out." => "Musí být uveden nejméně jeden z adresních údajů",
+"Trying to add duplicate property: " => "Pokoušíte se přidat duplicitní atribut: ",
+"Information about vCard is incorrect. Please reload the page." => "Informace o vCard je nesprávná. Obnovte stránku, prosím.",
+"Error deleting contact property." => "Chyba při odstraňování údaje kontaktu.",
"Missing ID" => "Chybí ID",
"Error parsing VCard for ID: \"" => "Chyba při parsování VCard pro ID: \"",
-"Cannot add addressbook with an empty name." => "Nelze přidat adresář s prázdným jménem.",
-"Error adding addressbook." => "Chyba při přidávání adresáře.",
-"Error activating addressbook." => "Chyba při aktivaci adresáře.",
+"checksum is not set." => "kontrolní součet není nastaven.",
+"Information about vCard is incorrect. Please reload the page: " => "Informace o vCard je nesprávná. Obnovte stránku, prosím.",
+"Something went FUBAR. " => "Něco se pokazilo. ",
+"Error updating contact property." => "Chyba při aktualizaci údaje kontaktu.",
"No contact ID was submitted." => "Nebylo nastaveno ID kontaktu.",
"Error reading contact photo." => "Chyba při načítání fotky kontaktu.",
"Error saving temporary file." => "Chyba při ukládání dočasného souboru.",
"The loading photo is not valid." => "Načítaná fotka je vadná.",
-"id is not set." => "id neni nastaveno.",
-"Information about vCard is incorrect. Please reload the page." => "Informace o vCard je nesprávná. Obnovte stránku, prosím.",
-"Error deleting contact property." => "Chyba při odstraňování údaje kontaktu.",
"Contact ID is missing." => "Chybí ID kontaktu.",
-"Missing contact id." => "Chybí id kontaktu.",
"No photo path was submitted." => "Žádná fotka nebyla nahrána.",
"File doesn't exist:" => "Soubor neexistuje:",
"Error loading image." => "Chyba při načítání obrázku.",
-"element name is not set." => "jméno elementu není nastaveno.",
-"checksum is not set." => "kontrolní součet není nastaven.",
-"Information about vCard is incorrect. Please reload the page: " => "Informace o vCard je nesprávná. Obnovte stránku, prosím.",
-"Something went FUBAR. " => "Něco se pokazilo. ",
-"Error updating contact property." => "Chyba při aktualizaci údaje kontaktu.",
-"Cannot update addressbook with an empty name." => "Nelze aktualizovat adresář s prázdným jménem.",
-"Error updating addressbook." => "Chyba při aktualizaci adresáře.",
+"Error getting contact object." => "Chyba při převzetí objektu kontakt.",
+"Error getting PHOTO property." => "Chyba při získávání fotky.",
+"Error saving contact." => "Chyba při ukládání kontaktu.",
+"Error resizing image" => "Chyba při změně velikosti obrázku.",
+"Error cropping image" => "Chyba při osekávání obrázku.",
+"Error creating temporary image" => "Chyba při vytváření dočasného obrázku.",
+"Error finding image: " => "Chyba při hledání obrázku:",
"Error uploading contacts to storage." => "Chyba při nahrávání kontaktů do úložiště.",
"There is no error, the file uploaded with success" => "Nevyskytla se žádná chyba, soubor byl úspěšně nahrán",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Nahrávaný soubor překračuje nastavení upload_max_filesize directive v php.ini",
@@ -41,9 +43,24 @@
"The uploaded file was only partially uploaded" => "Nahrávaný soubor se nahrál pouze z části",
"No file was uploaded" => "Žádný soubor nebyl nahrán",
"Missing a temporary folder" => "Chybí dočasný adresář",
+"Couldn't save temporary image: " => "Nemohu uložit dočasný obrázek: ",
+"Couldn't load temporary image: " => "Nemohu načíst dočasný obrázek: ",
+"No file was uploaded. Unknown error" => "Soubor nebyl odeslán. Neznámá chyba",
"Contacts" => "Kontakty",
-"Drop a VCF file to import contacts." => "Pro import kontaktů sem přetáhněte soubor VCF",
-"Addressbook not found." => "Adresář nenalezen.",
+"Sorry, this functionality has not been implemented yet" => "Bohužel, tato funkce nebyla ještě implementována.",
+"Not implemented" => "Neimplementováno",
+"Couldn't get a valid address." => "Nelze získat platnou adresu.",
+"Error" => "Chyba",
+"This property has to be non-empty." => "Tento parametr nemuže zůstat nevyplněn.",
+"Couldn't serialize elements." => "Prvky nelze převést..",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' voláno bez argumentu. Prosím oznamte chybu na bugs.owncloud.org",
+"Edit name" => "Upravit jméno",
+"No files selected for upload." => "Žádné soubory nebyly vybrány k nahrání.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Soubor, který se pokoušíte odeslat, přesahuje maximální povolenou velikost.",
+"Select type" => "Vybrat typ",
+"Result: " => "Výsledek: ",
+" imported, " => "importováno v pořádku,",
+" failed." => "neimportováno.",
"This is not your addressbook." => "Toto není Váš adresář.",
"Contact could not be found." => "Kontakt nebyl nalezen.",
"Address" => "Adresa",
@@ -60,25 +77,23 @@
"Video" => "Video",
"Pager" => "Pager",
"Internet" => "Internet",
+"Birthday" => "Narozeniny",
"{name}'s Birthday" => "Narozeniny {name}",
"Contact" => "Kontakt",
"Add Contact" => "Přidat kontakt",
+"Import" => "Import",
"Addressbooks" => "Adresáře",
-"Configure Address Books" => "Nastavit adresáře",
-"New Address Book" => "Nový adresář",
-"Import from VCF" => "Importovat z VCF",
-"CardDav Link" => "CardDav odkaz",
-"Download" => "Stažení",
-"Edit" => "Editovat",
-"Delete" => "Odstranit",
-"Download contact" => "Stáhnout kontakt",
-"Delete contact" => "Odstranit kontakt",
+"Close" => "Zavřít",
"Drop photo to upload" => "Přetáhněte sem fotku pro její nahrání",
+"Delete current photo" => "Smazat současnou fotku",
+"Edit current photo" => "Upravit současnou fotku",
+"Upload new photo" => "Nahrát novou fotku",
+"Select photo from ownCloud" => "Vybrat fotku z ownCloudu",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formát vlastní, křestní, celé jméno, obráceně nebo obráceně oddelené čárkami",
"Edit name details" => "Upravit podrobnosti jména",
+"Delete" => "Odstranit",
"Nickname" => "Přezdívka",
"Enter nickname" => "Zadejte přezdívku",
-"Birthday" => "Narozeniny",
"dd-mm-yyyy" => "dd. mm. yyyy",
"Groups" => "Skupiny",
"Separate groups with commas" => "Oddělte skupiny čárkami",
@@ -94,24 +109,19 @@
"Edit address details" => "Upravit podrobnosti adresy",
"Add notes here." => "Zde můžete připsat poznámky.",
"Add field" => "Přidat políčko",
-"Profile picture" => "Profilová fotka",
"Phone" => "Telefon",
"Note" => "Poznámka",
-"Delete current photo" => "Smazat současnou fotku",
-"Edit current photo" => "Upravit současnou fotku",
-"Upload new photo" => "Nahrát novou fotku",
-"Select photo from ownCloud" => "Vybrat fotku z ownCloudu",
+"Download contact" => "Stáhnout kontakt",
+"Delete contact" => "Odstranit kontakt",
+"The temporary image has been removed from cache." => "Obrázek byl odstraněn z dočasné paměti.",
"Edit address" => "Upravit adresu",
"Type" => "Typ",
"PO Box" => "PO box",
"Extended" => "Rozšířené",
-"Street" => "Ulice",
"City" => "Město",
"Region" => "Kraj",
"Zipcode" => "PSČ",
"Country" => "Země",
-"Edit categories" => "Upravit kategorie",
-"Add" => "Přidat",
"Addressbook" => "Adresář",
"Hon. prefixes" => "Tituly před",
"Miss" => "Slečna",
@@ -132,26 +142,21 @@
"Esq." => "Esq.",
"Jr." => "ml.",
"Sn." => "st.",
-"New Addressbook" => "Nový adresář",
-"Edit Addressbook" => "Editace adresáře",
-"Displayname" => "Zobrazené jméno",
-"Active" => "Aktivní",
-"Save" => "Uložit",
-"Submit" => "Potvrdit",
-"Cancel" => "Storno",
"Import a contacts file" => "Importovat soubor kontaktů",
"Please choose the addressbook" => "Prosím zvolte adresář",
"create a new addressbook" => "vytvořit nový adresář",
"Name of new addressbook" => "Jméno nového adresáře",
-"Import" => "Import",
"Importing contacts" => "Importování kontaktů",
-"Select address book to import to:" => "Vyberte adresář do kterého chcete importovat:",
-"Select from HD" => "Vybrat z disku",
"You have no contacts in your addressbook." => "Nemáte žádné kontakty v adresáři.",
"Add contact" => "Přidat kontakt",
"Configure addressbooks" => "Nastavit adresář",
"CardDAV syncing addresses" => "Adresa pro synchronizaci pomocí CardDAV:",
"more info" => "víc informací",
"Primary address (Kontact et al)" => "Hlavní adresa (Kontakt etc)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Stažení",
+"Edit" => "Editovat",
+"New Address Book" => "Nový adresář",
+"Save" => "Uložit",
+"Cancel" => "Storno"
);
diff --git a/apps/contacts/l10n/da.php b/apps/contacts/l10n/da.php
index 28753edda4e..7d98c339f5a 100644
--- a/apps/contacts/l10n/da.php
+++ b/apps/contacts/l10n/da.php
@@ -1,39 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Fejl ved (de)aktivering af adressebogen",
-"There was an error adding the contact." => "Der opstod en fejl ved tilføjelse af kontaktpersonen.",
-"Cannot add empty property." => "Kan ikke tilføje en egenskab uden indhold.",
-"At least one of the address fields has to be filled out." => "Der skal udfyldes mindst et adressefelt.",
-"Trying to add duplicate property: " => "Kan ikke tilføje overlappende element.",
-"Error adding contact property." => "Fejl ved tilføjelse af egenskab.",
+"id is not set." => "Intet ID medsendt.",
+"Cannot update addressbook with an empty name." => "Kan ikke opdatére adressebogen med et tomt navn.",
+"Error updating addressbook." => "Fejl ved opdatering af adressebog",
"No ID provided" => "Intet ID medsendt",
"Error setting checksum." => "Kunne ikke sætte checksum.",
"No categories selected for deletion." => "Der ikke valgt nogle grupper at slette.",
"No address books found." => "Der blev ikke fundet nogen adressebøger.",
"No contacts found." => "Der blev ikke fundet nogen kontaktpersoner.",
+"There was an error adding the contact." => "Der opstod en fejl ved tilføjelse af kontaktpersonen.",
+"element name is not set." => "Elementnavnet er ikke medsendt.",
+"Cannot add empty property." => "Kan ikke tilføje en egenskab uden indhold.",
+"At least one of the address fields has to be filled out." => "Der skal udfyldes mindst et adressefelt.",
+"Trying to add duplicate property: " => "Kan ikke tilføje overlappende element.",
+"Information about vCard is incorrect. Please reload the page." => "Informationen om vCard er forkert. Genindlæs siden.",
+"Error deleting contact property." => "Fejl ved sletning af egenskab for kontaktperson.",
"Missing ID" => "Manglende ID",
-"Error parsing VCard for ID: \"" => "Kunne ikke indlæse VCard med ID'en: \"",
-"Cannot add addressbook with an empty name." => "Kan ikke tilføje adressebog uden et navn.",
-"Error adding addressbook." => "Fejl ved tilføjelse af adressebog.",
-"Error activating addressbook." => "Fejl ved aktivering af adressebog.",
+"Error parsing VCard for ID: \"" => "Kunne ikke indlæse VCard med ID'et: \"",
+"checksum is not set." => "Checksum er ikke medsendt.",
+"Information about vCard is incorrect. Please reload the page: " => "Informationen om dette VCard stemmer ikke. Genindlæs venligst siden: ",
+"Something went FUBAR. " => "Noget gik grueligt galt. ",
+"Error updating contact property." => "Fejl ved opdatering af egenskab for kontaktperson.",
"No contact ID was submitted." => "Ingen ID for kontakperson medsendt.",
"Error reading contact photo." => "Kunne ikke indlæse foto for kontakperson.",
"Error saving temporary file." => "Kunne ikke gemme midlertidig fil.",
"The loading photo is not valid." => "Billedet under indlæsning er ikke gyldigt.",
-"id is not set." => "Intet ID medsendt.",
-"Information about vCard is incorrect. Please reload the page." => "Informationen om vCard er forkert. Genindlæs siden.",
-"Error deleting contact property." => "Fejl ved sletning af egenskab for kontaktperson.",
"Contact ID is missing." => "Kontaktperson ID mangler.",
-"Missing contact id." => "Kontaktperson ID mangler.",
"No photo path was submitted." => "Der blev ikke medsendt en sti til fotoet.",
"File doesn't exist:" => "Filen eksisterer ikke:",
"Error loading image." => "Kunne ikke indlæse billede.",
-"element name is not set." => "Element navnet er ikke medsendt.",
-"checksum is not set." => "Checksum er ikke medsendt.",
-"Information about vCard is incorrect. Please reload the page: " => "Informationen om dette VCard stemmer ikke. Genindlæs venligst siden: ",
-"Something went FUBAR. " => "Noget gik grueligt galt. ",
-"Error updating contact property." => "Fejl ved opdatering af egenskab for kontaktperson.",
-"Cannot update addressbook with an empty name." => "Kan ikke opdatére adressebogen med et tomt navn.",
-"Error updating addressbook." => "Fejl ved opdatering af adressebog",
+"Error getting contact object." => "Fejl ved indlæsning af kontaktpersonobjektet.",
+"Error getting PHOTO property." => "Fejl ved indlæsning af PHOTO feltet.",
+"Error saving contact." => "Kunne ikke gemme kontaktpersonen.",
+"Error resizing image" => "Kunne ikke ændre billedets størrelse",
+"Error cropping image" => "Kunne ikke beskære billedet",
+"Error creating temporary image" => "Kunne ikke oprette midlertidigt billede",
+"Error finding image: " => "Kunne ikke finde billedet: ",
"Error uploading contacts to storage." => "Kunne ikke uploade kontaktepersoner til midlertidig opbevaring.",
"There is no error, the file uploaded with success" => "Der skete ingen fejl, filen blev succesfuldt uploadet",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Den uploadede fil er større end upload_max_filesize indstillingen i php.ini",
@@ -41,9 +43,24 @@
"The uploaded file was only partially uploaded" => "Filen blev kun delvist uploadet.",
"No file was uploaded" => "Ingen fil uploadet",
"Missing a temporary folder" => "Manglende midlertidig mappe.",
+"Couldn't save temporary image: " => "Kunne ikke gemme midlertidigt billede: ",
+"Couldn't load temporary image: " => "Kunne ikke indlæse midlertidigt billede",
+"No file was uploaded. Unknown error" => "Ingen fil blev uploadet. Ukendt fejl.",
"Contacts" => "Kontaktpersoner",
-"Drop a VCF file to import contacts." => "Drop en VCF fil for at importere kontaktpersoner.",
-"Addressbook not found." => "Adressebogen blev ikke fundet.",
+"Sorry, this functionality has not been implemented yet" => "Denne funktion er desværre ikke implementeret endnu",
+"Not implemented" => "Ikke implementeret",
+"Couldn't get a valid address." => "Kunne ikke finde en gyldig adresse.",
+"Error" => "Fejl",
+"This property has to be non-empty." => "Dette felt må ikke være tomt.",
+"Couldn't serialize elements." => "Kunne ikke serialisere elementerne.",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' kaldet uden typeargument. Indrapporter fejl på bugs.owncloud.org",
+"Edit name" => "Rediger navn",
+"No files selected for upload." => "Der er ikke valgt nogen filer at uploade.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Dr.",
+"Select type" => "Vælg type",
+"Result: " => "Resultat:",
+" imported, " => " importeret ",
+" failed." => " fejl.",
"This is not your addressbook." => "Dette er ikke din adressebog.",
"Contact could not be found." => "Kontaktperson kunne ikke findes.",
"Address" => "Adresse",
@@ -60,25 +77,23 @@
"Video" => "Video",
"Pager" => "Personsøger",
"Internet" => "Internet",
-"{name}'s Birthday" => "{name}'s fødselsdag",
+"Birthday" => "Fødselsdag",
+"{name}'s Birthday" => "{name}s fødselsdag",
"Contact" => "Kontaktperson",
"Add Contact" => "Tilføj kontaktperson",
+"Import" => "Importer",
"Addressbooks" => "Adressebøger",
-"Configure Address Books" => "Konfigurer adressebøger",
-"New Address Book" => "Ny adressebog",
-"Import from VCF" => "Importer fra VCF",
-"CardDav Link" => "CardDav-link",
-"Download" => "Download",
-"Edit" => "Rediger",
-"Delete" => "Slet",
-"Download contact" => "Download kontaktperson",
-"Delete contact" => "Slet kontaktperson",
+"Close" => "Luk",
"Drop photo to upload" => "Drop foto for at uploade",
+"Delete current photo" => "Slet nuværende foto",
+"Edit current photo" => "Rediger nuværende foto",
+"Upload new photo" => "Upload nyt foto",
+"Select photo from ownCloud" => "Vælg foto fra ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formatter som valgfrit, fuldt navn, efternavn først eller efternavn først med komma",
"Edit name details" => "Rediger navnedetaljer.",
-"Nickname" => "Øgenavn",
-"Enter nickname" => "Indtast øgenavn",
-"Birthday" => "Fødselsdag",
+"Delete" => "Slet",
+"Nickname" => "Kaldenavn",
+"Enter nickname" => "Indtast kaldenavn",
"dd-mm-yyyy" => "dd-mm-åååå",
"Groups" => "Grupper",
"Separate groups with commas" => "Opdel gruppenavne med kommaer",
@@ -93,25 +108,20 @@
"View on map" => "Vis på kort",
"Edit address details" => "Rediger adresse detaljer",
"Add notes here." => "Tilføj noter her.",
-"Add field" => "Tilfæj element",
-"Profile picture" => "Profilbillede",
+"Add field" => "Tilføj element",
"Phone" => "Telefon",
"Note" => "Note",
-"Delete current photo" => "Slet nuværende foto",
-"Edit current photo" => "Rediger nuværende foto",
-"Upload new photo" => "Upload nyt foto",
-"Select photo from ownCloud" => "Vælg foto fra ownCloud",
+"Download contact" => "Download kontaktperson",
+"Delete contact" => "Slet kontaktperson",
+"The temporary image has been removed from cache." => "Det midlertidige billede er ikke længere tilgængeligt.",
"Edit address" => "Rediger adresse",
"Type" => "Type",
"PO Box" => "Postboks",
"Extended" => "Udvidet",
-"Street" => "Vej",
"City" => "By",
"Region" => "Region",
"Zipcode" => "Postnummer",
"Country" => "Land",
-"Edit categories" => "Rediger grupper",
-"Add" => "Tilføj",
"Addressbook" => "Adressebog",
"Hon. prefixes" => "Foranstillede titler",
"Miss" => "Frøken",
@@ -119,7 +129,7 @@
"Mr" => "Hr.",
"Sir" => "Sir",
"Mrs" => "Fru",
-"Dr" => "Dr",
+"Dr" => "Dr.",
"Given name" => "Fornavn",
"Additional names" => "Mellemnavne",
"Family name" => "Efternavn",
@@ -132,26 +142,21 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "Ny adressebog",
-"Edit Addressbook" => "Rediger adressebog",
-"Displayname" => "Vist navn",
-"Active" => "Aktiv",
-"Save" => "Gem",
-"Submit" => "Gem",
-"Cancel" => "Fortryd",
"Import a contacts file" => "Importer fil med kontaktpersoner",
"Please choose the addressbook" => "Vælg venligst adressebog",
"create a new addressbook" => "Opret ny adressebog",
"Name of new addressbook" => "Navn på ny adressebog",
-"Import" => "Importer",
"Importing contacts" => "Importerer kontaktpersoner",
-"Select address book to import to:" => "Vælg hvilken adressebog, der skal importeres til:",
-"Select from HD" => "Vælg fra harddisk.",
"You have no contacts in your addressbook." => "Du har ingen kontaktpersoner i din adressebog.",
"Add contact" => "Tilføj kontaktpeson.",
"Configure addressbooks" => "Konfigurer adressebøger",
"CardDAV syncing addresses" => "CardDAV synkroniserings adresse",
"more info" => "mere info",
"Primary address (Kontact et al)" => "Primær adresse (Kontak m. fl.)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Download",
+"Edit" => "Rediger",
+"New Address Book" => "Ny adressebog",
+"Save" => "Gem",
+"Cancel" => "Fortryd"
);
diff --git a/apps/contacts/l10n/de.php b/apps/contacts/l10n/de.php
index b76c5ce0716..08e28f3fd0d 100644
--- a/apps/contacts/l10n/de.php
+++ b/apps/contacts/l10n/de.php
@@ -1,26 +1,32 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "(De-)Aktivierung des Adressbuches fehlgeschlagen",
+"id is not set." => "ID ist nicht angegeben.",
+"Cannot update addressbook with an empty name." => "Adressbuch kann nicht mir leeren Namen aktualisiert werden.",
+"Error updating addressbook." => "Adressbuch aktualisieren fehlgeschlagen",
+"No ID provided" => "Keine ID angegeben",
+"Error setting checksum." => "Fehler beim Setzen der Prüfsumme.",
+"No categories selected for deletion." => "Keine Kategorien zum Löschen ausgewählt.",
+"No address books found." => "Keine Adressbücher gefunden.",
+"No contacts found." => "Keine Kontakte gefunden.",
"There was an error adding the contact." => "Erstellen des Kontakts fehlgeschlagen",
"element name is not set." => "Kein Name für das Element angegeben.",
-"id is not set." => "ID ist nicht angegeben.",
"Could not parse contact: " => "Konnte folgenden Kontakt nicht verarbeiten:",
"Cannot add empty property." => "Feld darf nicht leer sein.",
"At least one of the address fields has to be filled out." => "Mindestens eines der Adressfelder muss ausgefüllt werden.",
"Trying to add duplicate property: " => "Versuche, doppelte Eigenschaft hinzuzufügen: ",
"Error adding contact property: " => "Fehler beim Hinzufügen der Kontakteigenschaft:",
-"No ID provided" => "Keine ID angegeben",
-"Error setting checksum." => "Fehler beim Setzen der Prüfsumme.",
-"No categories selected for deletion." => "Keine Kategorien zum Löschen ausgewählt.",
-"No address books found." => "Keine Adressbücher gefunden.",
-"No contacts found." => "Keine Kontakte gefunden.",
+"Information about vCard is incorrect. Please reload the page." => "Die Information der vCard ist fehlerhaft. Bitte aktualisiere die Seite.",
+"Error deleting contact property." => "Kontakteigenschaft löschen fehlgeschlagen",
"Missing ID" => "Fehlende ID",
"Error parsing VCard for ID: \"" => "Fehler beim Einlesen der VCard für die ID: \"",
+"checksum is not set." => "Keine Prüfsumme angegeben.",
+"Information about vCard is incorrect. Please reload the page: " => "Die Informationen zur vCard sind fehlerhaft. Bitte Seite neu laden: ",
+"Something went FUBAR. " => "Irgendwas ist hier so richtig schief gelaufen. ",
+"Error updating contact property." => "Kontakteigenschaft aktualisieren fehlgeschlagen",
"No contact ID was submitted." => "Es wurde keine Kontakt-ID übermittelt.",
"Error reading contact photo." => "Fehler beim Auslesen des Kontaktfotos.",
"Error saving temporary file." => "Fehler beim Speichern der temporären Datei.",
"The loading photo is not valid." => "Das Kontaktfoto ist fehlerhaft.",
-"Information about vCard is incorrect. Please reload the page." => "Die Information der vCard ist fehlerhaft. Bitte aktualisiere die Seite.",
-"Error deleting contact property." => "Kontakteigenschaft löschen fehlgeschlagen",
"Contact ID is missing." => "Keine Kontakt-ID angegeben.",
"No photo path was submitted." => "Kein Foto-Pfad übermittelt.",
"File doesn't exist:" => "Datei existiert nicht: ",
@@ -32,12 +38,6 @@
"Error cropping image" => "Fehler beim Zuschneiden des Bildes",
"Error creating temporary image" => "Fehler beim erstellen des temporären Bildes",
"Error finding image: " => "Fehler beim Suchen des Bildes: ",
-"checksum is not set." => "Keine Prüfsumme angegeben.",
-"Information about vCard is incorrect. Please reload the page: " => "Die Informationen zur vCard sind fehlerhaft. Bitte Seite neu laden: ",
-"Something went FUBAR. " => "Irgendwas ist hier so richtig schief gelaufen. ",
-"Error updating contact property." => "Kontakteigenschaft aktualisieren fehlgeschlagen",
-"Cannot update addressbook with an empty name." => "Adressbuch kann nicht mir leeren Namen aktualisiert werden.",
-"Error updating addressbook." => "Adressbuch aktualisieren fehlgeschlagen",
"Error uploading contacts to storage." => "Übertragen der Kontakte fehlgeschlagen",
"There is no error, the file uploaded with success" => "Alles bestens, Datei erfolgreich übertragen.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Datei größer als durch die upload_max_filesize Direktive in php.ini erlaubt",
@@ -53,9 +53,6 @@
"Not implemented" => "Nicht Verfügbar",
"Couldn't get a valid address." => "Konnte keine gültige Adresse abrufen",
"Error" => "Fehler",
-"Contact" => "Kontakt",
-"New" => "Neu",
-"New Contact" => "Neuer Kontakt",
"This property has to be non-empty." => "Dieses Feld darf nicht Leer sein.",
"Couldn't serialize elements." => "Konnte Elemente nicht serialisieren",
"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' wurde ohne Argumente aufgerufen, bitte Melde dies auf bugs.owncloud.org",
@@ -63,10 +60,12 @@
"No files selected for upload." => "Keine Datei(en) zum Hochladen ausgewählt",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei, die Sie versuchen hochzuladen, überschreitet die maximale Größe für Datei-Uploads auf diesem Server.",
"Select type" => "Wähle Typ",
+"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Einige zum Löschen markiert Kontakte wurden noch nicht gelöscht. Bitte warten ...",
"Result: " => "Ergebnis: ",
" imported, " => " importiert, ",
" failed." => " fehlgeschlagen.",
-"Addressbook not found." => "Adressbuch nicht gefunden.",
+"Displayname cannot be empty." => "Der Anzeigename darf nicht leer sein.",
+"Addressbook not found: " => "Adressbuch nicht gefunden:",
"This is not your addressbook." => "Dies ist nicht dein Adressbuch.",
"Contact could not be found." => "Kontakt konnte nicht gefunden werden.",
"Address" => "Adresse",
@@ -98,8 +97,10 @@
"Projects" => "Projekte",
"Questions" => "Fragen",
"{name}'s Birthday" => "Geburtstag von {name}",
+"Contact" => "Kontakt",
"Add Contact" => "Kontakt hinzufügen",
"Import" => "Importieren",
+"Settings" => "Einstellungen",
"Addressbooks" => "Adressbücher",
"Close" => "Schließen",
"Keyboard shortcuts" => "Tastaturbefehle",
@@ -107,18 +108,11 @@
"Next contact in list" => "Nächster Kontakt aus der Liste",
"Previous contact in list" => "Vorheriger Kontakt aus der Liste",
"Expand/collapse current addressbook" => "Ausklappen/Einklappen des Adressbuches",
-"Next/previous addressbook" => "Nächstes/Vorhergehendes Adressbuch",
"Actions" => "Aktionen",
"Refresh contacts list" => "Kontaktliste neu laden",
"Add new contact" => "Neuen Kontakt hinzufügen",
"Add new addressbook" => "Neues Adressbuch hinzufügen",
"Delete current contact" => "Aktuellen Kontakt löschen",
-"Configure Address Books" => "Adressbücher konfigurieren",
-"New Address Book" => "Neues Adressbuch",
-"CardDav Link" => "CardDav-Link",
-"Download" => "Herunterladen",
-"Edit" => "Bearbeiten",
-"Delete" => "Löschen",
"Drop photo to upload" => "Zieh' ein Foto hierher zum Hochladen",
"Delete current photo" => "Derzeitiges Foto löschen",
"Edit current photo" => "Foto ändern",
@@ -126,6 +120,7 @@
"Select photo from ownCloud" => "Foto aus ownCloud auswählen",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Format benutzerdefiniert, Kurzname, Vollname, Rückwärts oder Rückwärts mit Komma",
"Edit name details" => "Name ändern",
+"Delete" => "Löschen",
"Nickname" => "Spitzname",
"Enter nickname" => "Spitzname angeben",
"Web site" => "Webseite",
@@ -184,13 +179,6 @@
"Esq." => "Hochwohlgeborenen",
"Jr." => "Jr.",
"Sn." => "Senior",
-"New Addressbook" => "Neues Adressbuch",
-"Edit Addressbook" => "Adressbuch editieren",
-"Displayname" => "Anzeigename",
-"Active" => "Aktiv",
-"Save" => "Speichern",
-"Submit" => "Eintragen",
-"Cancel" => "Abbrechen",
"Import a contacts file" => "Kontaktdatei importieren",
"Please choose the addressbook" => "Bitte Adressbuch auswählen",
"create a new addressbook" => "Neues Adressbuch erstellen",
@@ -206,5 +194,14 @@
"more info" => "mehr Info",
"Primary address (Kontact et al)" => "primäre Adresse (für Kontact o.ä. Programme)",
"iOS/OS X" => "iOS/OS X",
-"Read only vCard directory link(s)" => "Nur lesende(r) vCalender-Verzeichnis-Link(s)"
+"Show CardDav link" => "CardDav-Link anzeigen",
+"Show read-only VCF link" => "Schreibgeschützten VCF-Link anzeigen",
+"Download" => "Herunterladen",
+"Edit" => "Bearbeiten",
+"New Address Book" => "Neues Adressbuch",
+"Name" => "Name",
+"Description" => "Beschreibung",
+"Save" => "Speichern",
+"Cancel" => "Abbrechen",
+"More..." => "Mehr..."
);
diff --git a/apps/contacts/l10n/el.php b/apps/contacts/l10n/el.php
index c67f27ab2aa..2f31bccbf23 100644
--- a/apps/contacts/l10n/el.php
+++ b/apps/contacts/l10n/el.php
@@ -1,26 +1,32 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Σφάλμα (απ)ενεργοποίησης βιβλίου διευθύνσεων",
+"id is not set." => "δεν ορίστηκε id",
+"Cannot update addressbook with an empty name." => "Δε μπορεί να γίνει αλλαγή βιβλίου διευθύνσεων χωρίς όνομα",
+"Error updating addressbook." => "Σφάλμα ενημέρωσης βιβλίου διευθύνσεων.",
+"No ID provided" => "Δε δόθηκε ID",
+"Error setting checksum." => "Λάθος κατά τον ορισμό checksum ",
+"No categories selected for deletion." => "Δε επελέγησαν κατηγορίες για διαγραφή",
+"No address books found." => "Δε βρέθηκε βιβλίο διευθύνσεων",
+"No contacts found." => "Δεν βρέθηκαν επαφές",
"There was an error adding the contact." => "Σφάλμα κατά την προσθήκη επαφής.",
"element name is not set." => "δεν ορίστηκε όνομα στοιχείου",
-"id is not set." => "δεν ορίστηκε id",
"Could not parse contact: " => "Δε αναγνώστηκε η επαφή",
"Cannot add empty property." => "Αδύνατη προσθήκη κενής ιδιότητας.",
"At least one of the address fields has to be filled out." => "Πρέπει να συμπληρωθεί τουλάχιστον ένα από τα παιδία διεύθυνσης.",
"Trying to add duplicate property: " => "Προσπάθεια προσθήκης διπλότυπης ιδιότητας:",
"Error adding contact property: " => "Σφάλμα στη προσθήκη ιδιότητας επαφής",
-"No ID provided" => "Δε δόθηκε ID",
-"Error setting checksum." => "Λάθος κατά τον ορισμό checksum ",
-"No categories selected for deletion." => "Δε επελέγησαν κατηγορίες για διαγραφή",
-"No address books found." => "Δε βρέθηκε βιβλίο διευθύνσεων",
-"No contacts found." => "Δεν βρέθηκαν επαφές",
+"Information about vCard is incorrect. Please reload the page." => "Οι πληροφορίες σχετικά με vCard είναι εσφαλμένες. Παρακαλώ επαναφορτώστε τη σελίδα.",
+"Error deleting contact property." => "Σφάλμα διαγραφής ιδιότητας επαφής.",
"Missing ID" => "Λείπει ID",
"Error parsing VCard for ID: \"" => "Σφάλμα κατά την ανάγνωση του VCard για το ID:\"",
+"checksum is not set." => "δε ορίστηκε checksum ",
+"Information about vCard is incorrect. Please reload the page: " => "Οι πληροφορίες για τη vCard είναι λανθασμένες.Παρακαλώ ξαναφορτώστε τη σελίδα: ",
+"Something went FUBAR. " => "Κάτι χάθηκε στο άγνωστο. ",
+"Error updating contact property." => "Σφάλμα ενημέρωσης ιδιότητας επαφής.",
"No contact ID was submitted." => "Δε υπεβλήθει ID επαφής",
"Error reading contact photo." => "Σφάλμα ανάγνωσης εικόνας επαφής",
"Error saving temporary file." => "Σφάλμα αποθήκευσης προσωρινού αρχείου",
"The loading photo is not valid." => "Η φορτωμένη φωτογραφία δεν είναι έγκυρη",
-"Information about vCard is incorrect. Please reload the page." => "Οι πληροφορίες σχετικά με vCard είναι εσφαλμένες. Παρακαλώ επαναφορτώστε τη σελίδα.",
-"Error deleting contact property." => "Σφάλμα διαγραφής ιδιότητας επαφής.",
"Contact ID is missing." => "Λείπει ID επαφής",
"No photo path was submitted." => "Δε δόθηκε διαδρομή εικόνας",
"File doesn't exist:" => "Το αρχείο δεν υπάρχει:",
@@ -32,12 +38,6 @@
"Error cropping image" => "Σφάλμα κατά την περικοπή εικόνας",
"Error creating temporary image" => "Σφάλμα κατά την δημιουργία προσωρινής εικόνας",
"Error finding image: " => "Σφάλμα κατά την εύρεση της εικόνας: ",
-"checksum is not set." => "δε ορίστηκε checksum ",
-"Information about vCard is incorrect. Please reload the page: " => "Οι πληροφορίες για τη vCard είναι λανθασμένες.Παρακαλώ ξαναφορτώστε τη σελίδα: ",
-"Something went FUBAR. " => "Κάτι χάθηκε στο άγνωστο. ",
-"Error updating contact property." => "Σφάλμα ενημέρωσης ιδιότητας επαφής.",
-"Cannot update addressbook with an empty name." => "Δε μπορεί να γίνει αλλαγή βιβλίου διευθύνσεων χωρίς όνομα",
-"Error updating addressbook." => "Σφάλμα ενημέρωσης βιβλίου διευθύνσεων.",
"Error uploading contacts to storage." => "Σφάλμα κατά την αποθήκευση επαφών",
"There is no error, the file uploaded with success" => "Δεν υπάρχει σφάλμα, το αρχείο ανέβηκε με επιτυχία ",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Το μέγεθος του αρχείου ξεπερνάει το upload_max_filesize του php.ini",
@@ -53,9 +53,6 @@
"Not implemented" => "Δεν έχει υλοποιηθεί",
"Couldn't get a valid address." => "Αδυναμία λήψης έγκυρης διεύθυνσης",
"Error" => "Σφάλμα",
-"Contact" => "Επαφή",
-"New" => "Νέο",
-"New Contact" => "Νέα επαφή",
"This property has to be non-empty." => "Το πεδίο δεν πρέπει να είναι άδειο.",
"Couldn't serialize elements." => "Αδύνατο να μπουν σε σειρά τα στοιχεία",
"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "το 'deleteProperty' καλέστηκε χωρίς without type argument. Παρακαλώ αναφέρατε στο bugs.owncloud.org",
@@ -63,10 +60,10 @@
"No files selected for upload." => "Δεν επιλέχτηκαν αρχεία για μεταφόρτωση",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Το αρχείο που προσπαθείτε να ανεβάσετε υπερβαίνει το μέγιστο μέγεθος για τις προσθήκες αρχείων σε αυτόν τον server.",
"Select type" => "Επιλογή τύπου",
+"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Κάποιες επαφές σημειώθηκαν προς διαγραφή,δεν έχουν διαγραφεί ακόμα. Παρακαλώ περιμένετε μέχρι να διαγραφούν.",
"Result: " => "Αποτέλεσμα: ",
" imported, " => " εισάγεται,",
" failed." => " απέτυχε.",
-"Addressbook not found." => "Δε βρέθηκε βιβλίο διευθύνσεων",
"This is not your addressbook." => "Αυτό δεν είναι το βιβλίο διευθύνσεων σας.",
"Contact could not be found." => "Η επαφή δεν μπόρεσε να βρεθεί.",
"Address" => "Διεύθυνση",
@@ -98,8 +95,10 @@
"Projects" => "Έργα",
"Questions" => "Ερωτήσεις",
"{name}'s Birthday" => "{name} έχει Γενέθλια",
+"Contact" => "Επαφή",
"Add Contact" => "Προσθήκη επαφής",
"Import" => "Εισαγωγή",
+"Settings" => "Ρυθμίσεις",
"Addressbooks" => "Βιβλία διευθύνσεων",
"Close" => "Κλείσιμο ",
"Keyboard shortcuts" => "Συντομεύσεις πλητρολογίου",
@@ -107,18 +106,11 @@
"Next contact in list" => "Επόμενη επαφή στη λίστα",
"Previous contact in list" => "Προηγούμενη επαφή στη λίστα",
"Expand/collapse current addressbook" => "Ανάπτυξη/σύμπτυξη τρέχοντος βιβλίου διευθύνσεων",
-"Next/previous addressbook" => "Επόμενο/προηγούμενο βιβλίο διευθύνσεων",
"Actions" => "Ενέργειες",
"Refresh contacts list" => "Ανανέωσε τη λίστα επαφών",
"Add new contact" => "Προσθήκη νέας επαφής",
"Add new addressbook" => "Προσθήκη νέου βιβλίου επαφών",
"Delete current contact" => "Διαγραφή τρέχουσας επαφής",
-"Configure Address Books" => "Ρυθμίστε το βιβλίο διευθύνσεων ",
-"New Address Book" => "Νέο βιβλίο διευθύνσεων",
-"CardDav Link" => "Σύνδεσμος CardDav",
-"Download" => "Λήψη",
-"Edit" => "Επεξεργασία",
-"Delete" => "Διαγραφή",
"Drop photo to upload" => "Ρίξε μια φωτογραφία για ανέβασμα",
"Delete current photo" => "Διαγραφή τρέχουσας φωτογραφίας",
"Edit current photo" => "Επεξεργασία τρέχουσας φωτογραφίας",
@@ -126,6 +118,7 @@
"Select photo from ownCloud" => "Επέλεξε φωτογραφία από το ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Format custom, Όνομα, Επώνυμο, Αντίστροφο ή Αντίστροφο με κόμμα",
"Edit name details" => "Αλλάξτε τις λεπτομέρειες ονόματος",
+"Delete" => "Διαγραφή",
"Nickname" => "Παρατσούκλι",
"Enter nickname" => "Εισάγετε παρατσούκλι",
"Web site" => "Ιστότοπος",
@@ -184,13 +177,6 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "Νέο βιβλίο διευθύνσεων",
-"Edit Addressbook" => "Επεξεργασία βιβλίου διευθύνσεων",
-"Displayname" => "Προβαλλόμενο όνομα",
-"Active" => "Ενεργό",
-"Save" => "Αποθήκευση",
-"Submit" => "Καταχώρηση",
-"Cancel" => "Ακύρωση",
"Import a contacts file" => "Εισαγωγή αρχείου επαφών",
"Please choose the addressbook" => "Παρακαλώ επέλεξε βιβλίο διευθύνσεων",
"create a new addressbook" => "Δημιουργία νέου βιβλίου διευθύνσεων",
@@ -206,5 +192,12 @@
"more info" => "περισσότερες πληροφορίες",
"Primary address (Kontact et al)" => "Κύρια διεύθυνση",
"iOS/OS X" => "iOS/OS X",
-"Read only vCard directory link(s)" => "vCard σύνδεσμος(οι) φάκελου μόνο για ανάγνωση"
+"Download" => "Λήψη",
+"Edit" => "Επεξεργασία",
+"New Address Book" => "Νέο βιβλίο διευθύνσεων",
+"Name" => "Όνομα",
+"Description" => "Περιγραφή",
+"Save" => "Αποθήκευση",
+"Cancel" => "Ακύρωση",
+"More..." => "Περισσότερα..."
);
diff --git a/apps/contacts/l10n/eo.php b/apps/contacts/l10n/eo.php
index ffc885a41a5..29ac52b1fe7 100644
--- a/apps/contacts/l10n/eo.php
+++ b/apps/contacts/l10n/eo.php
@@ -1,46 +1,63 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Eraro dum (mal)aktivigo de adresaro.",
-"There was an error adding the contact." => "Eraro okazis dum aldono de kontakto.",
-"Cannot add empty property." => "Ne eblas aldoni malplenan propraĵon.",
-"At least one of the address fields has to be filled out." => "Almenaŭ unu el la adreskampoj necesas pleniĝi.",
-"Trying to add duplicate property: " => "Provante aldoni duobligitan propraĵon:",
-"Error adding contact property." => "Eraro dum aldono de kontaktopropraĵo.",
+"id is not set." => "identigilo ne agordiĝis.",
+"Cannot update addressbook with an empty name." => "Ne eblas ĝisdatigi adresaron kun malplena nomo.",
+"Error updating addressbook." => "Eraro dum ĝisdatigo de adresaro.",
"No ID provided" => "Neniu identigilo proviziĝis.",
"Error setting checksum." => "Eraro dum agordado de kontrolsumo.",
"No categories selected for deletion." => "Neniu kategorio elektiĝis por forigi.",
"No address books found." => "Neniu adresaro troviĝis.",
"No contacts found." => "Neniu kontakto troviĝis.",
+"There was an error adding the contact." => "Eraro okazis dum aldono de kontakto.",
+"element name is not set." => "eronomo ne agordiĝis.",
+"Cannot add empty property." => "Ne eblas aldoni malplenan propraĵon.",
+"At least one of the address fields has to be filled out." => "Almenaŭ unu el la adreskampoj necesas pleniĝi.",
+"Trying to add duplicate property: " => "Provante aldoni duobligitan propraĵon:",
+"Error adding contact property: " => "Eraro aldonante kontakta propraĵo:",
+"Information about vCard is incorrect. Please reload the page." => "Informo pri vCard estas malĝusta. Bonvolu reŝargi la paĝon.",
+"Error deleting contact property." => "Eraro dum forigo de kontaktopropraĵo.",
"Missing ID" => "Mankas identigilo",
"Error parsing VCard for ID: \"" => "Eraro dum analizo de VCard por identigilo:",
-"Cannot add addressbook with an empty name." => "Ne eblas aldoni adresaron kun malplena nomo.",
-"Error adding addressbook." => "Eraro dum aldono de adresaro.",
-"Error activating addressbook." => "Eraro dum aktivigo de adresaro.",
+"checksum is not set." => "kontrolsumo ne agordiĝis.",
+"Information about vCard is incorrect. Please reload the page: " => "Informo pri vCard malĝustas. Bonvolu reŝargi la paĝon:",
+"Something went FUBAR. " => "Io FUBAR-is.",
+"Error updating contact property." => "Eraro dum ĝisdatigo de kontaktopropraĵo.",
"No contact ID was submitted." => "Neniu kontaktidentigilo sendiĝis.",
"Error reading contact photo." => "Eraro dum lego de kontakta foto.",
"Error saving temporary file." => "Eraro dum konservado de provizora dosiero.",
"The loading photo is not valid." => "La alŝutata foto ne validas.",
-"id is not set." => "identigilo ne agordiĝis.",
-"Information about vCard is incorrect. Please reload the page." => "Informo pri vCard estas malĝusta. Bonvolu reŝargi la paĝon.",
-"Error deleting contact property." => "Eraro dum forigo de kontaktopropraĵo.",
"Contact ID is missing." => "Kontaktidentigilo mankas.",
-"Missing contact id." => "Mankas kontaktidentigilo.",
"No photo path was submitted." => "Neniu vojo al foto sendiĝis.",
"File doesn't exist:" => "Dosiero ne ekzistas:",
"Error loading image." => "Eraro dum ŝargado de bildo.",
-"element name is not set." => "eronomo ne agordiĝis.",
-"checksum is not set." => "kontrolsumo ne agordiĝis.",
-"Information about vCard is incorrect. Please reload the page: " => "Informo pri vCard malĝustas. Bonvolu reŝargi la paĝon:",
-"Something went FUBAR. " => "Io FUBAR-is.",
-"Error updating contact property." => "Eraro dum ĝisdatigo de kontaktopropraĵo.",
-"Cannot update addressbook with an empty name." => "Ne eblas ĝisdatigi adresaron kun malplena nomo.",
-"Error updating addressbook." => "Eraro dum ĝisdatigo de adresaro.",
+"Error getting contact object." => "Eraro dum ekhaviĝis kontakta objekto.",
+"Error getting PHOTO property." => "Eraro dum ekhaviĝis la propraĵon PHOTO.",
+"Error saving contact." => "Eraro dum konserviĝis kontakto.",
+"Error resizing image" => "Eraro dum aligrandiĝis bildo",
+"Error cropping image" => "Eraro dum stuciĝis bildo.",
+"Error creating temporary image" => "Eraro dum kreiĝis provizora bildo.",
+"Error finding image: " => "Eraro dum serĉo de bildo: ",
+"Error uploading contacts to storage." => "Eraro dum alŝutiĝis kontaktoj al konservejo.",
"There is no error, the file uploaded with success" => "Ne estas eraro, la dosiero alŝutiĝis sukcese.",
"The uploaded file was only partially uploaded" => "la alŝutita dosiero nur parte alŝutiĝis",
"No file was uploaded" => "Neniu dosiero alŝutiĝis.",
"Missing a temporary folder" => "Mankas provizora dosierujo.",
+"Couldn't save temporary image: " => "Ne eblis konservi provizoran bildon: ",
+"Couldn't load temporary image: " => "Ne eblis ŝargi provizoran bildon: ",
+"No file was uploaded. Unknown error" => "Neniu dosiero alŝutiĝis. Nekonata eraro.",
"Contacts" => "Kontaktoj",
-"Drop a VCF file to import contacts." => "Demetu VCF-dosieron por enporti kontaktojn.",
-"Addressbook not found." => "Adresaro ne troviĝis.",
+"Sorry, this functionality has not been implemented yet" => "Pardonu, ĉi tiu funkcio ankoraŭ ne estas realigita.",
+"Not implemented" => "Ne disponebla",
+"Couldn't get a valid address." => "Ne eblis ekhavi validan adreson.",
+"Error" => "Eraro",
+"This property has to be non-empty." => "Ĉi tiu propraĵo devas ne esti malplena.",
+"Edit name" => "Redakti nomon",
+"No files selected for upload." => "Neniu dosiero elektita por alŝuto.",
+"Select type" => "Elektu tipon",
+"Result: " => "Rezulto: ",
+" imported, " => " enportoj, ",
+" failed." => "malsukcesoj.",
+"Addressbook not found: " => "Adresaro ne troviĝis:",
"This is not your addressbook." => "Ĉi tiu ne estas via adresaro.",
"Contact could not be found." => "Ne eblis trovi la kontakton.",
"Address" => "Adreso",
@@ -57,25 +74,43 @@
"Video" => "Videaĵo",
"Pager" => "Televokilo",
"Internet" => "Interreto",
+"Birthday" => "Naskiĝotago",
+"Business" => "Negoco",
+"Clients" => "Klientoj",
+"Ideas" => "Ideoj",
+"Meeting" => "Kunveno",
+"Other" => "Alia",
+"Personal" => "Persona",
+"Projects" => "Projektoj",
+"Questions" => "Demandoj",
"{name}'s Birthday" => "Naskiĝtago de {name}",
"Contact" => "Kontakto",
"Add Contact" => "Aldoni kontakton",
+"Import" => "Enporti",
+"Settings" => "Agordo",
"Addressbooks" => "Adresaroj",
-"Configure Address Books" => "Agordi adresarojn",
-"New Address Book" => "Nova adresaro",
-"Import from VCF" => "Enporti el VCF",
-"CardDav Link" => "CardDav-ligilo",
-"Download" => "Elŝuti",
-"Edit" => "Redakti",
-"Delete" => "Forigi",
-"Download contact" => "Elŝuti kontakton",
-"Delete contact" => "Forigi kontakton",
+"Close" => "Fermi",
+"Keyboard shortcuts" => "Fulmoklavoj",
+"Navigation" => "Navigado",
+"Next contact in list" => "Sekva kontakto en la listo",
+"Previous contact in list" => "Malsekva kontakto en la listo",
+"Actions" => "Agoj",
+"Add new contact" => "Aldoni novan kontakton",
+"Add new addressbook" => "Aldoni novan adresaron",
+"Delete current contact" => "Forigi la nunan kontakton",
"Drop photo to upload" => "Demeti foton por alŝuti",
+"Delete current photo" => "Forigi nunan foton",
+"Edit current photo" => "Redakti nunan foton",
+"Upload new photo" => "Alŝuti novan foton",
+"Select photo from ownCloud" => "Elekti foton el ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Propra formo, Mallonga nomo, Longa nomo, Inversa aŭ Inversa kun komo",
"Edit name details" => "Redakti detalojn de nomo",
+"Delete" => "Forigi",
"Nickname" => "Kromnomo",
"Enter nickname" => "Enigu kromnomon",
-"Birthday" => "Naskiĝotago",
+"Web site" => "TTT-ejo",
+"http://www.somesite.com" => "http://www.iuejo.com",
+"Go to web site" => "Iri al TTT-ejon",
"dd-mm-yyyy" => "yyyy-mm-dd",
"Groups" => "Grupoj",
"Separate groups with commas" => "Disigi grupojn per komoj",
@@ -91,24 +126,22 @@
"Edit address details" => "Redakti detalojn de adreso",
"Add notes here." => "Aldoni notojn ĉi tie.",
"Add field" => "Aldoni kampon",
-"Profile picture" => "Profila bildo",
"Phone" => "Telefono",
"Note" => "Noto",
-"Delete current photo" => "Forigi nunan foton",
-"Edit current photo" => "Redakti nunan foton",
-"Upload new photo" => "Alŝuti novan foton",
-"Select photo from ownCloud" => "Elekti foton el ownCloud",
+"Download contact" => "Elŝuti kontakton",
+"Delete contact" => "Forigi kontakton",
+"The temporary image has been removed from cache." => "La provizora bildo estas forigita de la kaŝmemoro.",
"Edit address" => "Redakti adreson",
"Type" => "Tipo",
"PO Box" => "Abonkesto",
+"Street address" => "Stratadreso",
+"Street and number" => "Strato kaj numero",
"Extended" => "Etendita",
-"Street" => "Strato",
"City" => "Urbo",
"Region" => "Regiono",
"Zipcode" => "Poŝtokodo",
+"Postal code" => "Poŝtkodo",
"Country" => "Lando",
-"Edit categories" => "Redakti kategoriojn",
-"Add" => "Aldoni",
"Addressbook" => "Adresaro",
"Hon. prefixes" => "Honoraj antaŭmetaĵoj",
"Miss" => "f-ino",
@@ -121,26 +154,29 @@
"Additional names" => "Pliaj nomoj",
"Family name" => "Familia nomo",
"Hon. suffixes" => "Honoraj postmetaĵoj",
-"New Addressbook" => "Nova adresaro",
-"Edit Addressbook" => "Redakti adresaron",
-"Displayname" => "Montronomo",
-"Active" => "Aktiva",
-"Save" => "Konservi",
-"Submit" => "Sendi",
-"Cancel" => "Nuligi",
"Import a contacts file" => "Enporti kontaktodosieron",
"Please choose the addressbook" => "Bonvolu elekti adresaron",
"create a new addressbook" => "krei novan adresaron",
"Name of new addressbook" => "Nomo de nova adresaro",
-"Import" => "Enporti",
"Importing contacts" => "Enportante kontaktojn",
-"Select address book to import to:" => "Elektu adresaron kien enporti:",
-"Select from HD" => "Elekti el malmoldisko",
"You have no contacts in your addressbook." => "Vi ne havas kontaktojn en via adresaro",
"Add contact" => "Aldoni kontakton",
"Configure addressbooks" => "Agordi adresarojn",
+"Select Address Books" => "Elektu adresarojn",
+"Enter name" => "Enigu nomon",
+"Enter description" => "Enigu priskribon",
"CardDAV syncing addresses" => "adresoj por CardDAV-sinkronigo",
"more info" => "pli da informo",
"Primary address (Kontact et al)" => "Ĉefa adreso (por Kontakt kaj aliaj)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Show CardDav link" => "Montri CardDav-ligilon",
+"Show read-only VCF link" => "Montri nur legeblan VCF-ligilon",
+"Download" => "Elŝuti",
+"Edit" => "Redakti",
+"New Address Book" => "Nova adresaro",
+"Name" => "Nomo",
+"Description" => "Priskribo",
+"Save" => "Konservi",
+"Cancel" => "Nuligi",
+"More..." => "Pli..."
);
diff --git a/apps/contacts/l10n/es.php b/apps/contacts/l10n/es.php
index 2bdb300aa8f..e9ee24d5297 100644
--- a/apps/contacts/l10n/es.php
+++ b/apps/contacts/l10n/es.php
@@ -1,39 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Error al (des)activar libreta de direcciones.",
-"There was an error adding the contact." => "Se ha producido un error al añadir el contacto.",
-"Cannot add empty property." => "No se puede añadir una propiedad vacía.",
-"At least one of the address fields has to be filled out." => "Al menos uno de los campos de direcciones se tiene que rellenar.",
-"Trying to add duplicate property: " => "Intentando añadir una propiedad duplicada: ",
-"Error adding contact property." => "Error al añadir una propiedad del contacto.",
+"id is not set." => "no se ha puesto ninguna ID.",
+"Cannot update addressbook with an empty name." => "No se puede actualizar una libreta de direcciones sin nombre.",
+"Error updating addressbook." => "Error al actualizar la libreta de direcciones.",
"No ID provided" => "No se ha proporcionado una ID",
"Error setting checksum." => "Error al establecer la suma de verificación.",
"No categories selected for deletion." => "No se seleccionaron categorías para borrar.",
"No address books found." => "No se encontraron libretas de direcciones.",
"No contacts found." => "No se encontraron contactos.",
+"There was an error adding the contact." => "Se ha producido un error al añadir el contacto.",
+"element name is not set." => "no se ha puesto ningún nombre de elemento.",
+"Cannot add empty property." => "No se puede añadir una propiedad vacía.",
+"At least one of the address fields has to be filled out." => "Al menos uno de los campos de direcciones se tiene que rellenar.",
+"Trying to add duplicate property: " => "Intentando añadir una propiedad duplicada: ",
+"Information about vCard is incorrect. Please reload the page." => "La información sobre el vCard es incorrecta. Por favor vuelve a cargar la página.",
+"Error deleting contact property." => "Error al borrar una propiedad del contacto.",
"Missing ID" => "Falta la ID",
"Error parsing VCard for ID: \"" => "Error al analizar el VCard para la ID: \"",
-"Cannot add addressbook with an empty name." => "No se puede añadir una libreta de direcciones sin nombre",
-"Error adding addressbook." => "Error al añadir la libreta de direcciones.",
-"Error activating addressbook." => "Error al activar la libreta de direcciones.",
+"checksum is not set." => "no se ha puesto ninguna suma de comprobación.",
+"Information about vCard is incorrect. Please reload the page: " => "La información sobre la vCard es incorrecta. Por favor, recarga la página:",
+"Something went FUBAR. " => "Plof. Algo ha fallado.",
+"Error updating contact property." => "Error al actualizar una propiedad del contacto.",
"No contact ID was submitted." => "No se ha mandado ninguna ID de contacto.",
"Error reading contact photo." => "Error leyendo fotografía del contacto.",
"Error saving temporary file." => "Error al guardar archivo temporal.",
"The loading photo is not valid." => "La foto que se estaba cargando no es válida.",
-"id is not set." => "no se ha puesto ninguna ID.",
-"Information about vCard is incorrect. Please reload the page." => "La información sobre el vCard es incorrecta. Por favor vuelve a cargar la página.",
-"Error deleting contact property." => "Error al borrar una propiedad del contacto.",
"Contact ID is missing." => "Falta la ID del contacto.",
-"Missing contact id." => "Falta la id del contacto.",
"No photo path was submitted." => "No se ha introducido la ruta de la foto.",
"File doesn't exist:" => "Archivo inexistente:",
"Error loading image." => "Error cargando imagen.",
-"element name is not set." => "no se ha puesto ningún nombre de elemento.",
-"checksum is not set." => "no se ha puesto ninguna suma de comprobación.",
-"Information about vCard is incorrect. Please reload the page: " => "La información sobre la vCard es incorrecta. Por favor, recarga la página:",
-"Something went FUBAR. " => "Plof. Algo ha fallado.",
-"Error updating contact property." => "Error al actualizar una propiedad del contacto.",
-"Cannot update addressbook with an empty name." => "No se puede actualizar una libreta de direcciones sin nombre.",
-"Error updating addressbook." => "Error al actualizar la libreta de direcciones.",
+"Error getting contact object." => "Fallo al coger el contacto.",
+"Error getting PHOTO property." => "Fallo al coger las propiedades de la foto .",
+"Error saving contact." => "Fallo al salvar un contacto",
+"Error resizing image" => "Fallo al cambiar de tamaño una foto",
+"Error cropping image" => "Fallo al cortar el tamaño de la foto",
+"Error creating temporary image" => "Fallo al crear la foto temporal",
+"Error finding image: " => "Fallo al encontrar la imagen",
"Error uploading contacts to storage." => "Error al subir contactos al almacenamiento.",
"There is no error, the file uploaded with success" => "No hay ningún error, el archivo se ha subido con éxito",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "El archivo subido sobrepasa la directiva upload_max_filesize de php.ini",
@@ -41,9 +43,24 @@
"The uploaded file was only partially uploaded" => "El archivo se ha subido parcialmente",
"No file was uploaded" => "No se ha subido ningún archivo",
"Missing a temporary folder" => "Falta la carpeta temporal",
+"Couldn't save temporary image: " => "Fallo no pudo salvar a una imagen temporal",
+"Couldn't load temporary image: " => "Fallo no pudo cargara de una imagen temporal",
+"No file was uploaded. Unknown error" => "Fallo no se subió el fichero",
"Contacts" => "Contactos",
-"Drop a VCF file to import contacts." => "Suelta un archivo VCF para importar contactos.",
-"Addressbook not found." => "Libreta de direcciones no encontrada.",
+"Sorry, this functionality has not been implemented yet" => "Perdón esta función no esta aún implementada",
+"Not implemented" => "No esta implementada",
+"Couldn't get a valid address." => "Fallo : no hay dirección valida",
+"Error" => "Fallo",
+"This property has to be non-empty." => "Este campo no puede estar vacío.",
+"Couldn't serialize elements." => "Fallo no podido ordenar los elementos",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "La propiedad de \"borrar\" se llamado sin argumentos envia fallos a\nbugs.owncloud.org",
+"Edit name" => "Edita el Nombre",
+"No files selected for upload." => "No hay ficheros seleccionados para subir",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "El fichero que quieres subir excede el tamaño máximo permitido en este servidor.",
+"Select type" => "Selecciona el tipo",
+"Result: " => "Resultado :",
+" imported, " => "Importado.",
+" failed." => "Fallo.",
"This is not your addressbook." => "Esta no es tu agenda de contactos.",
"Contact could not be found." => "No se ha podido encontrar el contacto.",
"Address" => "Dirección",
@@ -60,25 +77,23 @@
"Video" => "Vídeo",
"Pager" => "Localizador",
"Internet" => "Internet",
+"Birthday" => "Cumpleaños",
"{name}'s Birthday" => "Cumpleaños de {name}",
"Contact" => "Contacto",
"Add Contact" => "Añadir contacto",
+"Import" => "Importar",
"Addressbooks" => "Libretas de direcciones",
-"Configure Address Books" => "Configurar libretas de direcciones",
-"New Address Book" => "Nueva libreta de direcciones",
-"Import from VCF" => "Importar desde VCF",
-"CardDav Link" => "Enlace CardDav",
-"Download" => "Descargar",
-"Edit" => "Editar",
-"Delete" => "Borrar",
-"Download contact" => "Descargar contacto",
-"Delete contact" => "Eliminar contacto",
+"Close" => "Cierra.",
"Drop photo to upload" => "Suelta una foto para subirla",
+"Delete current photo" => "Eliminar fotografía actual",
+"Edit current photo" => "Editar fotografía actual",
+"Upload new photo" => "Subir nueva fotografía",
+"Select photo from ownCloud" => "Seleccionar fotografía desde ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formato personalizado, nombre abreviado, nombre completo, al revés o al revés con coma",
"Edit name details" => "Editar los detalles del nombre",
+"Delete" => "Borrar",
"Nickname" => "Alias",
"Enter nickname" => "Introduce un alias",
-"Birthday" => "Cumpleaños",
"dd-mm-yyyy" => "dd-mm-yyyy",
"Groups" => "Grupos",
"Separate groups with commas" => "Separa los grupos con comas",
@@ -94,24 +109,19 @@
"Edit address details" => "Editar detalles de la dirección",
"Add notes here." => "Añade notas aquí.",
"Add field" => "Añadir campo",
-"Profile picture" => "Foto del perfil",
"Phone" => "Teléfono",
"Note" => "Nota",
-"Delete current photo" => "Eliminar fotografía actual",
-"Edit current photo" => "Editar fotografía actual",
-"Upload new photo" => "Subir nueva fotografía",
-"Select photo from ownCloud" => "Seleccionar fotografía desde ownCloud",
+"Download contact" => "Descargar contacto",
+"Delete contact" => "Eliminar contacto",
+"The temporary image has been removed from cache." => "La foto temporal se ha borrado del cache.",
"Edit address" => "Editar dirección",
"Type" => "Tipo",
"PO Box" => "Código postal",
"Extended" => "Extendido",
-"Street" => "Calle",
"City" => "Ciudad",
"Region" => "Región",
"Zipcode" => "Código postal",
"Country" => "País",
-"Edit categories" => "Editar categorías",
-"Add" => "Añadir",
"Addressbook" => "Libreta de direcciones",
"Hon. prefixes" => "Prefijos honoríficos",
"Miss" => "Srta",
@@ -132,26 +142,21 @@
"Esq." => "Don",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "Nueva libreta de direcciones",
-"Edit Addressbook" => "Editar libreta de direcciones",
-"Displayname" => "Nombre a mostrar",
-"Active" => "Activo",
-"Save" => "Guardar",
-"Submit" => "Aceptar",
-"Cancel" => "Cancelar",
"Import a contacts file" => "Importar archivo de contactos",
"Please choose the addressbook" => "Por favor escoge la agenda",
"create a new addressbook" => "crear una nueva agenda",
"Name of new addressbook" => "Nombre de la nueva agenda",
-"Import" => "Importar",
"Importing contacts" => "Importando contactos",
-"Select address book to import to:" => "Selecciona una agenda para importar a:",
-"Select from HD" => "Seleccionar del disco duro",
"You have no contacts in your addressbook." => "No hay contactos en tu agenda.",
"Add contact" => "Añadir contacto",
"Configure addressbooks" => "Configurar agenda",
"CardDAV syncing addresses" => "Sincronizando direcciones",
"more info" => "más información",
"Primary address (Kontact et al)" => "Dirección primaria (Kontact et al)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Descargar",
+"Edit" => "Editar",
+"New Address Book" => "Nueva libreta de direcciones",
+"Save" => "Guardar",
+"Cancel" => "Cancelar"
);
diff --git a/apps/contacts/l10n/et_EE.php b/apps/contacts/l10n/et_EE.php
index 39a287c9619..c11ea6d8384 100644
--- a/apps/contacts/l10n/et_EE.php
+++ b/apps/contacts/l10n/et_EE.php
@@ -1,39 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Viga aadressiraamatu (de)aktiveerimisel.",
-"There was an error adding the contact." => "Konktakti lisamisel tekkis viga.",
-"Cannot add empty property." => "Tühja omadust ei saa lisada.",
-"At least one of the address fields has to be filled out." => "Vähemalt üks aadressiväljadest peab olema täidetud.",
-"Trying to add duplicate property: " => "Proovitakse lisada topeltomadust: ",
-"Error adding contact property." => "Viga konktakti korralikul lisamisel.",
+"id is not set." => "ID on määramata.",
+"Cannot update addressbook with an empty name." => "Tühja nimega aadressiraamatut ei saa uuendada.",
+"Error updating addressbook." => "Viga aadressiraamatu uuendamisel.",
"No ID provided" => "ID-d pole sisestatud",
"Error setting checksum." => "Viga kontrollsumma määramisel.",
"No categories selected for deletion." => "Kustutamiseks pole valitud ühtegi kategooriat.",
"No address books found." => "Ei leitud ühtegi aadressiraamatut.",
"No contacts found." => "Ühtegi kontakti ei leitud.",
+"There was an error adding the contact." => "Konktakti lisamisel tekkis viga.",
+"element name is not set." => "elemendi nime pole määratud.",
+"Cannot add empty property." => "Tühja omadust ei saa lisada.",
+"At least one of the address fields has to be filled out." => "Vähemalt üks aadressiväljadest peab olema täidetud.",
+"Trying to add duplicate property: " => "Proovitakse lisada topeltomadust: ",
+"Information about vCard is incorrect. Please reload the page." => "Visiitkaardi info pole korrektne. Palun lae leht uuesti.",
+"Error deleting contact property." => "Viga konktaki korralikul kustutamisel.",
"Missing ID" => "Puudub ID",
"Error parsing VCard for ID: \"" => "Viga VCard-ist ID parsimisel: \"",
-"Cannot add addressbook with an empty name." => "Tühja nimega aadressiraamatut ei saa lisada.",
-"Error adding addressbook." => "Viga aadressiraamatu lisamisel.",
-"Error activating addressbook." => "Viga aadressiraamatu aktiveerimisel.",
+"checksum is not set." => "kontrollsummat pole määratud.",
+"Information about vCard is incorrect. Please reload the page: " => "vCard info pole korrektne. Palun lae lehekülg uuesti: ",
+"Something went FUBAR. " => "Midagi läks tõsiselt metsa.",
+"Error updating contact property." => "Viga konktaki korralikul uuendamisel.",
"No contact ID was submitted." => "Kontakti ID-d pole sisestatud.",
"Error reading contact photo." => "Viga kontakti foto lugemisel.",
"Error saving temporary file." => "Viga ajutise faili salvestamisel.",
"The loading photo is not valid." => "Laetav pilt pole korrektne pildifail.",
-"id is not set." => "ID on määramata.",
-"Information about vCard is incorrect. Please reload the page." => "Visiitkaardi info pole korrektne. Palun lae leht uuesti.",
-"Error deleting contact property." => "Viga konktaki korralikul kustutamisel.",
"Contact ID is missing." => "Kontakti ID puudub.",
-"Missing contact id." => "Puuduv kontakti ID.",
"No photo path was submitted." => "Foto asukohta pole määratud.",
"File doesn't exist:" => "Faili pole olemas:",
"Error loading image." => "Viga pildi laadimisel.",
-"element name is not set." => "elemendi nime pole määratud.",
-"checksum is not set." => "kontrollsummat pole määratud.",
-"Information about vCard is incorrect. Please reload the page: " => "vCard info pole korrektne. Palun lae lehekülg uuesti: ",
-"Something went FUBAR. " => "Midagi läks tõsiselt metsa.",
-"Error updating contact property." => "Viga konktaki korralikul uuendamisel.",
-"Cannot update addressbook with an empty name." => "Tühja nimega aadressiraamatut ei saa uuendada.",
-"Error updating addressbook." => "Viga aadressiraamatu uuendamisel.",
+"Error getting contact object." => "Viga kontakti objekti hankimisel.",
+"Error getting PHOTO property." => "Viga PHOTO omaduse hankimisel.",
+"Error saving contact." => "Viga kontakti salvestamisel.",
+"Error resizing image" => "Viga pildi suuruse muutmisel",
+"Error cropping image" => "Viga pildi lõikamisel",
+"Error creating temporary image" => "Viga ajutise pildi loomisel",
+"Error finding image: " => "Viga pildi leidmisel: ",
"Error uploading contacts to storage." => "Viga kontaktide üleslaadimisel kettale.",
"There is no error, the file uploaded with success" => "Ühtegi tõrget polnud, fail on üles laetud",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Üleslaetud fail ületab php.ini failis määratud upload_max_filesize suuruse",
@@ -41,9 +43,21 @@
"The uploaded file was only partially uploaded" => "Fail laeti üles ainult osaliselt",
"No file was uploaded" => "Ühtegi faili ei laetud üles",
"Missing a temporary folder" => "Ajutiste failide kaust puudub",
+"Couldn't save temporary image: " => "Ajutise pildi salvestamine ebaõnnestus: ",
+"Couldn't load temporary image: " => "Ajutise pildi laadimine ebaõnnestus: ",
+"No file was uploaded. Unknown error" => "Ühtegi faili ei laetud üles. Tundmatu viga",
"Contacts" => "Kontaktid",
-"Drop a VCF file to import contacts." => "Lohista siia VCF-fail, millest kontakte importida.",
-"Addressbook not found." => "Aadressiraamatut ei leitud",
+"Sorry, this functionality has not been implemented yet" => "Vabandust, aga see funktsioon pole veel valmis",
+"Not implemented" => "Pole implementeeritud",
+"Couldn't get a valid address." => "Kehtiva aadressi hankimine ebaõnnestus",
+"Error" => "Viga",
+"This property has to be non-empty." => "See omadus ei tohi olla tühi.",
+"Edit name" => "Muuda nime",
+"No files selected for upload." => "Üleslaadimiseks pole faile valitud.",
+"Select type" => "Vali tüüp",
+"Result: " => "Tulemus: ",
+" imported, " => " imporditud, ",
+" failed." => " ebaõnnestus.",
"This is not your addressbook." => "See pole sinu aadressiraamat.",
"Contact could not be found." => "Kontakti ei leitud.",
"Address" => "Aadress",
@@ -60,25 +74,23 @@
"Video" => "Video",
"Pager" => "Piipar",
"Internet" => "Internet",
+"Birthday" => "Sünnipäev",
"{name}'s Birthday" => "{name} sünnipäev",
"Contact" => "Kontakt",
"Add Contact" => "Lisa kontakt",
+"Import" => "Impordi",
"Addressbooks" => "Aadressiraamatud",
-"Configure Address Books" => "Seadista aadressiraamatut",
-"New Address Book" => "Uus aadressiraamat",
-"Import from VCF" => "Impordi VCF-ist",
-"CardDav Link" => "CardDav link",
-"Download" => "Lae alla",
-"Edit" => "Muuda",
-"Delete" => "Kustuta",
-"Download contact" => "Lae kontakt alla",
-"Delete contact" => "Kustuta kontakt",
+"Close" => "Sule",
"Drop photo to upload" => "Lohista üleslaetav foto siia",
+"Delete current photo" => "Kustuta praegune foto",
+"Edit current photo" => "Muuda praegust pilti",
+"Upload new photo" => "Lae üles uus foto",
+"Select photo from ownCloud" => "Vali foto ownCloudist",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Kohandatud vorming, Lühike nimi, Täielik nimi, vastupidine või vastupidine komadega",
"Edit name details" => "Muuda nime üksikasju",
+"Delete" => "Kustuta",
"Nickname" => "Hüüdnimi",
"Enter nickname" => "Sisesta hüüdnimi",
-"Birthday" => "Sünnipäev",
"dd-mm-yyyy" => "dd.mm.yyyy",
"Groups" => "Grupid",
"Separate groups with commas" => "Eralda grupid komadega",
@@ -94,24 +106,19 @@
"Edit address details" => "Muuda aaressi infot",
"Add notes here." => "Lisa märkmed siia.",
"Add field" => "Lisa väli",
-"Profile picture" => "Profiili pilt",
"Phone" => "Telefon",
"Note" => "Märkus",
-"Delete current photo" => "Kustuta praegune foto",
-"Edit current photo" => "Muuda praegust pilti",
-"Upload new photo" => "Lae üles uus foto",
-"Select photo from ownCloud" => "Vali foto ownCloudist",
+"Download contact" => "Lae kontakt alla",
+"Delete contact" => "Kustuta kontakt",
+"The temporary image has been removed from cache." => "Ajutine pilt on puhvrist eemaldatud.",
"Edit address" => "Muuda aadressi",
"Type" => "Tüüp",
"PO Box" => "Postkontori postkast",
"Extended" => "Laiendatud",
-"Street" => "Tänav",
"City" => "Linn",
"Region" => "Piirkond",
"Zipcode" => "Postiindeks",
"Country" => "Riik",
-"Edit categories" => "Muuda kategooriat",
-"Add" => "Lisa",
"Addressbook" => "Aadressiraamat",
"Hon. prefixes" => "Eesliited",
"Miss" => "Preili",
@@ -132,26 +139,21 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Senior.",
-"New Addressbook" => "Uus aadressiraamat",
-"Edit Addressbook" => "Muuda aadressiraamatut",
-"Displayname" => "Näidatav nimi",
-"Active" => "Aktiivne",
-"Save" => "Salvesta",
-"Submit" => "Saada",
-"Cancel" => "Loobu",
"Import a contacts file" => "Impordi kontaktifail",
"Please choose the addressbook" => "Palun vali aadressiraamat",
"create a new addressbook" => "loo uus aadressiraamat",
"Name of new addressbook" => "Uue aadressiraamatu nimi",
-"Import" => "Impordi",
"Importing contacts" => "Kontaktide importimine",
-"Select address book to import to:" => "Vali aadressiraamat, millesse importida:",
-"Select from HD" => "Vali kõvakettalt",
"You have no contacts in your addressbook." => "Sinu aadressiraamatus pole ühtegi kontakti.",
"Add contact" => "Lisa kontakt",
"Configure addressbooks" => "Seadista aadressiraamatuid",
"CardDAV syncing addresses" => "CardDAV sünkroniseerimise aadressid",
"more info" => "lisainfo",
"Primary address (Kontact et al)" => "Peamine aadress",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Lae alla",
+"Edit" => "Muuda",
+"New Address Book" => "Uus aadressiraamat",
+"Save" => "Salvesta",
+"Cancel" => "Loobu"
);
diff --git a/apps/contacts/l10n/eu.php b/apps/contacts/l10n/eu.php
index 6dfbf0a7b23..7a0b2ce38b7 100644
--- a/apps/contacts/l10n/eu.php
+++ b/apps/contacts/l10n/eu.php
@@ -1,36 +1,67 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Errore bat egon da helbide-liburua (des)gaitzen",
-"There was an error adding the contact." => "Errore bat egon da kontaktua gehitzerakoan",
-"Cannot add empty property." => "Ezin da propieta hutsa gehitu.",
-"At least one of the address fields has to be filled out." => "Behintzat helbide eremuetako bat bete behar da.",
-"Error adding contact property." => "Errorea kontaktu propietatea gehitzean.",
+"id is not set." => "IDa ez da ezarri.",
+"Cannot update addressbook with an empty name." => "Ezin da helbide liburua eguneratu izen huts batekin.",
+"Error updating addressbook." => "Errore bat egon da helbide liburua eguneratzen.",
"No ID provided" => "Ez da IDrik eman",
+"Error setting checksum." => "Errorea kontrol-batura ezartzean.",
"No categories selected for deletion." => "Ez dira ezabatzeko kategoriak hautatu.",
"No address books found." => "Ez da helbide libururik aurkitu.",
"No contacts found." => "Ez da kontakturik aurkitu.",
+"There was an error adding the contact." => "Errore bat egon da kontaktua gehitzerakoan",
+"element name is not set." => "elementuaren izena ez da ezarri.",
+"Could not parse contact: " => "Ezin izan da kontaktua analizatu:",
+"Cannot add empty property." => "Ezin da propieta hutsa gehitu.",
+"At least one of the address fields has to be filled out." => "Behintzat helbide eremuetako bat bete behar da.",
+"Trying to add duplicate property: " => "Propietate bikoiztuta gehitzen saiatzen ari zara:",
+"Error adding contact property: " => "Errore bat egon da kontaktuaren propietatea gehitzean:",
+"Information about vCard is incorrect. Please reload the page." => "vCard-aren inguruko informazioa okerra da. Mesedez birkargatu orrialdea.",
+"Error deleting contact property." => "Errorea kontaktu propietatea ezabatzean.",
"Missing ID" => "ID falta da",
-"Error adding addressbook." => "Errore bat egon da helbide liburua gehitzean.",
-"Error activating addressbook." => "Errore bat egon da helbide-liburua aktibatzen.",
+"Error parsing VCard for ID: \"" => "Errorea VCard analizatzean hurrengo IDrako: \"",
+"checksum is not set." => "Kontrol-batura ezarri gabe dago.",
+"Information about vCard is incorrect. Please reload the page: " => "vCard honen informazioa ez da zuzena.Mezedez birkargatu orria:",
+"Error updating contact property." => "Errorea kontaktu propietatea eguneratzean.",
+"No contact ID was submitted." => "Ez da kontaktuaren IDrik eman.",
"Error reading contact photo." => "Errore bat izan da kontaktuaren argazkia igotzerakoan.",
+"Error saving temporary file." => "Errore bat izan da aldi bateko fitxategia gordetzerakoan.",
"The loading photo is not valid." => "Kargatzen ari den argazkia ez da egokia.",
-"id is not set." => "IDa ez da ezarri.",
-"Information about vCard is incorrect. Please reload the page." => "vCard-aren inguruko informazioa okerra da. Mesedez birkargatu orrialdea.",
-"Error deleting contact property." => "Errorea kontaktu propietatea ezabatzean.",
"Contact ID is missing." => "Kontaktuaren IDa falta da.",
-"Missing contact id." => "Kontaktuaren IDa falta da.",
+"No photo path was submitted." => "Ez da argazkiaren bide-izenik eman.",
"File doesn't exist:" => "Fitxategia ez da existitzen:",
"Error loading image." => "Errore bat izan da irudia kargatzearkoan.",
-"element name is not set." => "elementuaren izena ez da ezarri.",
-"Error updating contact property." => "Errorea kontaktu propietatea eguneratzean.",
-"Cannot update addressbook with an empty name." => "Ezin da helbide liburua eguneratu izen huts batekin.",
-"Error updating addressbook." => "Errore bat egon da helbide liburua eguneratzen.",
+"Error getting contact object." => "Errore bat izan da kontaktu objetua lortzean.",
+"Error getting PHOTO property." => "Errore bat izan da PHOTO propietatea lortzean.",
+"Error saving contact." => "Errore bat izan da kontaktua gordetzean.",
+"Error resizing image" => "Errore bat izan da irudiaren tamaina aldatzean",
+"Error cropping image" => "Errore bat izan da irudia mozten",
+"Error creating temporary image" => "Errore bat izan da aldi bateko irudia sortzen",
+"Error finding image: " => "Ezin izan da irudia aurkitu:",
"Error uploading contacts to storage." => "Errore bat egon da kontaktuak biltegira igotzerakoan.",
"There is no error, the file uploaded with success" => "Ez da errorerik egon, fitxategia ongi igo da",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Igotako fitxategia php.ini fitxategiko upload_max_filesize direktiba baino handiagoa da",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Igotako fitxategia HTML formularioan zehaztutako MAX_FILE_SIZE direktiba baino handidagoa da.",
"The uploaded file was only partially uploaded" => "Igotako fitxategiaren zati bat bakarrik igo da",
"No file was uploaded" => "Ez da fitxategirik igo",
+"Missing a temporary folder" => "Aldi bateko karpeta falta da",
+"Couldn't save temporary image: " => "Ezin izan da aldi bateko irudia gorde:",
+"Couldn't load temporary image: " => "Ezin izan da aldi bateko irudia kargatu:",
+"No file was uploaded. Unknown error" => "Ez da fitxategirik igo. Errore ezezaguna",
"Contacts" => "Kontaktuak",
-"Drop a VCF file to import contacts." => "Askatu VCF fitxategia kontaktuak inportatzeko.",
-"Addressbook not found." => "Helbide liburua ez da aurkitu",
+"Sorry, this functionality has not been implemented yet" => "Barkatu, aukera hau ez da oriandik inplementatu",
+"Not implemented" => "Inplementatu gabe",
+"Couldn't get a valid address." => "Ezin izan da eposta baliagarri bat hartu.",
+"Error" => "Errorea",
+"This property has to be non-empty." => "Propietate hau ezin da hutsik egon.",
+"Couldn't serialize elements." => "Ezin izan dira elementuak serializatu.",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' argumenturik gabe deitu da. Mezedez abisatu bugs.owncloud.org-en",
+"Edit name" => "Editatu izena",
+"No files selected for upload." => "Ez duzu igotzeko fitxategirik hautatu.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Igo nahi duzun fitxategia zerbitzariak onartzen duen tamaina baino handiagoa da.",
+"Select type" => "Hautatu mota",
+"Result: " => "Emaitza:",
+" imported, " => " inportatua, ",
+" failed." => "huts egin du.",
"This is not your addressbook." => "Hau ez da zure helbide liburua.",
"Contact could not be found." => "Ezin izan da kontaktua aurkitu.",
"Address" => "Helbidea",
@@ -47,24 +78,46 @@
"Video" => "Bideoa",
"Pager" => "Bilagailua",
"Internet" => "Internet",
+"Birthday" => "Jaioteguna",
+"Call" => "Deia",
+"Clients" => "Bezeroak",
+"Holidays" => "Oporrak",
+"Ideas" => "Ideiak",
+"Journey" => "Bidaia",
+"Meeting" => "Bilera",
+"Other" => "Bestelakoa",
+"Personal" => "Pertsonala",
+"Projects" => "Proiektuak",
+"Questions" => "Galderak",
"{name}'s Birthday" => "{name}ren jaioteguna",
"Contact" => "Kontaktua",
"Add Contact" => "Gehitu kontaktua",
+"Import" => "Inportatu",
+"Settings" => "Ezarpenak",
"Addressbooks" => "Helbide Liburuak",
-"Configure Address Books" => "Konfiguratu Helbide Liburuak",
-"New Address Book" => "Helbide-liburu berria",
-"Import from VCF" => "VCFtik inportatu",
-"CardDav Link" => "CardDav lotura",
-"Download" => "Deskargatu",
-"Edit" => "Editatu",
-"Delete" => "Ezabatu",
-"Download contact" => "Deskargatu kontaktua",
-"Delete contact" => "Ezabatu kontaktua",
+"Close" => "Itxi",
+"Keyboard shortcuts" => "Teklatuaren lasterbideak",
+"Navigation" => "Nabigazioa",
+"Next contact in list" => "Hurrengoa kontaktua zerrendan",
+"Previous contact in list" => "Aurreko kontaktua zerrendan",
+"Expand/collapse current addressbook" => "Zabaldu/tolestu uneko helbide-liburua",
+"Actions" => "Ekintzak",
+"Refresh contacts list" => "Gaurkotu kontaktuen zerrenda",
+"Add new contact" => "Gehitu kontaktu berria",
+"Add new addressbook" => "Gehitu helbide-liburu berria",
+"Delete current contact" => "Ezabatu uneko kontaktuak",
"Drop photo to upload" => "Askatu argazkia igotzeko",
+"Delete current photo" => "Ezabatu oraingo argazkia",
+"Edit current photo" => "Editatu oraingo argazkia",
+"Upload new photo" => "Igo argazki berria",
+"Select photo from ownCloud" => "Hautatu argazki bat ownCloudetik",
"Edit name details" => "Editatu izenaren zehaztasunak",
+"Delete" => "Ezabatu",
"Nickname" => "Ezizena",
"Enter nickname" => "Sartu ezizena",
-"Birthday" => "Jaioteguna",
+"Web site" => "Web orria",
+"http://www.somesite.com" => "http://www.webgunea.com",
+"Go to web site" => "Web orrira joan",
"dd-mm-yyyy" => "yyyy-mm-dd",
"Groups" => "Taldeak",
"Separate groups with commas" => "Banatu taldeak komekin",
@@ -80,45 +133,42 @@
"Edit address details" => "Editatu helbidearen zehaztasunak",
"Add notes here." => "Gehitu oharrak hemen.",
"Add field" => "Gehitu eremua",
-"Profile picture" => "Profilaren irudia",
"Phone" => "Telefonoa",
"Note" => "Oharra",
-"Delete current photo" => "Ezabatu oraingo argazkia",
-"Edit current photo" => "Editatu oraingo argazkia",
-"Upload new photo" => "Igo argazki berria",
-"Select photo from ownCloud" => "Hautatu argazki bat ownCloudetik",
+"Download contact" => "Deskargatu kontaktua",
+"Delete contact" => "Ezabatu kontaktua",
+"The temporary image has been removed from cache." => "Aldi bateko irudia cachetik ezabatu da.",
"Edit address" => "Editatu helbidea",
"Type" => "Mota",
"PO Box" => "Posta kutxa",
+"Street address" => "Kalearen helbidea",
+"Street and number" => "Kalea eta zenbakia",
"Extended" => "Hedatua",
-"Street" => "Kalea",
+"Apartment number etc." => "Etxe zenbakia eab.",
"City" => "Hiria",
"Region" => "Eskualdea",
"Zipcode" => "Posta kodea",
+"Postal code" => "Posta kodea",
"Country" => "Herrialdea",
-"Edit categories" => "Editatu kategoriak",
-"Add" => "Gehitu",
"Addressbook" => "Helbide-liburua",
-"New Addressbook" => "Helbide-liburu berria",
-"Edit Addressbook" => "Editatu helbide-liburua",
-"Displayname" => "Bistaratzeko izena",
-"Active" => "Aktibo",
-"Save" => "Gorde",
-"Submit" => "Bidali",
-"Cancel" => "Ezeztatu",
"Import a contacts file" => "Inporatu kontaktuen fitxategia",
"Please choose the addressbook" => "Mesedez, aukeratu helbide liburua",
"create a new addressbook" => "sortu helbide liburu berria",
"Name of new addressbook" => "Helbide liburuaren izena",
-"Import" => "Inportatu",
"Importing contacts" => "Kontaktuak inportatzen",
-"Select address book to import to:" => "Hautau helburuko helbide liburua:",
-"Select from HD" => "Hautatu disko gogorretik",
"You have no contacts in your addressbook." => "Ez duzu kontakturik zure helbide liburuan.",
"Add contact" => "Gehitu kontaktua",
"Configure addressbooks" => "Konfiguratu helbide liburuak",
+"Select Address Books" => "Hautatu helbide-liburuak",
+"Enter name" => "Sartu izena",
+"Enter description" => "Sartu deskribapena",
"CardDAV syncing addresses" => "CardDAV sinkronizazio helbideak",
"more info" => "informazio gehiago",
"Primary address (Kontact et al)" => "Helbide nagusia",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Deskargatu",
+"Edit" => "Editatu",
+"New Address Book" => "Helbide-liburu berria",
+"Save" => "Gorde",
+"Cancel" => "Ezeztatu"
);
diff --git a/apps/contacts/l10n/fa.php b/apps/contacts/l10n/fa.php
index 9278975c407..c9599798578 100644
--- a/apps/contacts/l10n/fa.php
+++ b/apps/contacts/l10n/fa.php
@@ -1,39 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "خطا در (غیر) فعال سازی کتابچه نشانه ها",
-"There was an error adding the contact." => "یک خطا در افزودن اطلاعات شخص مورد نظر",
-"Cannot add empty property." => "نمیتوان یک خاصیت خالی ایجاد کرد",
-"At least one of the address fields has to be filled out." => "At least one of the address fields has to be filled out. ",
-"Trying to add duplicate property: " => "امتحان کردن برای وارد کردن مشخصات تکراری",
-"Error adding contact property." => "خطا درهنگام افزودن ویژگی",
+"id is not set." => "شناسه تعیین نشده",
+"Cannot update addressbook with an empty name." => "نمی توانید کتابچه نشانی ها را با یک نام خالی بروزرسانی کنید",
+"Error updating addressbook." => "خطا در هنگام بروزرسانی کتابچه نشانی ها",
"No ID provided" => "هیچ شناسه ای ارائه نشده",
"Error setting checksum." => "خطا در تنظیم checksum",
"No categories selected for deletion." => "هیچ گروهی برای حذف شدن در نظر گرفته نشده",
"No address books found." => "هیچ کتابچه نشانی پیدا نشد",
"No contacts found." => "هیچ شخصی پیدا نشد",
+"There was an error adding the contact." => "یک خطا در افزودن اطلاعات شخص مورد نظر",
+"element name is not set." => "نام اصلی تنظیم نشده است",
+"Cannot add empty property." => "نمیتوان یک خاصیت خالی ایجاد کرد",
+"At least one of the address fields has to be filled out." => "At least one of the address fields has to be filled out. ",
+"Trying to add duplicate property: " => "امتحان کردن برای وارد کردن مشخصات تکراری",
+"Information about vCard is incorrect. Please reload the page." => "اطلاعات درمورد vCard شما اشتباه است لطفا صفحه را دوباره بار گذاری کنید",
+"Error deleting contact property." => "خطا در هنگام پاک کرد ویژگی",
"Missing ID" => "نشانی گم شده",
"Error parsing VCard for ID: \"" => "خطا در تجزیه کارت ویزا برای شناسه:",
-"Cannot add addressbook with an empty name." => "نمیتوانید یک نام خالی را به کتابچه نشانی ها افزود",
-"Error adding addressbook." => "خطا درهنگام افزودن کتابچه نشانی ها",
-"Error activating addressbook." => "خطا درهنگام فعال سازیکتابچه نشانی ها",
+"checksum is not set." => "checksum تنظیم شده نیست",
+"Information about vCard is incorrect. Please reload the page: " => "اطلاعات کارت ویزا شما غلط است لطفا صفحه را دوباره بارگزاری کنید",
+"Something went FUBAR. " => "چند چیز به FUBAR رفتند",
+"Error updating contact property." => "خطا در هنگام بروزرسانی اطلاعات شخص مورد نظر",
"No contact ID was submitted." => "هیچ اطلاعاتی راجع به شناسه ارسال نشده",
"Error reading contact photo." => "خطا در خواندن اطلاعات تصویر",
"Error saving temporary file." => "خطا در ذخیره پرونده موقت",
"The loading photo is not valid." => "بارگزاری تصویر امکان پذیر نیست",
-"id is not set." => "شناسه تعیین نشده",
-"Information about vCard is incorrect. Please reload the page." => "اطلاعات درمورد vCard شما اشتباه است لطفا صفحه را دوباره بار گذاری کنید",
-"Error deleting contact property." => "خطا در هنگام پاک کرد ویژگی",
"Contact ID is missing." => "اطلاعات شناسه گم شده",
-"Missing contact id." => "شما اطلاعات شناسه را فراموش کرده اید",
"No photo path was submitted." => "هیچ نشانی از تصویرارسال نشده",
"File doesn't exist:" => "پرونده وجود ندارد",
"Error loading image." => "خطا در بارگزاری تصویر",
-"element name is not set." => "نام اصلی تنظیم نشده است",
-"checksum is not set." => "checksum تنظیم شده نیست",
-"Information about vCard is incorrect. Please reload the page: " => "اطلاعات کارت ویزا شما غلط است لطفا صفحه را دوباره بارگزاری کنید",
-"Something went FUBAR. " => "چند چیز به FUBAR رفتند",
-"Error updating contact property." => "خطا در هنگام بروزرسانی اطلاعات شخص مورد نظر",
-"Cannot update addressbook with an empty name." => "نمی توانید کتابچه نشانی ها را با یک نام خالی بروزرسانی کنید",
-"Error updating addressbook." => "خطا در هنگام بروزرسانی کتابچه نشانی ها",
+"Error getting contact object." => "خطا در گرفتن اطلاعات شخص",
+"Error getting PHOTO property." => "خطا در دربافت تصویر ویژگی شخصی",
+"Error saving contact." => "خطا در ذخیره سازی اطلاعات",
+"Error resizing image" => "خطا در تغییر دادن اندازه تصویر",
+"Error cropping image" => "خطا در برداشت تصویر",
+"Error creating temporary image" => "خطا در ساخت تصویر temporary",
+"Error finding image: " => "خطا در پیدا کردن تصویر:",
"Error uploading contacts to storage." => "خطا در هنگام بارگذاری و ذخیره سازی",
"There is no error, the file uploaded with success" => "هیچ خطایی نیست بارگذاری پرونده موفقیت آمیز بود",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "حجم آپلود از طریق Php.ini تعیین می شود",
@@ -41,9 +43,24 @@
"The uploaded file was only partially uploaded" => "پرونده بارگذاری شده فقط تاحدودی بارگذاری شده",
"No file was uploaded" => "هیچ پروندهای بارگذاری نشده",
"Missing a temporary folder" => "یک پوشه موقت گم شده",
+"Couldn't save temporary image: " => "قابلیت ذخیره تصویر موقت وجود ندارد:",
+"Couldn't load temporary image: " => "قابلیت بارگذاری تصویر موقت وجود ندارد:",
+"No file was uploaded. Unknown error" => "هیچ فایلی آپلود نشد.خطای ناشناس",
"Contacts" => "اشخاص",
-"Drop a VCF file to import contacts." => "یک پرونده VCF را به اینجا بکشید تا اشخاص افزوده شوند",
-"Addressbook not found." => "کتابچه نشانی ها یافت نشد",
+"Sorry, this functionality has not been implemented yet" => "با عرض پوزش،این قابلیت هنوز اجرا نشده است",
+"Not implemented" => "انجام نشد",
+"Couldn't get a valid address." => "Couldn't get a valid address.",
+"Error" => "خطا",
+"This property has to be non-empty." => "این ویژگی باید به صورت غیر تهی عمل کند",
+"Couldn't serialize elements." => "قابلیت مرتب سازی عناصر وجود ندارد",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "پاک کردن ویژگی بدون استدلال انجام شده.لطفا این مورد را گزارش دهید:bugs.owncloud.org",
+"Edit name" => "نام تغییر",
+"No files selected for upload." => "هیچ فایلی برای آپلود انتخاب نشده است",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "حجم فایل بسیار بیشتر از حجم تنظیم شده در تنظیمات سرور است",
+"Select type" => "نوع را انتخاب کنید",
+"Result: " => "نتیجه:",
+" imported, " => "وارد شد،",
+" failed." => "ناموفق",
"This is not your addressbook." => "این کتابچه ی نشانه های شما نیست",
"Contact could not be found." => "اتصال ویا تماسی یافت نشد",
"Address" => "نشانی",
@@ -60,25 +77,23 @@
"Video" => "رسانه تصویری",
"Pager" => "صفحه",
"Internet" => "اینترنت",
+"Birthday" => "روزتولد",
"{name}'s Birthday" => "روز تولد {name} است",
"Contact" => "اشخاص",
"Add Contact" => "افزودن اطلاعات شخص مورد نظر",
+"Import" => "وارد کردن",
"Addressbooks" => "کتابچه ی نشانی ها",
-"Configure Address Books" => "پیکر بندی کتابچه نشانی ها",
-"New Address Book" => "کتابچه نشانه های جدید",
-"Import from VCF" => "وارد شده از VCF",
-"CardDav Link" => "CardDav Link",
-"Download" => "بارگیری",
-"Edit" => "ویرایش",
-"Delete" => "پاک کردن",
-"Download contact" => "دانلود مشخصات اشخاص",
-"Delete contact" => "پاک کردن اطلاعات شخص مورد نظر",
+"Close" => "بستن",
"Drop photo to upload" => "تصویر را به اینجا بکشید تا بار گذازی شود",
+"Delete current photo" => "پاک کردن تصویر کنونی",
+"Edit current photo" => "ویرایش تصویر کنونی",
+"Upload new photo" => "بار گذاری یک تصویر جدید",
+"Select photo from ownCloud" => "انتخاب یک تصویر از ابر های شما",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Format custom, Short name, Full name, Reverse or Reverse with comma",
"Edit name details" => "ویرایش نام جزئیات",
+"Delete" => "پاک کردن",
"Nickname" => "نام مستعار",
"Enter nickname" => "یک نام مستعار وارد کنید",
-"Birthday" => "روزتولد",
"dd-mm-yyyy" => "dd-mm-yyyy",
"Groups" => "گروه ها",
"Separate groups with commas" => "جدا کردن گروه ها به وسیله درنگ نما",
@@ -94,24 +109,19 @@
"Edit address details" => "ویرایش جزئیات نشانی ها",
"Add notes here." => "اینجا یادداشت ها را بیافزایید",
"Add field" => "اضافه کردن فیلد",
-"Profile picture" => "تصویر پروفایل",
"Phone" => "شماره تلفن",
"Note" => "یادداشت",
-"Delete current photo" => "پاک کردن تصویر کنونی",
-"Edit current photo" => "ویرایش تصویر کنونی",
-"Upload new photo" => "بار گذاری یک تصویر جدید",
-"Select photo from ownCloud" => "انتخاب یک تصویر از ابر های شما",
+"Download contact" => "دانلود مشخصات اشخاص",
+"Delete contact" => "پاک کردن اطلاعات شخص مورد نظر",
+"The temporary image has been removed from cache." => "تصویر موقت از کش پاک شد.",
"Edit address" => "ویرایش نشانی",
"Type" => "نوع",
"PO Box" => "صندوق پستی",
"Extended" => "تمدید شده",
-"Street" => "خیابان",
"City" => "شهر",
"Region" => "ناحیه",
"Zipcode" => "کد پستی",
"Country" => "کشور",
-"Edit categories" => "ویرایش گروه",
-"Add" => "افزودن",
"Addressbook" => "کتابچه ی نشانی ها",
"Hon. prefixes" => "پیشوند های محترمانه",
"Miss" => "خانم",
@@ -132,26 +142,21 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "کتابچه نشانی جدید",
-"Edit Addressbook" => "ویرایش کتابچه نشانی",
-"Displayname" => "نام برای نمایش",
-"Active" => "فعال",
-"Save" => "ذخیره سازی",
-"Submit" => "ارسال",
-"Cancel" => "انصراف",
"Import a contacts file" => "وارد کردن پرونده حاوی اطلاعات",
"Please choose the addressbook" => "لطفا یک کتابچه نشانی انتخاب کنید",
"create a new addressbook" => "یک کتابچه نشانی بسازید",
"Name of new addressbook" => "نام کتابچه نشانی جدید",
-"Import" => "وارد کردن",
"Importing contacts" => "وارد کردن اشخاص",
-"Select address book to import to:" => "یک کتابچه نشانی انتخاب کنید تا وارد شود",
-"Select from HD" => "انتخاب از دیسک سخت",
"You have no contacts in your addressbook." => "شماهیچ شخصی در کتابچه نشانی خود ندارید",
"Add contact" => "افزودن اطلاعات شخص مورد نظر",
"Configure addressbooks" => "پیکربندی کتابچه ی نشانی ها",
"CardDAV syncing addresses" => "CardDAV syncing addresses ",
"more info" => "اطلاعات بیشتر",
"Primary address (Kontact et al)" => "نشانی اولیه",
-"iOS/OS X" => "iOS/OS X "
+"iOS/OS X" => "iOS/OS X ",
+"Download" => "بارگیری",
+"Edit" => "ویرایش",
+"New Address Book" => "کتابچه نشانه های جدید",
+"Save" => "ذخیره سازی",
+"Cancel" => "انصراف"
);
diff --git a/apps/contacts/l10n/fi_FI.php b/apps/contacts/l10n/fi_FI.php
index 5c9a81eba08..6aab4ed3472 100644
--- a/apps/contacts/l10n/fi_FI.php
+++ b/apps/contacts/l10n/fi_FI.php
@@ -1,22 +1,22 @@
<?php $TRANSLATIONS = array(
-"There was an error adding the contact." => "Virhe yhteystietoa lisättäessä.",
-"Cannot add empty property." => "Tyhjää ominaisuutta ei voi lisätä.",
-"At least one of the address fields has to be filled out." => "Vähintään yksi osoitekenttä tulee täyttää.",
+"Error updating addressbook." => "Virhe päivitettäessä osoitekirjaa.",
"No categories selected for deletion." => "Luokkia ei ole valittu poistettavaksi.",
"No address books found." => "Osoitekirjoja ei löytynyt.",
"No contacts found." => "Yhteystietoja ei löytynyt.",
-"Error parsing VCard for ID: \"" => "Virhe jäsennettäessä vCardia tunnisteelle: \"",
-"Error saving temporary file." => "Virhe tallennettaessa tilapäistiedostoa.",
+"There was an error adding the contact." => "Virhe yhteystietoa lisättäessä.",
+"Cannot add empty property." => "Tyhjää ominaisuutta ei voi lisätä.",
+"At least one of the address fields has to be filled out." => "Vähintään yksi osoitekenttä tulee täyttää.",
"Information about vCard is incorrect. Please reload the page." => "vCardin tiedot eivät kelpaa. Lataa sivu uudelleen.",
"Error deleting contact property." => "Virhe poistettaessa yhteystiedon ominaisuutta.",
+"Error parsing VCard for ID: \"" => "Virhe jäsennettäessä vCardia tunnisteelle: \"",
+"Error updating contact property." => "Virhe päivitettäessä yhteystiedon ominaisuutta.",
+"Error saving temporary file." => "Virhe tallennettaessa tilapäistiedostoa.",
"File doesn't exist:" => "Tiedostoa ei ole olemassa:",
"Error loading image." => "Virhe kuvaa ladatessa.",
"Error saving contact." => "Virhe yhteystietoa tallennettaessa.",
"Error resizing image" => "Virhe asettaessa kuvaa uuteen kokoon",
"Error cropping image" => "Virhe rajatessa kuvaa",
"Error creating temporary image" => "Virhe luotaessa väliaikaista kuvaa",
-"Error updating contact property." => "Virhe päivitettäessä yhteystiedon ominaisuutta.",
-"Error updating addressbook." => "Virhe päivitettäessä osoitekirjaa.",
"There is no error, the file uploaded with success" => "Ei virhettä, tiedosto lähetettiin onnistuneesti",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Lähetetyn tiedoston koko ylittää upload_max_filesize-asetuksen arvon php.ini-tiedostossa",
"The uploaded file was only partially uploaded" => "Lähetetty tiedosto lähetettiin vain osittain",
@@ -25,15 +25,12 @@
"No file was uploaded. Unknown error" => "Tiedostoa ei lähetetty. Tuntematon virhe",
"Contacts" => "Yhteystiedot",
"Error" => "Virhe",
-"Contact" => "Yhteystieto",
-"New" => "Uusi",
-"New Contact" => "Uusi yhteystieto",
"Edit name" => "Muokkaa nimeä",
"No files selected for upload." => "Tiedostoja ei ole valittu lähetettäväksi.",
"Result: " => "Tulos: ",
" imported, " => " tuotu, ",
" failed." => " epäonnistui.",
-"Addressbook not found." => "Osoitekirjaa ei löytynyt.",
+"Addressbook not found: " => "Osoitekirjaa ei löytynyt:",
"This is not your addressbook." => "Tämä ei ole osoitekirjasi.",
"Contact could not be found." => "Yhteystietoa ei löytynyt.",
"Address" => "Osoite",
@@ -55,26 +52,26 @@
"Other" => "Muu",
"Questions" => "Kysymykset",
"{name}'s Birthday" => "Henkilön {name} syntymäpäivä",
+"Contact" => "Yhteystieto",
"Add Contact" => "Lisää yhteystieto",
"Import" => "Tuo",
+"Settings" => "Asetukset",
"Addressbooks" => "Osoitekirjat",
"Close" => "Sulje",
+"Keyboard shortcuts" => "Pikanäppäimet",
+"Next contact in list" => "Seuraava yhteystieto luettelossa",
+"Previous contact in list" => "Edellinen yhteystieto luettelossa",
"Actions" => "Toiminnot",
"Refresh contacts list" => "Päivitä yhteystietoluettelo",
"Add new contact" => "Lisää uusi yhteystieto",
"Add new addressbook" => "Lisää uusi osoitekirja",
"Delete current contact" => "Poista nykyinen yhteystieto",
-"Configure Address Books" => "Muokkaa osoitekirjoja",
-"New Address Book" => "Uusi osoitekirja",
-"CardDav Link" => "CardDav-linkki",
-"Download" => "Lataa",
-"Edit" => "Muokkaa",
-"Delete" => "Poista",
"Delete current photo" => "Poista nykyinen valokuva",
"Edit current photo" => "Muokkaa nykyistä valokuvaa",
"Upload new photo" => "Lähetä uusi valokuva",
"Select photo from ownCloud" => "Valitse valokuva ownCloudista",
"Edit name details" => "Muokkaa nimitietoja",
+"Delete" => "Poista",
"Nickname" => "Kutsumanimi",
"Enter nickname" => "Anna kutsumanimi",
"Web site" => "Verkkosivu",
@@ -83,6 +80,7 @@
"Groups" => "Ryhmät",
"Separate groups with commas" => "Erota ryhmät pilkuilla",
"Edit groups" => "Muokkaa ryhmiä",
+"Preferred" => "Ensisijainen",
"Please specify a valid email address." => "Anna kelvollinen sähköpostiosoite.",
"Enter email address" => "Anna sähköpostiosoite",
"Delete email address" => "Poista sähköpostiosoite",
@@ -113,12 +111,6 @@
"Given name" => "Etunimi",
"Additional names" => "Lisänimet",
"Family name" => "Sukunimi",
-"New Addressbook" => "Uusi osoitekirja",
-"Edit Addressbook" => "Muokkaa osoitekirjaa",
-"Active" => "Aktiivinen",
-"Save" => "Tallenna",
-"Submit" => "Lähetä",
-"Cancel" => "Peru",
"Import a contacts file" => "Tuo yhteystiedon sisältävä tiedosto",
"Please choose the addressbook" => "Valitse osoitekirja",
"create a new addressbook" => "luo uusi osoitekirja",
@@ -131,5 +123,15 @@
"Enter name" => "Anna nimi",
"Enter description" => "Anna kuvaus",
"CardDAV syncing addresses" => "CardDAV-synkronointiosoitteet",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Show CardDav link" => "Näytä CardDav-linkki",
+"Show read-only VCF link" => "Näytä vain luku -muodossa oleva VCF-linkki",
+"Download" => "Lataa",
+"Edit" => "Muokkaa",
+"New Address Book" => "Uusi osoitekirja",
+"Name" => "Nimi",
+"Description" => "Kuvaus",
+"Save" => "Tallenna",
+"Cancel" => "Peru",
+"More..." => "Lisää..."
);
diff --git a/apps/contacts/l10n/fr.php b/apps/contacts/l10n/fr.php
index dd59a68aaf2..88521f84e88 100644
--- a/apps/contacts/l10n/fr.php
+++ b/apps/contacts/l10n/fr.php
@@ -1,26 +1,32 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Des erreurs se sont produites lors de l'activation/désactivation du carnet d'adresses.",
+"id is not set." => "L'ID n'est pas défini.",
+"Cannot update addressbook with an empty name." => "Impossible de mettre à jour le carnet d'adresses avec un nom vide.",
+"Error updating addressbook." => "Erreur lors de la mise à jour du carnet d'adresses.",
+"No ID provided" => "Aucun ID fourni",
+"Error setting checksum." => "Erreur lors du paramétrage du hachage.",
+"No categories selected for deletion." => "Pas de catégories sélectionnées pour la suppression.",
+"No address books found." => "Pas de carnet d'adresses trouvé.",
+"No contacts found." => "Aucun contact trouvé.",
"There was an error adding the contact." => "Une erreur s'est produite lors de l'ajout du contact.",
"element name is not set." => "Le champ Nom n'est pas défini.",
-"id is not set." => "L'ID n'est pas défini.",
"Could not parse contact: " => "Impossible de lire le contact :",
"Cannot add empty property." => "Impossible d'ajouter un champ vide.",
"At least one of the address fields has to be filled out." => "Au moins un des champs d'adresses doit être complété.",
"Trying to add duplicate property: " => "Ajout d'une propriété en double:",
"Error adding contact property: " => "Erreur pendant l'ajout de la propriété du contact :",
-"No ID provided" => "Aucun ID fourni",
-"Error setting checksum." => "Erreur lors du paramétrage du hachage.",
-"No categories selected for deletion." => "Pas de catégories sélectionnées pour la suppression.",
-"No address books found." => "Pas de carnet d'adresses trouvé.",
-"No contacts found." => "Aucun contact trouvé.",
+"Information about vCard is incorrect. Please reload the page." => "Les informations relatives à cette vCard sont incorrectes. Veuillez recharger la page.",
+"Error deleting contact property." => "Erreur lors de la suppression du champ.",
"Missing ID" => "ID manquant",
"Error parsing VCard for ID: \"" => "Erreur lors de l'analyse du VCard pour l'ID: \"",
+"checksum is not set." => "L'hachage n'est pas défini.",
+"Information about vCard is incorrect. Please reload the page: " => "L'informatiion à propos de la vCard est incorrect. Merci de rafraichir la page:",
+"Something went FUBAR. " => "Quelque chose est FUBAR.",
+"Error updating contact property." => "Erreur lors de la mise à jour du champ.",
"No contact ID was submitted." => "Aucun ID de contact envoyé",
"Error reading contact photo." => "Erreur de lecture de la photo du contact.",
"Error saving temporary file." => "Erreur de sauvegarde du fichier temporaire.",
"The loading photo is not valid." => "La photo chargée est invalide.",
-"Information about vCard is incorrect. Please reload the page." => "Les informations relatives à cette vCard sont incorrectes. Veuillez recharger la page.",
-"Error deleting contact property." => "Erreur lors de la suppression du champ.",
"Contact ID is missing." => "L'ID du contact est manquant.",
"No photo path was submitted." => "Le chemin de la photo n'a pas été envoyé.",
"File doesn't exist:" => "Fichier inexistant:",
@@ -32,12 +38,6 @@
"Error cropping image" => "Erreur lors du rognage de l'image",
"Error creating temporary image" => "Erreur de création de l'image temporaire",
"Error finding image: " => "Erreur pour trouver l'image :",
-"checksum is not set." => "L'hachage n'est pas défini.",
-"Information about vCard is incorrect. Please reload the page: " => "L'informatiion à propos de la vCard est incorrect. Merci de rafraichir la page:",
-"Something went FUBAR. " => "Quelque chose est FUBAR.",
-"Error updating contact property." => "Erreur lors de la mise à jour du champ.",
-"Cannot update addressbook with an empty name." => "Impossible de mettre à jour le carnet d'adresses avec un nom vide.",
-"Error updating addressbook." => "Erreur lors de la mise à jour du carnet d'adresses.",
"Error uploading contacts to storage." => "Erreur lors de l'envoi des contacts vers le stockage.",
"There is no error, the file uploaded with success" => "Il n'y a pas d'erreur, le fichier a été envoyé avec succes.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Le fichier envoyé dépasse la directive upload_max_filesize dans php.ini",
@@ -53,9 +53,6 @@
"Not implemented" => "Pas encore implémenté",
"Couldn't get a valid address." => "Impossible de trouver une adresse valide.",
"Error" => "Erreur",
-"Contact" => "Contact",
-"New" => "Nouveau",
-"New Contact" => "Nouveau Contact",
"This property has to be non-empty." => "Cette valeur ne doit pas être vide",
"Couldn't serialize elements." => "Impossible de sérialiser les éléments",
"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' a été appelé sans type d'arguments. Merci de rapporter un bug à bugs.owncloud.org",
@@ -66,7 +63,6 @@
"Result: " => "Résultat :",
" imported, " => "importé,",
" failed." => "échoué.",
-"Addressbook not found." => "Carnet d'adresses introuvable.",
"This is not your addressbook." => "Ce n'est pas votre carnet d'adresses.",
"Contact could not be found." => "Ce contact n'a pu être trouvé.",
"Address" => "Adresse",
@@ -98,6 +94,7 @@
"Projects" => "Projets",
"Questions" => "Questions",
"{name}'s Birthday" => "Anniversaire de {name}",
+"Contact" => "Contact",
"Add Contact" => "Ajouter un Contact",
"Import" => "Importer",
"Addressbooks" => "Carnets d'adresses",
@@ -107,18 +104,11 @@
"Next contact in list" => "Contact suivant dans la liste",
"Previous contact in list" => "Contact précédent dans la liste",
"Expand/collapse current addressbook" => "Dé/Replier le carnet d'adresses courant",
-"Next/previous addressbook" => "Passer au carnet d'adresses suivant/précédent",
"Actions" => "Actions",
"Refresh contacts list" => "Actualiser la liste des contacts",
"Add new contact" => "Ajouter un nouveau contact",
"Add new addressbook" => "Ajouter un nouveau carnet d'adresses",
"Delete current contact" => "Effacer le contact sélectionné",
-"Configure Address Books" => "Paramétrer carnet d'adresses",
-"New Address Book" => "Nouveau Carnet d'adresses",
-"CardDav Link" => "Lien CardDav",
-"Download" => "Télécharger",
-"Edit" => "Modifier",
-"Delete" => "Supprimer",
"Drop photo to upload" => "Glisser une photo pour l'envoi",
"Delete current photo" => "Supprimer la photo actuelle",
"Edit current photo" => "Editer la photo actuelle",
@@ -126,6 +116,7 @@
"Select photo from ownCloud" => "Sélectionner une photo depuis ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formatage personnalisé, Nom court, Nom complet, Inversé, Inversé avec virgule",
"Edit name details" => "Editer les noms",
+"Delete" => "Supprimer",
"Nickname" => "Surnom",
"Enter nickname" => "Entrer un surnom",
"Web site" => "Page web",
@@ -184,13 +175,6 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "Nouveau carnet d'adresses",
-"Edit Addressbook" => "Éditer le carnet d'adresses",
-"Displayname" => "Nom",
-"Active" => "Carnet actif",
-"Save" => "Sauvegarder",
-"Submit" => "Envoyer",
-"Cancel" => "Annuler",
"Import a contacts file" => "Importer un fichier de contacts",
"Please choose the addressbook" => "Choisissez le carnet d'adresses SVP",
"create a new addressbook" => "Créer un nouveau carnet d'adresses",
@@ -206,5 +190,9 @@
"more info" => "Plus d'infos",
"Primary address (Kontact et al)" => "Adresse principale",
"iOS/OS X" => "iOS/OS X",
-"Read only vCard directory link(s)" => "Lien(s) vers le répertoire de vCards en lecture seule"
+"Download" => "Télécharger",
+"Edit" => "Modifier",
+"New Address Book" => "Nouveau Carnet d'adresses",
+"Save" => "Sauvegarder",
+"Cancel" => "Annuler"
);
diff --git a/apps/contacts/l10n/gl.php b/apps/contacts/l10n/gl.php
index bc3ec7449c9..1b456fba01b 100644
--- a/apps/contacts/l10n/gl.php
+++ b/apps/contacts/l10n/gl.php
@@ -1,16 +1,65 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Produciuse un erro (des)activando a axenda.",
+"id is not set." => "non se estableceu o id.",
+"Cannot update addressbook with an empty name." => "Non se pode actualizar a libreta de enderezos sen completar o nome.",
+"Error updating addressbook." => "Produciuse un erro actualizando a axenda.",
+"No ID provided" => "Non se proveeu ID",
+"Error setting checksum." => "Erro establecendo a suma de verificación",
+"No categories selected for deletion." => "Non se seleccionaron categorías para borrado.",
+"No address books found." => "Non se atoparon libretas de enderezos.",
+"No contacts found." => "Non se atoparon contactos.",
"There was an error adding the contact." => "Produciuse un erro engadindo o contacto.",
+"element name is not set." => "non se nomeou o elemento.",
"Cannot add empty property." => "Non se pode engadir unha propiedade baleira.",
"At least one of the address fields has to be filled out." => "Polo menos un dos campos do enderezo ten que ser cuberto.",
-"Error adding contact property." => "Produciuse un erro engadindo unha propiedade do contacto.",
-"Error adding addressbook." => "Produciuse un erro engadindo a axenda.",
-"Error activating addressbook." => "Produciuse un erro activando a axenda.",
+"Trying to add duplicate property: " => "Tentando engadir propiedade duplicada: ",
"Information about vCard is incorrect. Please reload the page." => "A información sobre a vCard é incorrecta. Por favor volva cargar a páxina.",
"Error deleting contact property." => "Produciuse un erro borrando a propiedade do contacto.",
+"Missing ID" => "ID perdido",
+"Error parsing VCard for ID: \"" => "Erro procesando a VCard para o ID: \"",
+"checksum is not set." => "non se estableceu a suma de verificación.",
+"Information about vCard is incorrect. Please reload the page: " => "A información sobre a vCard é incorrecta. Por favor, recargue a páxina: ",
"Error updating contact property." => "Produciuse un erro actualizando a propiedade do contacto.",
-"Error updating addressbook." => "Produciuse un erro actualizando a axenda.",
+"No contact ID was submitted." => "Non se enviou ningún ID de contacto.",
+"Error reading contact photo." => "Erro lendo a fotografía do contacto.",
+"Error saving temporary file." => "Erro gardando o ficheiro temporal.",
+"The loading photo is not valid." => "A fotografía cargada non é válida.",
+"Contact ID is missing." => "Falta o ID do contacto.",
+"No photo path was submitted." => "Non se enviou a ruta a unha foto.",
+"File doesn't exist:" => "O ficheiro non existe:",
+"Error loading image." => "Erro cargando imaxe.",
+"Error getting contact object." => "Erro obtendo o obxeto contacto.",
+"Error getting PHOTO property." => "Erro obtendo a propiedade PHOTO.",
+"Error saving contact." => "Erro gardando o contacto.",
+"Error resizing image" => "Erro cambiando o tamaño da imaxe",
+"Error cropping image" => "Erro recortando a imaxe",
+"Error creating temporary image" => "Erro creando a imaxe temporal",
+"Error finding image: " => "Erro buscando a imaxe: ",
+"Error uploading contacts to storage." => "Erro subindo os contactos ao almacén.",
+"There is no error, the file uploaded with success" => "Non houbo erros, o ficheiro subeuse con éxito",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "O ficheiro subido supera a directiva upload_max_filesize no php.ini",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O ficheiro subido supera a directiva MAX_FILE_SIZE especificada no formulario HTML",
+"The uploaded file was only partially uploaded" => "O ficheiro so foi parcialmente subido",
+"No file was uploaded" => "Non se subeu ningún ficheiro",
+"Missing a temporary folder" => "Falta o cartafol temporal",
+"Couldn't save temporary image: " => "Non se puido gardar a imaxe temporal: ",
+"Couldn't load temporary image: " => "Non se puido cargar a imaxe temporal: ",
+"No file was uploaded. Unknown error" => "Non se subeu ningún ficheiro. Erro descoñecido.",
"Contacts" => "Contactos",
+"Sorry, this functionality has not been implemented yet" => "Sentímolo, esta función aínda non foi implementada.",
+"Not implemented" => "Non implementada.",
+"Couldn't get a valid address." => "Non se puido obter un enderezo de correo válido.",
+"Error" => "Erro",
+"This property has to be non-empty." => "Esta propiedade non pode quedar baldeira.",
+"Couldn't serialize elements." => "Non se puido serializar os elementos.",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' chamado sen argumento. Por favor, informe en bugs.owncloud.org",
+"Edit name" => "Editar nome",
+"No files selected for upload." => "Sen ficheiros escollidos para subir.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "O ficheiro que tenta subir supera o tamaño máximo permitido neste servidor.",
+"Select type" => "Seleccione tipo",
+"Result: " => "Resultado: ",
+" imported, " => " importado, ",
+" failed." => " fallou.",
"This is not your addressbook." => "Esta non é a súa axenda.",
"Contact could not be found." => "Non se atopou o contacto.",
"Address" => "Enderezo",
@@ -22,37 +71,91 @@
"Mobile" => "Móbil",
"Text" => "Texto",
"Voice" => "Voz",
+"Message" => "Mensaxe",
"Fax" => "Fax",
"Video" => "Vídeo",
"Pager" => "Paxinador",
+"Internet" => "Internet",
+"Birthday" => "Aniversario",
+"{name}'s Birthday" => "Cumpleanos de {name}",
"Contact" => "Contacto",
"Add Contact" => "Engadir contacto",
+"Import" => "Importar",
"Addressbooks" => "Axendas",
-"New Address Book" => "Nova axenda",
-"CardDav Link" => "Ligazón CardDav",
-"Download" => "Descargar",
-"Edit" => "Editar",
+"Close" => "Pechar",
+"Drop photo to upload" => "Solte a foto a subir",
+"Delete current photo" => "Borrar foto actual",
+"Edit current photo" => "Editar a foto actual",
+"Upload new photo" => "Subir unha nova foto",
+"Select photo from ownCloud" => "Escoller foto desde ownCloud",
+"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formato personalizado, Nome corto, Nome completo, Inverso ou Inverso con coma",
+"Edit name details" => "Editar detalles do nome",
"Delete" => "Eliminar",
-"Download contact" => "Descargar contacto",
-"Delete contact" => "Borrar contacto",
-"Birthday" => "Aniversario",
+"Nickname" => "Apodo",
+"Enter nickname" => "Introuza apodo",
+"dd-mm-yyyy" => "dd-mm-yyyy",
+"Groups" => "Grupos",
+"Separate groups with commas" => "Separe grupos con comas",
+"Edit groups" => "Editar grupos",
"Preferred" => "Preferido",
+"Please specify a valid email address." => "Por favor indique un enderezo de correo electrónico válido.",
+"Enter email address" => "Introduza enderezo de correo electrónico",
+"Mail to address" => "Correo ao enderezo",
+"Delete email address" => "Borrar enderezo de correo electrónico",
+"Enter phone number" => "Introducir número de teléfono",
+"Delete phone number" => "Borrar número de teléfono",
+"View on map" => "Ver no mapa",
+"Edit address details" => "Editar detalles do enderezo",
+"Add notes here." => "Engadir aquí as notas.",
+"Add field" => "Engadir campo",
"Phone" => "Teléfono",
+"Note" => "Nota",
+"Download contact" => "Descargar contacto",
+"Delete contact" => "Borrar contacto",
+"The temporary image has been removed from cache." => "A imaxe temporal foi eliminada da caché.",
+"Edit address" => "Editar enderezo",
"Type" => "Escribir",
"PO Box" => "Apartado de correos",
"Extended" => "Ampliado",
-"Street" => "Rúa",
"City" => "Cidade",
"Region" => "Autonomía",
"Zipcode" => "Código postal",
"Country" => "País",
-"Add" => "Engadir",
"Addressbook" => "Axenda",
-"New Addressbook" => "Nova axenda",
-"Edit Addressbook" => "Editar axenda",
-"Displayname" => "Nome a mostrar",
-"Active" => "Activo",
+"Hon. prefixes" => "Prefixos honoríficos",
+"Miss" => "Srta",
+"Ms" => "Sra/Srta",
+"Mr" => "Sr",
+"Sir" => "Sir",
+"Mrs" => "Sra",
+"Dr" => "Dr",
+"Given name" => "Apodo",
+"Additional names" => "Nomes adicionais",
+"Family name" => "Nome familiar",
+"Hon. suffixes" => "Sufixos honorarios",
+"J.D." => "J.D.",
+"M.D." => "M.D.",
+"D.O." => "D.O.",
+"D.C." => "D.C.",
+"Ph.D." => "Ph.D.",
+"Esq." => "Esq.",
+"Jr." => "Jr.",
+"Sn." => "Sn.",
+"Import a contacts file" => "Importar un ficheiro de contactos",
+"Please choose the addressbook" => "Por favor escolla unha libreta de enderezos",
+"create a new addressbook" => "crear unha nova libreta de enderezos",
+"Name of new addressbook" => "Nome da nova libreta de enderezos",
+"Importing contacts" => "Importando contactos",
+"You have no contacts in your addressbook." => "Non ten contactos na súa libreta de enderezos.",
+"Add contact" => "Engadir contacto",
+"Configure addressbooks" => "Configurar libretas de enderezos",
+"CardDAV syncing addresses" => "Enderezos CardDAV a sincronizar",
+"more info" => "máis información",
+"Primary address (Kontact et al)" => "Enderezo primario (Kontact et al)",
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Descargar",
+"Edit" => "Editar",
+"New Address Book" => "Nova axenda",
"Save" => "Gardar",
-"Submit" => "Enviar",
"Cancel" => "Cancelar"
);
diff --git a/apps/contacts/l10n/he.php b/apps/contacts/l10n/he.php
index 6e40ad71e1d..be67fe8ae8f 100644
--- a/apps/contacts/l10n/he.php
+++ b/apps/contacts/l10n/he.php
@@ -1,22 +1,45 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "שגיאה בהפעלה או בנטרול פנקס הכתובות.",
-"There was an error adding the contact." => "אירעה שגיאה בעת הוספת איש הקשר.",
-"Cannot add empty property." => "לא ניתן להוסיף מאפיין ריק.",
-"At least one of the address fields has to be filled out." => "יש למלא לפחות אחד משדות הכתובת.",
-"Trying to add duplicate property: " => "ניסיון להוספת מאפיין כפול: ",
-"Error adding contact property." => "שגיאה בהוספת מאפיין לאיש הקשר.",
+"id is not set." => "מספר מזהה לא נקבע.",
+"Cannot update addressbook with an empty name." => "אי אפשר לעדכן ספר כתובות ללא שם",
+"Error updating addressbook." => "שגיאה בעדכון פנקס הכתובות.",
"No ID provided" => "לא צוין מזהה",
"Error setting checksum." => "שגיאה בהגדרת נתוני הביקורת.",
"No categories selected for deletion." => "לא נבחור קטגוריות למחיקה.",
"No address books found." => "לא נמצאו פנקסי כתובות.",
"No contacts found." => "לא נמצאו אנשי קשר.",
-"Missing ID" => "מזהה חסר",
-"Error adding addressbook." => "שגיאה בהוספת פנקס הכתובות.",
-"Error activating addressbook." => "שגיאה בהפעלת פנקס הכתובות.",
+"There was an error adding the contact." => "אירעה שגיאה בעת הוספת איש הקשר.",
+"element name is not set." => "שם האלמנט לא נקבע.",
+"Cannot add empty property." => "לא ניתן להוסיף מאפיין ריק.",
+"At least one of the address fields has to be filled out." => "יש למלא לפחות אחד משדות הכתובת.",
+"Trying to add duplicate property: " => "ניסיון להוספת מאפיין כפול: ",
"Information about vCard is incorrect. Please reload the page." => "המידע אודות vCard אינו נכון. נא לטעון מחדש את הדף.",
"Error deleting contact property." => "שגיאה במחיקת מאפיין של איש הקשר.",
+"Missing ID" => "מזהה חסר",
+"Error parsing VCard for ID: \"" => "שגיאה בפענוח ה VCard עבור מספר המזהה: \"",
+"checksum is not set." => "סיכום ביקורת לא נקבע.",
+"Information about vCard is incorrect. Please reload the page: " => "המידע עבור ה vCard אינו נכון. אנא טען את העמוד: ",
+"Something went FUBAR. " => "משהו לא התנהל כצפוי.",
"Error updating contact property." => "שגיאה בעדכון המאפיין של איש הקשר.",
-"Error updating addressbook." => "שגיאה בעדכון פנקס הכתובות.",
+"No contact ID was submitted." => "מספר מזהה של אישר הקשר לא נשלח.",
+"Error reading contact photo." => "שגיאה בקריאת תמונת איש הקשר.",
+"Error saving temporary file." => "שגיאה בשמירת קובץ זמני.",
+"The loading photo is not valid." => "התמונה הנטענת אינה תקנית.",
+"Contact ID is missing." => "מספר מזהה של אישר הקשר חסר.",
+"No photo path was submitted." => "כתובת התמונה לא נשלחה",
+"File doesn't exist:" => "קובץ לא קיים:",
+"Error loading image." => "שגיאה בטעינת התמונה.",
+"Error getting contact object." => "שגיאה בקבלת אוביאקט איש הקשר",
+"Error getting PHOTO property." => "שגיאה בקבלת מידע של תמונה",
+"Error saving contact." => "שגיאה בשמירת איש הקשר",
+"Error resizing image" => "שגיאה בשינוי גודל התמונה",
+"Error uploading contacts to storage." => "התרשה שגיאה בהעלאת אנשי הקשר לאכסון.",
+"There is no error, the file uploaded with success" => "לא התרחשה שגיאה, הקובץ הועלה בהצלחה",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "גודל הקובץ שהועלה גדול מהערך upload_max_filesize שמוגדר בקובץ php.ini",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "הקובץ שהועלה גדוך מהערך MAX_FILE_SIZE שהוגדר בתופס HTML",
+"The uploaded file was only partially uploaded" => "הקובץ הועלה באופן חלקי בלבד",
+"No file was uploaded" => "שום קובץ לא הועלה",
+"Missing a temporary folder" => "תקיה זמנית חסרה",
"Contacts" => "אנשי קשר",
"This is not your addressbook." => "זהו אינו ספר הכתובות שלך",
"Contact could not be found." => "לא ניתן לאתר איש קשר",
@@ -29,37 +52,88 @@
"Mobile" => "נייד",
"Text" => "טקסט",
"Voice" => "קולי",
+"Message" => "הודעה",
"Fax" => "פקס",
"Video" => "וידאו",
"Pager" => "זימונית",
+"Internet" => "אינטרנט",
+"Birthday" => "יום הולדת",
+"{name}'s Birthday" => "יום ההולדת של {name}",
"Contact" => "איש קשר",
"Add Contact" => "הוספת איש קשר",
+"Import" => "יבא",
"Addressbooks" => "פנקסי כתובות",
-"New Address Book" => "פנקס כתובות חדש",
-"CardDav Link" => "קישור ",
-"Download" => "הורדה",
-"Edit" => "עריכה",
+"Drop photo to upload" => "גרור ושחרר תמונה בשביל להעלות",
+"Delete current photo" => "מחק תמונה נוכחית",
+"Edit current photo" => "ערוך תמונה נוכחית",
+"Upload new photo" => "העלה תמונה חדשה",
+"Select photo from ownCloud" => "בחר תמונה מ ownCloud",
+"Edit name details" => "ערוך פרטי שם",
"Delete" => "מחיקה",
-"Download contact" => "הורדת איש קשר",
-"Delete contact" => "מחיקת איש קשר",
-"Birthday" => "יום הולדת",
+"Nickname" => "כינוי",
+"Enter nickname" => "הכנס כינוי",
+"dd-mm-yyyy" => "dd-mm-yyyy",
+"Groups" => "קבוצות",
+"Separate groups with commas" => "הפרד קבוצות עם פסיקים",
+"Edit groups" => "ערוך קבוצות",
"Preferred" => "מועדף",
+"Please specify a valid email address." => "אנא הזן כתובת דוא\"ל חוקית",
+"Enter email address" => "הזן כתובת דוא\"ל",
+"Mail to address" => "כתובת",
+"Delete email address" => "מחק כתובת דוא\"ל",
+"Enter phone number" => "הכנס מספר טלפון",
+"Delete phone number" => "מחק מספר טלפון",
+"View on map" => "ראה במפה",
+"Edit address details" => "ערוך פרטי כתובת",
+"Add notes here." => "הוסף הערות כאן.",
+"Add field" => "הוסף שדה",
"Phone" => "טלפון",
+"Note" => "הערה",
+"Download contact" => "הורדת איש קשר",
+"Delete contact" => "מחיקת איש קשר",
+"Edit address" => "ערוך כתובת",
"Type" => "סוג",
"PO Box" => "תא דואר",
"Extended" => "מורחב",
-"Street" => "רחוב",
"City" => "עיר",
"Region" => "אזור",
"Zipcode" => "מיקוד",
"Country" => "מדינה",
-"Add" => "הוספה",
"Addressbook" => "פנקס כתובות",
-"New Addressbook" => "פנקס כתובות חדש",
-"Edit Addressbook" => "עריכת פנקס הכתובות",
-"Displayname" => "שם התצוגה",
-"Active" => "פעיל",
+"Hon. prefixes" => "קידומות שם",
+"Miss" => "גב'",
+"Ms" => "גב'",
+"Mr" => "מר'",
+"Sir" => "אדון",
+"Mrs" => "גב'",
+"Dr" => "ד\"ר",
+"Given name" => "שם",
+"Additional names" => "שמות נוספים",
+"Family name" => "שם משפחה",
+"Hon. suffixes" => "סיומות שם",
+"J.D." => "J.D.",
+"M.D." => "M.D.",
+"D.O." => "D.O.",
+"D.C." => "D.C.",
+"Ph.D." => "Ph.D.",
+"Esq." => "Esq.",
+"Jr." => "Jr.",
+"Sn." => "Sn.",
+"Import a contacts file" => "יבא קובץ אנשי קשר",
+"Please choose the addressbook" => "אנא בחר ספר כתובות",
+"create a new addressbook" => "צור ספר כתובות חדש",
+"Name of new addressbook" => "שם ספר כתובות החדש",
+"Importing contacts" => "מיבא אנשי קשר",
+"You have no contacts in your addressbook." => "איך לך אנשי קשר בספר הכתובות",
+"Add contact" => "הוסף איש קשר",
+"Configure addressbooks" => "הגדר ספרי כתובות",
+"CardDAV syncing addresses" => "CardDAV מסנכרן כתובות",
+"more info" => "מידע נוסף",
+"Primary address (Kontact et al)" => "כתובת ראשית",
+"iOS/OS X" => "iOS/OS X",
+"Download" => "הורדה",
+"Edit" => "עריכה",
+"New Address Book" => "פנקס כתובות חדש",
"Save" => "שמירה",
-"Submit" => "ביצוע",
"Cancel" => "ביטול"
);
diff --git a/apps/contacts/l10n/hr.php b/apps/contacts/l10n/hr.php
index d381bf4fa90..d29283f7677 100644
--- a/apps/contacts/l10n/hr.php
+++ b/apps/contacts/l10n/hr.php
@@ -1,6 +1,41 @@
<?php $TRANSLATIONS = array(
+"Error (de)activating addressbook." => "Pogreška pri (de)aktivaciji adresara.",
+"id is not set." => "id nije postavljen.",
+"Cannot update addressbook with an empty name." => "Ne mogu ažurirati adresar sa praznim nazivom.",
+"Error updating addressbook." => "Pogreška pri ažuriranju adresara.",
+"No ID provided" => "Nema dodijeljenog ID identifikatora",
+"Error setting checksum." => "Pogreška pri postavljanju checksuma.",
+"No categories selected for deletion." => "Niti jedna kategorija nije odabrana za brisanje.",
+"No address books found." => "Nema adresara.",
+"No contacts found." => "Nema kontakata.",
+"There was an error adding the contact." => "Dogodila se pogreška prilikom dodavanja kontakta.",
+"element name is not set." => "naziv elementa nije postavljen.",
+"Cannot add empty property." => "Prazno svojstvo se ne može dodati.",
+"At least one of the address fields has to be filled out." => "Morate ispuniti barem jedno od adresnih polja.",
+"Trying to add duplicate property: " => "Pokušali ste dodati duplo svojstvo:",
"Information about vCard is incorrect. Please reload the page." => "Informacija o vCard je neispravna. Osvježite stranicu.",
+"Error deleting contact property." => "Pogreška pri brisanju svojstva kontakta.",
+"Missing ID" => "Nedostupan ID identifikator",
+"Error parsing VCard for ID: \"" => "Pogreška pri raščlanjivanju VCard za ID:",
+"checksum is not set." => "checksum nije postavljen.",
+"Information about vCard is incorrect. Please reload the page: " => "Informacije o VCard su pogrešne. Molimo, učitajte ponovno stranicu:",
+"Something went FUBAR. " => "Nešto je otišlo... krivo...",
+"Error updating contact property." => "Pogreška pri ažuriranju svojstva kontakta.",
+"No contact ID was submitted." => "ID kontakta nije podnešen.",
+"Error reading contact photo." => "Pogreška pri čitanju kontakt fotografije.",
+"Error saving temporary file." => "Pogreška pri spremanju privremene datoteke.",
+"The loading photo is not valid." => "Fotografija nije valjana.",
+"Contact ID is missing." => "ID kontakta nije dostupan.",
+"No photo path was submitted." => "Putanja do fotografije nije podnešena.",
"File doesn't exist:" => "Datoteka ne postoji:",
+"Error loading image." => "Pogreška pri učitavanju slike.",
+"Error uploading contacts to storage." => "Pogreška pri slanju kontakata.",
+"There is no error, the file uploaded with success" => "Nema pogreške, datoteka je poslana uspješno.",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Veličina poslane datoteke prelazi veličinu prikazanu u upload_max_filesize direktivi u konfiguracijskoj datoteci php.ini",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Poslana datoteka prelazi veličinu prikazanu u MAX_FILE_SIZE direktivi u HTML formi",
+"The uploaded file was only partially uploaded" => "Poslana datoteka je parcijalno poslana",
+"No file was uploaded" => "Datoteka nije poslana",
+"Missing a temporary folder" => "Nedostaje privremeni direktorij",
"Contacts" => "Kontakti",
"This is not your addressbook." => "Ovo nije vaš adresar.",
"Contact could not be found." => "Kontakt ne postoji.",
@@ -13,26 +48,27 @@
"Mobile" => "Mobitel",
"Text" => "Tekst",
"Voice" => "Glasovno",
+"Message" => "Poruka",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
+"Internet" => "Internet",
+"Birthday" => "Rođendan",
+"{name}'s Birthday" => "{name} Rođendan",
"Contact" => "Kontakt",
"Add Contact" => "Dodaj kontakt",
+"Import" => "Uvezi",
"Addressbooks" => "Adresari",
-"New Address Book" => "Novi adresar",
-"CardDav Link" => "CardDav poveznica",
-"Download" => "Preuzimanje",
-"Edit" => "Uredi",
-"Delete" => "Obriši",
-"Download contact" => "Preuzmi kontakt",
-"Delete contact" => "Izbriši kontakt",
+"Drop photo to upload" => "Dovucite fotografiju za slanje",
+"Edit current photo" => "Uredi trenutnu sliku",
"Edit name details" => "Uredi detalje imena",
+"Delete" => "Obriši",
"Nickname" => "Nadimak",
"Enter nickname" => "Unesi nadimank",
-"Birthday" => "Rođendan",
"dd-mm-yyyy" => "dd-mm-yyyy",
"Groups" => "Grupe",
"Edit groups" => "Uredi grupe",
+"Preferred" => "Preferirano",
"Enter email address" => "Unesi email adresu",
"Enter phone number" => "Unesi broj telefona",
"View on map" => "Prikaži na karti",
@@ -41,23 +77,20 @@
"Add field" => "Dodaj polje",
"Phone" => "Telefon",
"Note" => "Bilješka",
-"Edit current photo" => "Uredi trenutnu sliku",
+"Download contact" => "Preuzmi kontakt",
+"Delete contact" => "Izbriši kontakt",
"Edit address" => "Uredi adresu",
"Type" => "Tip",
"PO Box" => "Poštanski Pretinac",
"Extended" => "Prošireno",
-"Street" => "Ulica",
"City" => "Grad",
"Region" => "Regija",
"Zipcode" => "Poštanski broj",
"Country" => "Država",
-"Edit categories" => "Uredi kategorije",
-"Add" => "Dodaj",
"Addressbook" => "Adresar",
-"New Addressbook" => "Novi adresar",
-"Edit Addressbook" => "Uredi adresar",
+"Download" => "Preuzimanje",
+"Edit" => "Uredi",
+"New Address Book" => "Novi adresar",
"Save" => "Spremi",
-"Submit" => "Pošalji",
-"Cancel" => "Prekini",
-"Import" => "Uvezi"
+"Cancel" => "Prekini"
);
diff --git a/apps/contacts/l10n/hu_HU.php b/apps/contacts/l10n/hu_HU.php
index 68f7b2607eb..b3f831ea8ae 100644
--- a/apps/contacts/l10n/hu_HU.php
+++ b/apps/contacts/l10n/hu_HU.php
@@ -1,39 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Címlista (de)aktiválása sikertelen",
-"There was an error adding the contact." => "Hiba a kapcsolat hozzáadásakor",
-"Cannot add empty property." => "Nem adható hozzá üres tulajdonság",
-"At least one of the address fields has to be filled out." => "Legalább egy címmező kitöltendő",
-"Trying to add duplicate property: " => "Kísérlet dupla tulajdonság hozzáadására: ",
-"Error adding contact property." => "Hiba a kapcsolat-tulajdonság hozzáadásakor",
+"id is not set." => "ID nincs beállítva",
+"Cannot update addressbook with an empty name." => "Üres névvel nem frissíthető a címlista",
+"Error updating addressbook." => "Hiba a címlista frissítésekor",
"No ID provided" => "Nincs ID megadva",
"Error setting checksum." => "Hiba az ellenőrzőösszeg beállításakor",
"No categories selected for deletion." => "Nincs kiválasztva törlendő kategória",
"No address books found." => "Nem található címlista",
"No contacts found." => "Nem található kontakt",
+"There was an error adding the contact." => "Hiba a kapcsolat hozzáadásakor",
+"element name is not set." => "az elem neve nincs beállítva",
+"Cannot add empty property." => "Nem adható hozzá üres tulajdonság",
+"At least one of the address fields has to be filled out." => "Legalább egy címmező kitöltendő",
+"Trying to add duplicate property: " => "Kísérlet dupla tulajdonság hozzáadására: ",
+"Information about vCard is incorrect. Please reload the page." => "A vCardról szóló információ helytelen. Töltsd újra az oldalt.",
+"Error deleting contact property." => "Hiba a kapcsolat-tulajdonság törlésekor",
"Missing ID" => "Hiányzó ID",
"Error parsing VCard for ID: \"" => "VCard elemzése sikertelen a következő ID-hoz: \"",
-"Cannot add addressbook with an empty name." => "Nem adható hozzá névtelen címlista",
-"Error adding addressbook." => "Hiba a címlista hozzáadásakor",
-"Error activating addressbook." => "Címlista aktiválása sikertelen",
+"checksum is not set." => "az ellenőrzőösszeg nincs beállítva",
+"Information about vCard is incorrect. Please reload the page: " => "Helytelen információ a vCardról. Töltse újra az oldalt: ",
+"Something went FUBAR. " => "Valami balul sült el.",
+"Error updating contact property." => "Hiba a kapcsolat-tulajdonság frissítésekor",
"No contact ID was submitted." => "Nincs ID megadva a kontakthoz",
"Error reading contact photo." => "A kontakt képének beolvasása sikertelen",
"Error saving temporary file." => "Ideiglenes fájl mentése sikertelen",
"The loading photo is not valid." => "A kép érvénytelen",
-"id is not set." => "ID nincs beállítva",
-"Information about vCard is incorrect. Please reload the page." => "A vCardról szóló információ helytelen. Töltsd újra az oldalt.",
-"Error deleting contact property." => "Hiba a kapcsolat-tulajdonság törlésekor",
"Contact ID is missing." => "Hiányzik a kapcsolat ID",
-"Missing contact id." => "Hiányzik a kontakt ID",
"No photo path was submitted." => "Nincs fénykép-útvonal megadva",
"File doesn't exist:" => "A fájl nem létezik:",
"Error loading image." => "Kép betöltése sikertelen",
-"element name is not set." => "az elem neve nincs beállítva",
-"checksum is not set." => "az ellenőrzőösszeg nincs beállítva",
-"Information about vCard is incorrect. Please reload the page: " => "Helytelen információ a vCardról. Töltse újra az oldalt: ",
-"Something went FUBAR. " => "Valami balul sült el.",
-"Error updating contact property." => "Hiba a kapcsolat-tulajdonság frissítésekor",
-"Cannot update addressbook with an empty name." => "Üres névvel nem frissíthető a címlista",
-"Error updating addressbook." => "Hiba a címlista frissítésekor",
+"Error getting contact object." => "A kontakt-objektum feldolgozása sikertelen",
+"Error getting PHOTO property." => "A PHOTO-tulajdonság feldolgozása sikertelen",
+"Error saving contact." => "A kontakt mentése sikertelen",
+"Error resizing image" => "Képméretezés sikertelen",
+"Error cropping image" => "Képvágás sikertelen",
+"Error creating temporary image" => "Ideiglenes kép létrehozása sikertelen",
+"Error finding image: " => "A kép nem található",
"Error uploading contacts to storage." => "Hiba a kapcsolatok feltöltésekor",
"There is no error, the file uploaded with success" => "Nincs hiba, a fájl sikeresen feltöltődött",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "A feltöltött fájl mérete meghaladja az upload_max_filesize értéket a php.ini-ben",
@@ -41,9 +43,24 @@
"The uploaded file was only partially uploaded" => "A fájl csak részlegesen lett feltöltve",
"No file was uploaded" => "Nincs feltöltött fájl",
"Missing a temporary folder" => "Hiányzik az ideiglenes könyvtár",
+"Couldn't save temporary image: " => "Ideiglenes kép létrehozása sikertelen",
+"Couldn't load temporary image: " => "Ideiglenes kép betöltése sikertelen",
+"No file was uploaded. Unknown error" => "Nem történt feltöltés. Ismeretlen hiba",
"Contacts" => "Kapcsolatok",
-"Drop a VCF file to import contacts." => "Húzza ide a VCF fájlt a kapcsolatok importálásához",
-"Addressbook not found." => "Címlista nem található",
+"Sorry, this functionality has not been implemented yet" => "Sajnáljuk, ez a funkció még nem támogatott",
+"Not implemented" => "Nem támogatott",
+"Couldn't get a valid address." => "Érvényes cím lekérése sikertelen",
+"Error" => "Hiba",
+"This property has to be non-empty." => "Ezt a tulajdonságot muszáj kitölteni",
+"Couldn't serialize elements." => "Sorbarakás sikertelen",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "A 'deleteProperty' argumentum nélkül lett meghívva. Kérjük, jelezze a hibát.",
+"Edit name" => "Név szerkesztése",
+"No files selected for upload." => "Nincs kiválasztva feltöltendő fájl",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "A feltöltendő fájl mérete meghaladja a megengedett mértéket",
+"Select type" => "Típus kiválasztása",
+"Result: " => "Eredmény: ",
+" imported, " => " beimportálva, ",
+" failed." => " sikertelen",
"This is not your addressbook." => "Ez nem a te címjegyzéked.",
"Contact could not be found." => "Kapcsolat nem található.",
"Address" => "Cím",
@@ -60,25 +77,23 @@
"Video" => "Video",
"Pager" => "Személyhívó",
"Internet" => "Internet",
+"Birthday" => "Születésnap",
"{name}'s Birthday" => "{name} születésnapja",
"Contact" => "Kapcsolat",
"Add Contact" => "Kapcsolat hozzáadása",
+"Import" => "Import",
"Addressbooks" => "Címlisták",
-"Configure Address Books" => "Címlisták beállítása",
-"New Address Book" => "Új címlista",
-"Import from VCF" => "Importálás VCF-ből",
-"CardDav Link" => "CardDav hivatkozás",
-"Download" => "Letöltés",
-"Edit" => "Szerkesztés",
-"Delete" => "Törlés",
-"Download contact" => "Kapcsolat letöltése",
-"Delete contact" => "Kapcsolat törlése",
+"Close" => "Bezár",
"Drop photo to upload" => "Húzza ide a feltöltendő képet",
+"Delete current photo" => "Aktuális kép törlése",
+"Edit current photo" => "Aktuális kép szerkesztése",
+"Upload new photo" => "Új kép feltöltése",
+"Select photo from ownCloud" => "Kép kiválasztása ownCloud-ból",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formátum egyedi, Rövid név, Teljes név, Visszafelé vagy Visszafelé vesszővel",
"Edit name details" => "Név részleteinek szerkesztése",
+"Delete" => "Törlés",
"Nickname" => "Becenév",
"Enter nickname" => "Becenév megadása",
-"Birthday" => "Születésnap",
"dd-mm-yyyy" => "yyyy-mm-dd",
"Groups" => "Csoportok",
"Separate groups with commas" => "Vesszővel válassza el a csoportokat",
@@ -94,24 +109,19 @@
"Edit address details" => "Cím részleteinek szerkesztése",
"Add notes here." => "Megjegyzések",
"Add field" => "Mező hozzáadása",
-"Profile picture" => "Profilkép",
"Phone" => "Telefonszám",
"Note" => "Jegyzet",
-"Delete current photo" => "Aktuális kép törlése",
-"Edit current photo" => "Aktuális kép szerkesztése",
-"Upload new photo" => "Új kép feltöltése",
-"Select photo from ownCloud" => "Kép kiválasztása ownCloud-ból",
+"Download contact" => "Kapcsolat letöltése",
+"Delete contact" => "Kapcsolat törlése",
+"The temporary image has been removed from cache." => "Az ideiglenes kép el lett távolítva a gyorsítótárból",
"Edit address" => "Cím szerkesztése",
"Type" => "Típus",
"PO Box" => "Postafiók",
"Extended" => "Kiterjesztett",
-"Street" => "Utca",
"City" => "Város",
"Region" => "Megye",
"Zipcode" => "Irányítószám",
"Country" => "Ország",
-"Edit categories" => "Kategóriák szerkesztése",
-"Add" => "Hozzáad",
"Addressbook" => "Címlista",
"Hon. prefixes" => "Előtag",
"Miss" => "Miss",
@@ -132,26 +142,21 @@
"Esq." => "Esq.",
"Jr." => "Ifj.",
"Sn." => "Id.",
-"New Addressbook" => "Új Címlista",
-"Edit Addressbook" => "Címlista szerkesztése",
-"Displayname" => "Megjelenített név",
-"Active" => "Aktív",
-"Save" => "Mentés",
-"Submit" => "Elküld",
-"Cancel" => "Mégsem",
"Import a contacts file" => "Kapcsolat-fájl importálása",
"Please choose the addressbook" => "Válassza ki a címlistát",
"create a new addressbook" => "Címlista létrehozása",
"Name of new addressbook" => "Új címlista neve",
-"Import" => "Import",
"Importing contacts" => "Kapcsolatok importálása",
-"Select address book to import to:" => "Melyik címlistába történjen az importálás:",
-"Select from HD" => "Kiválasztás merevlemezről",
"You have no contacts in your addressbook." => "Nincsenek kapcsolatok a címlistában",
"Add contact" => "Kapcsolat hozzáadása",
"Configure addressbooks" => "Címlisták beállítása",
"CardDAV syncing addresses" => "CardDAV szinkronizációs címek",
"more info" => "további információ",
"Primary address (Kontact et al)" => "Elsődleges cím",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Letöltés",
+"Edit" => "Szerkesztés",
+"New Address Book" => "Új címlista",
+"Save" => "Mentés",
+"Cancel" => "Mégsem"
);
diff --git a/apps/contacts/l10n/ia.php b/apps/contacts/l10n/ia.php
index f420b48d842..b3f9db539ad 100644
--- a/apps/contacts/l10n/ia.php
+++ b/apps/contacts/l10n/ia.php
@@ -1,15 +1,12 @@
<?php $TRANSLATIONS = array(
-"Cannot add empty property." => "Non pote adder proprietate vacue.",
"No address books found." => "Nulle adressario trovate",
"No contacts found." => "Nulle contactos trovate.",
-"Error adding addressbook." => "Error durante que il addeva le adressario.",
-"Error activating addressbook." => "Error in activar adressario",
+"Cannot add empty property." => "Non pote adder proprietate vacue.",
"Error saving temporary file." => "Error durante le scriptura in le file temporari",
"Error loading image." => "Il habeva un error durante le cargamento del imagine.",
"No file was uploaded" => "Nulle file esseva incargate.",
"Missing a temporary folder" => "Manca un dossier temporari",
"Contacts" => "Contactos",
-"Addressbook not found." => "Adressario non trovate.",
"This is not your addressbook." => "Iste non es tu libro de adresses",
"Contact could not be found." => "Contacto non poterea esser legite",
"Address" => "Adresse",
@@ -26,19 +23,18 @@
"Video" => "Video",
"Pager" => "Pager",
"Internet" => "Internet",
+"Birthday" => "Anniversario",
"Contact" => "Contacto",
"Add Contact" => "Adder contacto",
+"Import" => "Importar",
"Addressbooks" => "Adressarios",
-"New Address Book" => "Nove adressario",
-"CardDav Link" => "Ligamine CardDav",
-"Download" => "Discargar",
-"Edit" => "Modificar",
+"Delete current photo" => "Deler photo currente",
+"Edit current photo" => "Modificar photo currente",
+"Upload new photo" => "Incargar nove photo",
+"Select photo from ownCloud" => "Seliger photo ex ownCloud",
"Delete" => "Deler",
-"Download contact" => "Discargar contacto",
-"Delete contact" => "Deler contacto",
"Nickname" => "Pseudonymo",
"Enter nickname" => "Inserer pseudonymo",
-"Birthday" => "Anniversario",
"Groups" => "Gruppos",
"Edit groups" => "Modificar gruppos",
"Preferred" => "Preferite",
@@ -49,24 +45,18 @@
"View on map" => "Vider in un carta",
"Add notes here." => "Adder notas hic",
"Add field" => "Adder campo",
-"Profile picture" => "Imagine de profilo",
"Phone" => "Phono",
"Note" => "Nota",
-"Delete current photo" => "Deler photo currente",
-"Edit current photo" => "Modificar photo currente",
-"Upload new photo" => "Incargar nove photo",
-"Select photo from ownCloud" => "Seliger photo ex ownCloud",
+"Download contact" => "Discargar contacto",
+"Delete contact" => "Deler contacto",
"Edit address" => "Modificar adresses",
"Type" => "Typo",
"PO Box" => "Cassa postal",
"Extended" => "Extendite",
-"Street" => "Strata",
"City" => "Citate",
"Region" => "Region",
"Zipcode" => "Codice postal",
"Country" => "Pais",
-"Edit categories" => "Modificar categorias",
-"Add" => "Adder",
"Addressbook" => "Adressario",
"Hon. prefixes" => "Prefixos honorific",
"Miss" => "Senioretta",
@@ -77,18 +67,16 @@
"Additional names" => "Nomines additional",
"Family name" => "Nomine de familia",
"Hon. suffixes" => "Suffixos honorific",
-"New Addressbook" => "Nove adressario",
-"Edit Addressbook" => "Modificar adressario",
-"Active" => "Active",
-"Save" => "Salveguardar",
-"Submit" => "Submitter",
-"Cancel" => "Cancellar",
"Import a contacts file" => "Importar un file de contactos",
"Please choose the addressbook" => "Per favor selige le adressario",
"create a new addressbook" => "Crear un nove adressario",
"Name of new addressbook" => "Nomine del nove gruppo:",
-"Import" => "Importar",
"Add contact" => "Adder adressario",
"more info" => "plus info",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Discargar",
+"Edit" => "Modificar",
+"New Address Book" => "Nove adressario",
+"Save" => "Salveguardar",
+"Cancel" => "Cancellar"
);
diff --git a/apps/contacts/l10n/it.php b/apps/contacts/l10n/it.php
index 820104b7774..31f950ff80c 100644
--- a/apps/contacts/l10n/it.php
+++ b/apps/contacts/l10n/it.php
@@ -1,26 +1,32 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Errore nel (dis)attivare la rubrica.",
-"There was an error adding the contact." => "Si è verificato un errore nell'aggiunta del contatto.",
-"element name is not set." => "il nome dell'elemento non è impostato.",
"id is not set." => "ID non impostato.",
-"Could not parse contact: " => "Impossibile elaborare il contatto: ",
-"Cannot add empty property." => "Impossibile aggiungere una proprietà vuota.",
-"At least one of the address fields has to be filled out." => "Deve essere riempito almeno un indirizzo.",
-"Trying to add duplicate property: " => "P",
-"Error adding contact property: " => "Errore durante l'aggiunta della proprietà del contatto: ",
+"Cannot update addressbook with an empty name." => "Impossibile aggiornare una rubrica senza nome.",
+"Error updating addressbook." => "Errore durante l'aggiornamento della rubrica.",
"No ID provided" => "Nessun ID fornito",
"Error setting checksum." => "Errore di impostazione del codice di controllo.",
"No categories selected for deletion." => "Nessuna categoria selezionata per l'eliminazione.",
"No address books found." => "Nessuna rubrica trovata.",
"No contacts found." => "Nessun contatto trovato.",
+"There was an error adding the contact." => "Si è verificato un errore nell'aggiunta del contatto.",
+"element name is not set." => "il nome dell'elemento non è impostato.",
+"Could not parse contact: " => "Impossibile elaborare il contatto: ",
+"Cannot add empty property." => "Impossibile aggiungere una proprietà vuota.",
+"At least one of the address fields has to be filled out." => "Deve essere inserito almeno un indirizzo.",
+"Trying to add duplicate property: " => "P",
+"Error adding contact property: " => "Errore durante l'aggiunta della proprietà del contatto: ",
+"Information about vCard is incorrect. Please reload the page." => "Informazioni sulla vCard non corrette. Ricarica la pagina.",
+"Error deleting contact property." => "Errore durante l'eliminazione della proprietà del contatto.",
"Missing ID" => "ID mancante",
"Error parsing VCard for ID: \"" => "Errore in fase di elaborazione del file VCard per l'ID: \"",
+"checksum is not set." => "il codice di controllo non è impostato.",
+"Information about vCard is incorrect. Please reload the page: " => "Le informazioni della vCard non sono corrette. Ricarica la pagina: ",
+"Something went FUBAR. " => "Qualcosa è andato storto. ",
+"Error updating contact property." => "Errore durante l'aggiornamento della proprietà del contatto.",
"No contact ID was submitted." => "Nessun ID di contatto inviato.",
"Error reading contact photo." => "Errore di lettura della foto del contatto.",
"Error saving temporary file." => "Errore di salvataggio del file temporaneo.",
"The loading photo is not valid." => "La foto caricata non è valida.",
-"Information about vCard is incorrect. Please reload the page." => "Informazioni sulla vCard non corrette. Ricarica la pagina.",
-"Error deleting contact property." => "Errore durante l'eliminazione della proprietà del contatto.",
"Contact ID is missing." => "Manca l'ID del contatto.",
"No photo path was submitted." => "Non è stato inviato alcun percorso a una foto.",
"File doesn't exist:" => "Il file non esiste:",
@@ -32,12 +38,6 @@
"Error cropping image" => "Errore di ritaglio dell'immagine",
"Error creating temporary image" => "Errore durante la creazione dell'immagine temporanea",
"Error finding image: " => "Errore durante la ricerca dell'immagine: ",
-"checksum is not set." => "il codice di controllo non è impostato.",
-"Information about vCard is incorrect. Please reload the page: " => "Le informazioni della vCard non sono corrette. Ricarica la pagina: ",
-"Something went FUBAR. " => "Qualcosa è andato storto. ",
-"Error updating contact property." => "Errore durante l'aggiornamento della proprietà del contatto.",
-"Cannot update addressbook with an empty name." => "Impossibile aggiornare una rubrica senza nome.",
-"Error updating addressbook." => "Errore durante l'aggiornamento della rubrica.",
"Error uploading contacts to storage." => "Errore di invio dei contatti in archivio.",
"There is no error, the file uploaded with success" => "Non ci sono errori, il file è stato inviato correttamente",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Il file inviato supera la direttiva upload_max_filesize nel php.ini",
@@ -53,9 +53,6 @@
"Not implemented" => "Non implementata",
"Couldn't get a valid address." => "Impossibile ottenere un indirizzo valido.",
"Error" => "Errore",
-"Contact" => "Contatto",
-"New" => "Nuovo",
-"New Contact" => "Nuovo contatto",
"This property has to be non-empty." => "Questa proprietà non può essere vuota.",
"Couldn't serialize elements." => "Impossibile serializzare gli elementi.",
"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' invocata senza l'argomento di tipo. Segnalalo a bugs.owncloud.org",
@@ -63,10 +60,12 @@
"No files selected for upload." => "Nessun file selezionato per l'invio",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Il file che stai cercando di inviare supera la dimensione massima per l'invio dei file su questo server.",
"Select type" => "Seleziona il tipo",
+"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Alcuni contatti sono marcati per l'eliminazione, ma non sono stati ancora rimossi. Attendi fino al completamento dell'operazione.",
"Result: " => "Risultato: ",
" imported, " => " importato, ",
" failed." => " non riuscito.",
-"Addressbook not found." => "Rubrica non trovata.",
+"Displayname cannot be empty." => "Il nome visualizzato non può essere vuoto.",
+"Addressbook not found: " => "Rubrica non trovata:",
"This is not your addressbook." => "Questa non è la tua rubrica.",
"Contact could not be found." => "Il contatto non può essere trovato.",
"Address" => "Indirizzo",
@@ -98,8 +97,10 @@
"Projects" => "Progetti",
"Questions" => "Domande",
"{name}'s Birthday" => "Data di nascita di {name}",
+"Contact" => "Contatto",
"Add Contact" => "Aggiungi contatto",
"Import" => "Importa",
+"Settings" => "Impostazioni",
"Addressbooks" => "Rubriche",
"Close" => "Chiudi",
"Keyboard shortcuts" => "Scorciatoie da tastiera",
@@ -107,18 +108,11 @@
"Next contact in list" => "Contatto successivo in elenco",
"Previous contact in list" => "Contatto precedente in elenco",
"Expand/collapse current addressbook" => "Espandi/Contrai la rubrica corrente",
-"Next/previous addressbook" => "Rubrica successiva/precedente",
"Actions" => "Azioni",
"Refresh contacts list" => "Aggiorna l'elenco dei contatti",
"Add new contact" => "Aggiungi un nuovo contatto",
"Add new addressbook" => "Aggiungi una nuova rubrica",
"Delete current contact" => "Elimina il contatto corrente",
-"Configure Address Books" => "Configura rubrica",
-"New Address Book" => "Nuova rubrica",
-"CardDav Link" => "Link CardDav",
-"Download" => "Scarica",
-"Edit" => "Modifica",
-"Delete" => "Elimina",
"Drop photo to upload" => "Rilascia una foto da inviare",
"Delete current photo" => "Elimina la foto corrente",
"Edit current photo" => "Modifica la foto corrente",
@@ -126,6 +120,7 @@
"Select photo from ownCloud" => "Seleziona la foto da ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formato personalizzato, nome breve, nome completo, invertito o invertito con virgola",
"Edit name details" => "Modifica dettagli del nome",
+"Delete" => "Elimina",
"Nickname" => "Pseudonimo",
"Enter nickname" => "Inserisci pseudonimo",
"Web site" => "Sito web",
@@ -184,13 +179,6 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "Nuova rubrica",
-"Edit Addressbook" => "Modifica rubrica",
-"Displayname" => "Nome visualizzato",
-"Active" => "Attiva",
-"Save" => "Salva",
-"Submit" => "Invia",
-"Cancel" => "Annulla",
"Import a contacts file" => "Importa un file di contatti",
"Please choose the addressbook" => "Scegli la rubrica",
"create a new addressbook" => "crea una nuova rubrica",
@@ -206,5 +194,14 @@
"more info" => "altre informazioni",
"Primary address (Kontact et al)" => "Indirizzo principale (Kontact e altri)",
"iOS/OS X" => "iOS/OS X",
-"Read only vCard directory link(s)" => "Collegamento(i) cartella vCard sola lettura"
+"Show CardDav link" => "Mostra collegamento CardDav",
+"Show read-only VCF link" => "Mostra collegamento VCF in sola lettura",
+"Download" => "Scarica",
+"Edit" => "Modifica",
+"New Address Book" => "Nuova rubrica",
+"Name" => "Nome",
+"Description" => "Descrizione",
+"Save" => "Salva",
+"Cancel" => "Annulla",
+"More..." => "Altro..."
);
diff --git a/apps/contacts/l10n/ja_JP.php b/apps/contacts/l10n/ja_JP.php
index d98e58f94da..074a725b48b 100644
--- a/apps/contacts/l10n/ja_JP.php
+++ b/apps/contacts/l10n/ja_JP.php
@@ -1,36 +1,40 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "アドレスブックの有効/無効化に失敗しました。",
-"There was an error adding the contact." => "連絡先の追加でエラーが発生しました。",
-"Cannot add empty property." => "項目の新規追加に失敗しました。",
-"At least one of the address fields has to be filled out." => "住所の項目のうち1つは入力して下さい。",
-"Error adding contact property." => "連絡先の追加に失敗しました。",
+"id is not set." => "idが設定されていません。",
+"Cannot update addressbook with an empty name." => "空白の名前でアドレスブックを更新することはできません。",
+"Error updating addressbook." => "アドレスブックの更新に失敗しました。",
"No ID provided" => "IDが提供されていません",
"Error setting checksum." => "チェックサムの設定エラー。",
"No categories selected for deletion." => "削除するカテゴリが選択されていません。",
"No address books found." => "アドレスブックが見つかりません。",
"No contacts found." => "連絡先が見つかりません。",
+"There was an error adding the contact." => "連絡先の追加でエラーが発生しました。",
+"element name is not set." => "要素名が設定されていません。",
+"Cannot add empty property." => "項目の新規追加に失敗しました。",
+"At least one of the address fields has to be filled out." => "住所の項目のうち1つは入力して下さい。",
+"Trying to add duplicate property: " => "重複する属性を追加: ",
+"Error adding contact property: " => "コンタクト属性の追加エラー: ",
+"Information about vCard is incorrect. Please reload the page." => "vCardの情報に誤りがあります。ページをリロードして下さい。",
+"Error deleting contact property." => "連絡先の削除に失敗しました。",
"Error parsing VCard for ID: \"" => "VCardからIDの抽出エラー: \"",
-"Cannot add addressbook with an empty name." => "名前を空白にしたままでアドレスブックを追加することはできません。",
-"Error adding addressbook." => "アドレスブックの追加に失敗しました。",
-"Error activating addressbook." => "アドレスブックの有効化に失敗しました。",
+"checksum is not set." => "チェックサムが設定されていません。",
+"Information about vCard is incorrect. Please reload the page: " => "vCardの情報が正しくありません。ページを再読み込みしてください: ",
+"Error updating contact property." => "連絡先の更新に失敗しました。",
"No contact ID was submitted." => "連絡先IDは登録されませんでした。",
"Error reading contact photo." => "連絡先写真の読み込みエラー。",
"Error saving temporary file." => "一時ファイルの保存エラー。",
"The loading photo is not valid." => "写真の読み込みは無効です。",
-"id is not set." => "idが設定されていません。",
-"Information about vCard is incorrect. Please reload the page." => "vCardの情報に誤りがあります。ページをリロードして下さい。",
-"Error deleting contact property." => "連絡先の削除に失敗しました。",
"Contact ID is missing." => "コンタクトIDが見つかりません。",
-"Missing contact id." => "コンタクトIDが設定されていません。",
"No photo path was submitted." => "写真のパスが登録されていません。",
"File doesn't exist:" => "ファイルが存在しません:",
"Error loading image." => "画像の読み込みエラー。",
-"element name is not set." => "要素名が設定されていません。",
-"checksum is not set." => "チェックサムが設定されていません。",
-"Information about vCard is incorrect. Please reload the page: " => "vCardの情報が正しくありません。ページを再読み込みしてください: ",
-"Error updating contact property." => "連絡先の更新に失敗しました。",
-"Cannot update addressbook with an empty name." => "空白の名前でアドレスブックを更新することはできません。",
-"Error updating addressbook." => "アドレスブックの更新に失敗しました。",
+"Error getting contact object." => "コンタクトオブジェクトの取得エラー。",
+"Error getting PHOTO property." => "写真属性の取得エラー。",
+"Error saving contact." => "コンタクトの保存エラー。",
+"Error resizing image" => "画像のリサイズエラー",
+"Error cropping image" => "画像の切り抜きエラー",
+"Error creating temporary image" => "一時画像の生成エラー",
+"Error finding image: " => "画像検索エラー: ",
"Error uploading contacts to storage." => "ストレージへの連絡先のアップロードエラー。",
"There is no error, the file uploaded with success" => "エラーはありません。ファイルのアップロードは成功しました",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "アップロードファイルは php.ini 内の upload_max_filesize の制限を超えています",
@@ -38,9 +42,24 @@
"The uploaded file was only partially uploaded" => "アップロードファイルは一部分だけアップロードされました",
"No file was uploaded" => "ファイルはアップロードされませんでした",
"Missing a temporary folder" => "一時保存フォルダが見つかりません",
+"Couldn't save temporary image: " => "一時的な画像の保存ができませんでした: ",
+"Couldn't load temporary image: " => "一時的な画像の読み込みができませんでした: ",
+"No file was uploaded. Unknown error" => "ファイルは何もアップロードされていません。不明なエラー",
"Contacts" => "連絡先",
-"Drop a VCF file to import contacts." => "連絡先をインポートするVCFファイルをドロップしてください。",
-"Addressbook not found." => "アドレスブックが見つかりませんでした。",
+"Sorry, this functionality has not been implemented yet" => "申し訳ありません。この機能はまだ実装されていません",
+"Not implemented" => "未実装",
+"Couldn't get a valid address." => "有効なアドレスを取得できませんでした。",
+"Error" => "エラー",
+"This property has to be non-empty." => "この属性は空にできません。",
+"Couldn't serialize elements." => "要素をシリアライズできませんでした。",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' は型の引数無しで呼び出されました。bugs.owncloud.org へ報告してください。",
+"Edit name" => "名前を編集",
+"No files selected for upload." => "アップロードするファイルが選択されていません。",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "アップロードしようとしているファイルは、このサーバの最大ファイルアップロードサイズを超えています。",
+"Select type" => "タイプを選択",
+"Result: " => "結果: ",
+" imported, " => " をインポート、 ",
+" failed." => " は失敗しました。",
"This is not your addressbook." => "これはあなたの電話帳ではありません。",
"Contact could not be found." => "連絡先を見つける事ができません。",
"Address" => "住所",
@@ -57,24 +76,44 @@
"Video" => "テレビ電話",
"Pager" => "ポケベル",
"Internet" => "インターネット",
+"Birthday" => "誕生日",
+"Business" => "ビジネス",
+"Clients" => "顧客",
+"Deliverer" => "運送会社",
+"Holidays" => "休日",
+"Ideas" => "アイデア",
+"Journey" => "旅行",
+"Jubilee" => "記念祭",
+"Meeting" => "打ち合わせ",
+"Other" => "その他",
+"Personal" => "個人",
+"Projects" => "プロジェクト",
+"Questions" => "質問",
"{name}'s Birthday" => "{name}の誕生日",
"Contact" => "連絡先",
"Add Contact" => "連絡先の追加",
+"Import" => "インポート",
+"Settings" => "設定",
"Addressbooks" => "電話帳",
-"Configure Address Books" => "アドレスブックを設定",
-"New Address Book" => "新規電話帳",
-"Import from VCF" => "VCFからインポート",
-"CardDav Link" => "CardDAVリンク",
-"Download" => "ダウンロード",
-"Edit" => "編集",
-"Delete" => "削除",
-"Download contact" => "連絡先のダウンロード",
-"Delete contact" => "連絡先の削除",
+"Close" => "閉じる",
+"Keyboard shortcuts" => "キーボードショートカット",
+"Navigation" => "ナビゲーション",
+"Next contact in list" => "リスト内の次のコンタクト",
+"Previous contact in list" => "リスト内の前のコンタクト",
+"Add new contact" => "新しいコンタクトを追加",
+"Add new addressbook" => "新しいアドレスブックを追加",
+"Delete current contact" => "現在のコンタクトを削除",
"Drop photo to upload" => "写真をドロップしてアップロード",
+"Delete current photo" => "現在の写真を削除",
+"Edit current photo" => "現在の写真を編集",
+"Upload new photo" => "新しい写真をアップロード",
+"Select photo from ownCloud" => "ownCloudから写真を選択",
"Edit name details" => "名前の詳細を編集",
+"Delete" => "削除",
"Nickname" => "ニックネーム",
"Enter nickname" => "ニックネームを入力",
-"Birthday" => "誕生日",
+"Web site" => "ウェブサイト",
+"http://www.somesite.com" => "http://www.somesite.com",
"dd-mm-yyyy" => "yyyy-mm-dd",
"Groups" => "グループ",
"Separate groups with commas" => "コンマでグループを分割",
@@ -90,24 +129,20 @@
"Edit address details" => "住所の詳細を編集",
"Add notes here." => "ここにメモを追加。",
"Add field" => "項目を追加",
-"Profile picture" => "プロフィール写真",
"Phone" => "電話番号",
"Note" => "メモ",
-"Delete current photo" => "現在の写真を削除",
-"Edit current photo" => "現在の写真を編集",
-"Upload new photo" => "新しい写真をアップロード",
-"Select photo from ownCloud" => "ownCloudから写真を選択",
+"Download contact" => "連絡先のダウンロード",
+"Delete contact" => "連絡先の削除",
+"The temporary image has been removed from cache." => "一時画像はキャッシュから削除されました。",
"Edit address" => "住所を編集",
"Type" => "種類",
"PO Box" => "私書箱",
"Extended" => "番地2",
-"Street" => "番地1",
"City" => "都市",
"Region" => "都道府県",
"Zipcode" => "郵便番号",
+"Postal code" => "郵便番号",
"Country" => "国名",
-"Edit categories" => "カテゴリを編集",
-"Add" => "追加",
"Addressbook" => "アドレスブック",
"Miss" => "Miss",
"Ms" => "Ms",
@@ -127,26 +162,22 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "アドレスブックの新規作成",
-"Edit Addressbook" => "アドレスブックを編集",
-"Displayname" => "表示名",
-"Active" => "アクティブ",
-"Save" => "保存",
-"Submit" => "送信",
-"Cancel" => "取り消し",
"Import a contacts file" => "コンタクトファイルをインポート",
"Please choose the addressbook" => "アドレスブックを選択してください",
"create a new addressbook" => "新しいアドレスブックを作成",
"Name of new addressbook" => "新しいアドレスブックの名前",
-"Import" => "インポート",
"Importing contacts" => "コンタクトをインポート",
-"Select address book to import to:" => "インポートするアドレスブックを選択:",
-"Select from HD" => "HDから選択",
"You have no contacts in your addressbook." => "アドレスブックに連絡先が登録されていません。",
"Add contact" => "連絡先を追加",
"Configure addressbooks" => "アドレス帳を設定",
+"Enter name" => "名前を入力",
"CardDAV syncing addresses" => "CardDAV同期アドレス",
"more info" => "詳細情報",
"Primary address (Kontact et al)" => "プライマリアドレス(Kontact 他)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "ダウンロード",
+"Edit" => "編集",
+"New Address Book" => "新規電話帳",
+"Save" => "保存",
+"Cancel" => "取り消し"
);
diff --git a/apps/contacts/l10n/ko.php b/apps/contacts/l10n/ko.php
index fcdc1d08c62..f060b419e09 100644
--- a/apps/contacts/l10n/ko.php
+++ b/apps/contacts/l10n/ko.php
@@ -1,35 +1,64 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "주소록을 (비)활성화하는 데 실패했습니다.",
-"There was an error adding the contact." => "연락처를 추가하는 중 오류가 발생하였습니다.",
-"Cannot add empty property." => "빈 속성을 추가할 수 없습니다.",
-"At least one of the address fields has to be filled out." => "최소한 하나의 주소록 항목을 입력해야 합니다.",
-"Error adding contact property." => "연락처 속성을 추가할 수 없습니다.",
+"id is not set." => "아이디가 설정되어 있지 않습니다. ",
+"Cannot update addressbook with an empty name." => "주소록에 이름란이 비어있으면 업데이트를 할 수 없습니다. ",
+"Error updating addressbook." => "주소록을 업데이트할 수 없습니다.",
"No ID provided" => "제공되는 아이디 없음",
"Error setting checksum." => "오류 검사합계 설정",
"No categories selected for deletion." => "삭제 카테고리를 선택하지 않았습니다. ",
"No address books found." => "주소록을 찾을 수 없습니다.",
"No contacts found." => "연락처를 찾을 수 없습니다.",
+"There was an error adding the contact." => "연락처를 추가하는 중 오류가 발생하였습니다.",
+"element name is not set." => "element 이름이 설정되지 않았습니다.",
+"Cannot add empty property." => "빈 속성을 추가할 수 없습니다.",
+"At least one of the address fields has to be filled out." => "최소한 하나의 주소록 항목을 입력해야 합니다.",
+"Trying to add duplicate property: " => "중복 속성 추가 시도: ",
+"Information about vCard is incorrect. Please reload the page." => "vCard 정보가 올바르지 않습니다. 페이지를 새로 고치십시오.",
+"Error deleting contact property." => "연락처 속성을 삭제할 수 없습니다.",
"Missing ID" => "아이디 분실",
-"Cannot add addressbook with an empty name." => "성명란이 비어 주소록에 추가 할 수 없습니다.",
-"Error adding addressbook." => "주소록을 추가할 수 없습니다.",
-"Error activating addressbook." => "주소록을 활성화할 수 없습니다.",
+"Error parsing VCard for ID: \"" => "아이디에 대한 VCard 분석 오류",
+"checksum is not set." => "체크섬이 설정되지 않았습니다.",
+"Information about vCard is incorrect. Please reload the page: " => " vCard에 대한 정보가 잘못되었습니다. 페이지를 다시 로드하세요:",
+"Error updating contact property." => "연락처 속성을 업데이트할 수 없습니다.",
"No contact ID was submitted." => "접속 아이디가 기입되지 않았습니다.",
"Error reading contact photo." => "사진 읽기 오류",
"Error saving temporary file." => "임시 파일을 저장하는 동안 오류가 발생했습니다. ",
"The loading photo is not valid." => "로딩 사진이 유효하지 않습니다. ",
-"id is not set." => "아이디가 설정되어 있지 않습니다. ",
-"Information about vCard is incorrect. Please reload the page." => "vCard 정보가 올바르지 않습니다. 페이지를 새로 고치십시오.",
-"Error deleting contact property." => "연락처 속성을 삭제할 수 없습니다.",
"Contact ID is missing." => "접속 아이디가 없습니다. ",
-"Missing contact id." => "접속 아이디 분실",
+"No photo path was submitted." => "사진 경로가 제출되지 않았습니다. ",
"File doesn't exist:" => "파일이 존재하지 않습니다. ",
"Error loading image." => "로딩 이미지 오류입니다.",
-"Error updating contact property." => "연락처 속성을 업데이트할 수 없습니다.",
-"Error updating addressbook." => "주소록을 업데이트할 수 없습니다.",
+"Error getting contact object." => "연락처 개체를 가져오는 중 오류가 발생했습니다. ",
+"Error getting PHOTO property." => "사진 속성을 가져오는 중 오류가 발생했습니다. ",
+"Error saving contact." => "연락처 저장 중 오류가 발생했습니다.",
+"Error resizing image" => "이미지 크기 조정 중 오류가 발생했습니다.",
+"Error cropping image" => "이미지를 자르던 중 오류가 발생했습니다.",
+"Error creating temporary image" => "임시 이미지를 생성 중 오류가 발생했습니다.",
+"Error finding image: " => "이미지를 찾던 중 오류가 발생했습니다:",
+"Error uploading contacts to storage." => "스토리지 에러 업로드 연락처.",
+"There is no error, the file uploaded with success" => "오류없이 파일업로드 성공.",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "php.ini 형식으로 업로드 된 이 파일은 MAX_FILE_SIZE를 초과하였다.",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "HTML형식으로 업로드 된 이 파일은 MAX_FILE_SIZE를 초과하였다.",
+"The uploaded file was only partially uploaded" => "이 업로드된 파일은 부분적으로만 업로드 되었습니다.",
"No file was uploaded" => "파일이 업로드 되어있지 않습니다",
"Missing a temporary folder" => "임시 폴더 분실",
+"Couldn't save temporary image: " => "임시 이미지를 저장할 수 없습니다:",
+"Couldn't load temporary image: " => "임시 이미지를 불러올 수 없습니다. ",
+"No file was uploaded. Unknown error" => "파일이 업로드 되지 않았습니다. 알 수 없는 오류.",
"Contacts" => "연락처",
-"Addressbook not found." => "주소록을 찾을 수 없습니다.",
+"Sorry, this functionality has not been implemented yet" => "죄송합니다. 이 기능은 아직 구현되지 않았습니다. ",
+"Not implemented" => "구현되지 않음",
+"Couldn't get a valid address." => "유효한 주소를 얻을 수 없습니다.",
+"Error" => "오류",
+"Couldn't serialize elements." => "요소를 직렬화 할 수 없습니다.",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty'가 문서형식이 없이 불려왔습니다. bugs.owncloud.org에 보고해주세요. ",
+"Edit name" => "이름 편집",
+"No files selected for upload." => "업로드를 위한 파일이 선택되지 않았습니다. ",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "이 파일은 이 서버 파일 업로드 최대 용량을 초과 합니다. ",
+"Select type" => "유형 선택",
+"Result: " => "결과:",
+" imported, " => "불러오기,",
+" failed." => "실패.",
"This is not your addressbook." => "내 주소록이 아닙니다.",
"Contact could not be found." => "연락처를 찾을 수 없습니다.",
"Address" => "주소",
@@ -46,24 +75,23 @@
"Video" => "영상 번호",
"Pager" => "호출기",
"Internet" => "인터넷",
+"Birthday" => "생일",
"{name}'s Birthday" => "{이름}의 생일",
"Contact" => "연락처",
"Add Contact" => "연락처 추가",
+"Import" => "입력",
"Addressbooks" => "주소록",
-"Configure Address Books" => "주소록 구성",
-"New Address Book" => "새 주소록",
-"Import from VCF" => "VCF에서 가져오기",
-"CardDav Link" => "CardDav 링크",
-"Download" => "다운로드",
-"Edit" => "편집",
-"Delete" => "삭제",
-"Download contact" => "연락처 다운로드",
-"Delete contact" => "연락처 삭제",
+"Close" => "닫기",
"Drop photo to upload" => "Drop photo to upload",
+"Delete current photo" => "현재 사진 삭제",
+"Edit current photo" => "현재 사진 편집",
+"Upload new photo" => "새로운 사진 업로드",
+"Select photo from ownCloud" => "ownCloud에서 사진 선택",
+"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Format custom, Short name, Full name, Reverse or Reverse with comma",
"Edit name details" => "이름 세부사항을 편집합니다. ",
+"Delete" => "삭제",
"Nickname" => "별명",
"Enter nickname" => "별명 입력",
-"Birthday" => "생일",
"dd-mm-yyyy" => "일-월-년",
"Groups" => "그룹",
"Separate groups with commas" => "쉼표로 그룹 구분",
@@ -71,22 +99,61 @@
"Preferred" => "선호함",
"Please specify a valid email address." => "올바른 이메일 주소를 입력하세요.",
"Enter email address" => "이메일 주소 입력",
+"Delete email address" => "이메일 주소 삭제",
+"Enter phone number" => "전화번호 입력",
+"Delete phone number" => "전화번호 삭제",
+"View on map" => "지도에서 보기",
+"Edit address details" => "상세 주소 수정",
+"Add notes here." => "여기에 노트 추가.",
+"Add field" => "파일 추가",
"Phone" => "전화 번호",
+"Note" => "노트",
+"Download contact" => "연락처 다운로드",
+"Delete contact" => "연락처 삭제",
+"The temporary image has been removed from cache." => "임시 이미지가 캐시에서 제거 되었습니다. ",
+"Edit address" => "주소 수정",
"Type" => "종류",
"PO Box" => "사서함",
"Extended" => "확장",
-"Street" => "거리",
"City" => "도시",
"Region" => "지역",
"Zipcode" => "우편 번호",
"Country" => "국가",
-"Add" => "추가",
"Addressbook" => "주소록",
-"New Addressbook" => "새 주소록",
-"Edit Addressbook" => "주소록 편집",
-"Displayname" => "표시 이름",
-"Active" => "활성",
+"Hon. prefixes" => "Hon. prefixes",
+"Miss" => "Miss",
+"Ms" => "Ms",
+"Mr" => "Mr",
+"Sir" => "Sir",
+"Mrs" => "Mrs",
+"Dr" => "Dr",
+"Given name" => "Given name",
+"Additional names" => "추가 이름",
+"Family name" => "성",
+"Hon. suffixes" => "Hon. suffixes",
+"J.D." => "J.D.",
+"M.D." => "M.D.",
+"D.O." => "D.O.",
+"D.C." => "D.C.",
+"Ph.D." => "Ph.D.",
+"Esq." => "Esq.",
+"Jr." => "Jr.",
+"Sn." => "Sn.",
+"Import a contacts file" => "연락처 파일 입력",
+"Please choose the addressbook" => "주소록을 선택해 주세요.",
+"create a new addressbook" => "새 주소록 만들기",
+"Name of new addressbook" => "새 주소록 이름",
+"Importing contacts" => "연락처 입력",
+"You have no contacts in your addressbook." => "당신의 주소록에는 연락처가 없습니다. ",
+"Add contact" => "연락처 추가",
+"Configure addressbooks" => "주소록 구성",
+"CardDAV syncing addresses" => "CardDAV 주소 동기화",
+"more info" => "더 많은 정보",
+"Primary address (Kontact et al)" => "기본 주소 (Kontact et al)",
+"iOS/OS X" => "iOS/OS X",
+"Download" => "다운로드",
+"Edit" => "편집",
+"New Address Book" => "새 주소록",
"Save" => "저장",
-"Submit" => "보내기",
"Cancel" => "취소"
);
diff --git a/apps/contacts/l10n/lb.php b/apps/contacts/l10n/lb.php
index 361e1cb93e1..90ff22f122c 100644
--- a/apps/contacts/l10n/lb.php
+++ b/apps/contacts/l10n/lb.php
@@ -1,5 +1,31 @@
<?php $TRANSLATIONS = array(
+"Error (de)activating addressbook." => "Fehler beim (de)aktivéieren vum Adressbuch.",
+"id is not set." => "ID ass net gesat.",
+"Error updating addressbook." => "Fehler beim updaten vum Adressbuch.",
+"No ID provided" => "Keng ID uginn",
+"Error setting checksum." => "Fehler beim setzen vun der Checksum.",
+"No categories selected for deletion." => "Keng Kategorien fir ze läschen ausgewielt.",
+"No address books found." => "Keen Adressbuch fonnt.",
+"No contacts found." => "Keng Kontakter fonnt.",
+"There was an error adding the contact." => "Fehler beim bäisetzen vun engem Kontakt.",
+"Cannot add empty property." => "Ka keng eidel Proprietéit bäisetzen.",
+"Trying to add duplicate property: " => "Probéieren duebel Proprietéit bäi ze setzen:",
"Information about vCard is incorrect. Please reload the page." => "Informatioun iwwert vCard ass net richteg. Lued d'Säit wegl nei.",
+"Error deleting contact property." => "Fehler beim läschen vun der Kontakt Proprietéit.",
+"Missing ID" => "ID fehlt",
+"Error updating contact property." => "Fehler beim updaten vun der Kontakt Proprietéit.",
+"No contact ID was submitted." => "Kontakt ID ass net mat geschéckt ginn.",
+"Error reading contact photo." => "Fehler beim liesen vun der Kontakt Photo.",
+"Error saving temporary file." => "Fehler beim späicheren vum temporäre Fichier.",
+"The loading photo is not valid." => "Déi geluede Photo ass net gülteg.",
+"Contact ID is missing." => "Kontakt ID fehlt.",
+"File doesn't exist:" => "Fichier existéiert net:",
+"Error loading image." => "Fehler beim lueden vum Bild.",
+"No file was uploaded" => "Et ass kee Fichier ropgeluede ginn",
+"Contacts" => "Kontakter",
+"Error" => "Fehler",
+"Result: " => "Resultat: ",
+" imported, " => " importéiert, ",
"This is not your addressbook." => "Dat do ass net däin Adressbuch.",
"Contact could not be found." => "Konnt den Kontakt net fannen.",
"Address" => "Adress",
@@ -11,34 +37,53 @@
"Mobile" => "GSM",
"Text" => "SMS",
"Voice" => "Voice",
+"Message" => "Message",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
+"Internet" => "Internet",
+"Birthday" => "Gebuertsdag",
+"{name}'s Birthday" => "{name} säi Gebuertsdag",
"Contact" => "Kontakt",
"Add Contact" => "Kontakt bäisetzen",
"Addressbooks" => "Adressbicher ",
-"New Address Book" => "Neit Adressbuch",
-"CardDav Link" => "CardDav Link",
-"Download" => "Download",
-"Edit" => "Editéieren",
+"Close" => "Zoumaachen",
"Delete" => "Läschen",
-"Delete contact" => "Kontakt läschen",
-"Birthday" => "Gebuertsdag",
+"Nickname" => "Spëtznumm",
+"Enter nickname" => "Gëff e Spëtznumm an",
+"dd-mm-yyyy" => "dd-mm-yyyy",
+"Groups" => "Gruppen",
+"Edit groups" => "Gruppen editéieren",
+"Enter phone number" => "Telefonsnummer aginn",
+"Delete phone number" => "Telefonsnummer läschen",
+"View on map" => "Op da Kaart uweisen",
+"Edit address details" => "Adress Detailer editéieren",
"Phone" => "Telefon",
+"Note" => "Note",
+"Download contact" => "Kontakt eroflueden",
+"Delete contact" => "Kontakt läschen",
"Type" => "Typ",
"PO Box" => "Postleetzuel",
"Extended" => "Erweidert",
-"Street" => "Strooss",
"City" => "Staat",
"Region" => "Regioun",
"Zipcode" => "Postleetzuel",
"Country" => "Land",
-"Add" => "Dobäisetzen",
"Addressbook" => "Adressbuch",
-"New Addressbook" => "Neit Adressbuch",
-"Edit Addressbook" => "Adressbuch editéieren",
-"Displayname" => "Ugewisene Numm",
+"Mr" => "M",
+"Sir" => "Sir",
+"Mrs" => "Mme",
+"Dr" => "Dr",
+"Given name" => "Virnumm",
+"Additional names" => "Weider Nimm",
+"Family name" => "Famillje Numm",
+"Ph.D." => "Ph.D.",
+"Jr." => "Jr.",
+"Sn." => "Sn.",
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Download",
+"Edit" => "Editéieren",
+"New Address Book" => "Neit Adressbuch",
"Save" => "Späicheren",
-"Submit" => "Fortschécken",
"Cancel" => "Ofbriechen"
);
diff --git a/apps/contacts/l10n/lt_LT.php b/apps/contacts/l10n/lt_LT.php
index 435927a247c..eece7fa67cf 100644
--- a/apps/contacts/l10n/lt_LT.php
+++ b/apps/contacts/l10n/lt_LT.php
@@ -1,9 +1,17 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Klaida (de)aktyvuojant adresų knygą.",
+"No contacts found." => "Kontaktų nerasta.",
"There was an error adding the contact." => "Pridedant kontaktą įvyko klaida.",
-"Error adding addressbook." => "Klaida pridedant adresų knygą.",
-"Error activating addressbook." => "Klaida aktyvuojant adresų knygą.",
"Information about vCard is incorrect. Please reload the page." => "Informacija apie vCard yra neteisinga. ",
+"Error reading contact photo." => "Klaida skaitant kontakto nuotrauką.",
+"The loading photo is not valid." => "Netinkama įkeliama nuotrauka.",
+"File doesn't exist:" => "Failas neegzistuoja:",
+"Error loading image." => "Klaida įkeliant nuotrauką.",
+"There is no error, the file uploaded with success" => "Failas įkeltas sėkmingai, be klaidų",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Įkeliamo failo dydis viršija upload_max_filesize nustatymą php.ini",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Įkeliamo failo dydis viršija MAX_FILE_SIZE nustatymą, kuris naudojamas HTML formoje.",
+"The uploaded file was only partially uploaded" => "Failas buvo įkeltas tik dalinai",
+"No file was uploaded" => "Nebuvo įkeltas joks failas",
"Contacts" => "Kontaktai",
"This is not your addressbook." => "Tai ne jūsų adresų knygelė.",
"Contact could not be found." => "Kontaktas nerastas",
@@ -16,34 +24,30 @@
"Mobile" => "Mobilusis",
"Text" => "Žinučių",
"Voice" => "Balso",
+"Message" => "Žinutė",
"Fax" => "Faksas",
"Video" => "Vaizdo",
"Pager" => "Pranešimų gaviklis",
+"Internet" => "Internetas",
+"Birthday" => "Gimtadienis",
"Contact" => "Kontaktas",
"Add Contact" => "Pridėti kontaktą",
"Addressbooks" => "Adresų knygos",
-"New Address Book" => "Nauja adresų knyga",
-"CardDav Link" => "CardDAV nuoroda",
-"Download" => "Atsisiųsti",
-"Edit" => "Keisti",
"Delete" => "Trinti",
+"Nickname" => "Slapyvardis",
+"Phone" => "Telefonas",
"Download contact" => "Atsisųsti kontaktą",
"Delete contact" => "Ištrinti kontaktą",
-"Birthday" => "Gimtadienis",
-"Phone" => "Telefonas",
"Type" => "Tipas",
"PO Box" => "Pašto dėžutė",
-"Street" => "Gatvė",
"City" => "Miestas",
"Region" => "Regionas",
"Zipcode" => "Pašto indeksas",
"Country" => "Šalis",
-"Add" => "Pridėti",
"Addressbook" => "Adresų knyga",
-"New Addressbook" => "Nauja adresų knyga",
-"Edit Addressbook" => "Redaguoti adresų knygą",
-"Displayname" => "Rodomas vardas",
-"Active" => "Aktyvus",
+"Download" => "Atsisiųsti",
+"Edit" => "Keisti",
+"New Address Book" => "Nauja adresų knyga",
"Save" => "Išsaugoti",
"Cancel" => "Atšaukti"
);
diff --git a/apps/contacts/l10n/mk.php b/apps/contacts/l10n/mk.php
index 2b81a5d877e..bdc0e6681f1 100644
--- a/apps/contacts/l10n/mk.php
+++ b/apps/contacts/l10n/mk.php
@@ -1,39 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Грешка (де)активирање на адресарот.",
-"There was an error adding the contact." => "Имаше грешка при додавање на контактот.",
-"Cannot add empty property." => "Неможе да се додаде празна вредност.",
-"At least one of the address fields has to be filled out." => "Барем една од полињата за адреса треба да биде пополнето.",
-"Trying to add duplicate property: " => "Се обидовте да внесете дупликат вредност:",
-"Error adding contact property." => "Грешка при додавање на вредност за контактот.",
+"id is not set." => "ид не е поставено.",
+"Cannot update addressbook with an empty name." => "Неможе да се ажурира адресар со празно име.",
+"Error updating addressbook." => "Грешка при ажурирање на адресарот.",
"No ID provided" => "Нема доставено ИД",
"Error setting checksum." => "Грешка во поставување сума за проверка.",
"No categories selected for deletion." => "Нема избрано категории за бришење.",
"No address books found." => "Не се најдени адресари.",
"No contacts found." => "Не се најдени контакти.",
+"There was an error adding the contact." => "Имаше грешка при додавање на контактот.",
+"element name is not set." => "име за елементот не е поставена.",
+"Cannot add empty property." => "Неможе да се додаде празна вредност.",
+"At least one of the address fields has to be filled out." => "Барем една од полињата за адреса треба да биде пополнето.",
+"Trying to add duplicate property: " => "Се обидовте да внесете дупликат вредност:",
+"Information about vCard is incorrect. Please reload the page." => "Информацијата за vCard не е точна. Ве молам превчитајте ја страницава.",
+"Error deleting contact property." => "Греш при бришење на вредноста за контакт.",
"Missing ID" => "Недостасува ИД",
"Error parsing VCard for ID: \"" => "Грешка при парсирање VCard за ИД: \"",
-"Cannot add addressbook with an empty name." => "Неможе да се внесе адресар со празно име.",
-"Error adding addressbook." => "Грешки при додавање на адресарот.",
-"Error activating addressbook." => "Грешка при активирање на адресарот.",
+"checksum is not set." => "сумата за проверка не е поставена.",
+"Information about vCard is incorrect. Please reload the page: " => "Информацијата за vCard не е точна. Ве молам превчитајте ја страницава:",
+"Something went FUBAR. " => "Нешто се расипа.",
+"Error updating contact property." => "Грешка при ажурирање на вредноста за контакт.",
"No contact ID was submitted." => "Не беше доставено ИД за контакт.",
"Error reading contact photo." => "Грешка во читање на контакт фотографија.",
"Error saving temporary file." => "Грешка во снимање на привремена датотека.",
"The loading photo is not valid." => "Фотографијата која се вчитува е невалидна.",
-"id is not set." => "ид не е поставено.",
-"Information about vCard is incorrect. Please reload the page." => "Информацијата за vCard не е точна. Ве молам превчитајте ја страницава.",
-"Error deleting contact property." => "Греш при бришење на вредноста за контакт.",
"Contact ID is missing." => "ИД за контакт недостасува.",
-"Missing contact id." => "Недостасува ид за контакт.",
"No photo path was submitted." => "Не беше поднесена патека за фотографија.",
"File doesn't exist:" => "Не постои датотеката:",
"Error loading image." => "Грешка во вчитување на слика.",
-"element name is not set." => "име за елементот не е поставена.",
-"checksum is not set." => "сумата за проверка не е поставена.",
-"Information about vCard is incorrect. Please reload the page: " => "Информацијата за vCard не е точна. Ве молам превчитајте ја страницава:",
-"Something went FUBAR. " => "Нешто се расипа.",
-"Error updating contact property." => "Грешка при ажурирање на вредноста за контакт.",
-"Cannot update addressbook with an empty name." => "Неможе да се ажурира адресар со празно име.",
-"Error updating addressbook." => "Грешка при ажурирање на адресарот.",
+"Error getting contact object." => "Грешка при преземањето на контакт објектот,",
+"Error getting PHOTO property." => "Грешка при утврдувањето на карактеристиките на фотографијата.",
+"Error saving contact." => "Грешка при снимање на контактите.",
+"Error resizing image" => "Грешка при скалирање на фотографијата",
+"Error cropping image" => "Грешка при сечење на фотографијата",
+"Error creating temporary image" => "Грешка при креирањето на привремената фотографија",
+"Error finding image: " => "Грешка при наоѓањето на фотографијата:",
"Error uploading contacts to storage." => "Грешка во снимање на контактите на диск.",
"There is no error, the file uploaded with success" => "Датотеката беше успешно подигната.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Големината на датотеката ја надминува upload_max_filesize директивата во php.ini",
@@ -41,9 +43,24 @@
"The uploaded file was only partially uploaded" => "Датотеката беше само делумно подигната.",
"No file was uploaded" => "Не беше подигната датотека.",
"Missing a temporary folder" => "Недостасува привремена папка",
+"Couldn't save temporary image: " => "Не можеше да се сними привремената фотографија:",
+"Couldn't load temporary image: " => "Не можеше да се вчита привремената фотографија:",
+"No file was uploaded. Unknown error" => "Ниту еден фајл не се вчита. Непозната грешка",
"Contacts" => "Контакти",
-"Drop a VCF file to import contacts." => "Довлечкај VCF датотека да се внесат контакти.",
-"Addressbook not found." => "Адресарот не е најден.",
+"Sorry, this functionality has not been implemented yet" => "Жалам, оваа функционалност уште не е имплементирана",
+"Not implemented" => "Не е имплементирано",
+"Couldn't get a valid address." => "Не можев да добијам исправна адреса.",
+"Error" => "Грешка",
+"This property has to be non-empty." => "Својството не смее да биде празно.",
+"Couldn't serialize elements." => "Не може да се серијализираат елементите.",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' повикан без тип на аргументот. Пријавете грешка/проблем на bugs.owncloud.org",
+"Edit name" => "Уреди го името",
+"No files selected for upload." => "Ниту еден фајл не е избран за вчитување.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Датотеката која се обидувате да ја префрлите ја надминува максималната големина дефинирана за пренос на овој сервер.",
+"Select type" => "Одбери тип",
+"Result: " => "Резултат: ",
+" imported, " => "увезено,",
+" failed." => "неуспешно.",
"This is not your addressbook." => "Ова не е во Вашиот адресар.",
"Contact could not be found." => "Контактот неможе да биде најден.",
"Address" => "Адреса",
@@ -60,25 +77,23 @@
"Video" => "Видео",
"Pager" => "Пејџер",
"Internet" => "Интернет",
+"Birthday" => "Роденден",
"{name}'s Birthday" => "Роденден на {name}",
"Contact" => "Контакт",
"Add Contact" => "Додади контакт",
+"Import" => "Внеси",
"Addressbooks" => "Адресари",
-"Configure Address Books" => "Конфигурирај адресар",
-"New Address Book" => "Нов адресар",
-"Import from VCF" => "Внеси од VCF",
-"CardDav Link" => "Врска за CardDav",
-"Download" => "Преземи",
-"Edit" => "Уреди",
-"Delete" => "Избриши",
-"Download contact" => "Преземи го контактот",
-"Delete contact" => "Избриши го контактот",
+"Close" => "Затвои",
"Drop photo to upload" => "Довлечкај фотографија за да се подигне",
+"Delete current photo" => "Избриши моментална фотографија",
+"Edit current photo" => "Уреди моментална фотографија",
+"Upload new photo" => "Подигни нова фотографија",
+"Select photo from ownCloud" => "Изберете фотографија од ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Прилагоден формат, кратко име, цело име, обратно или обратно со запирка",
"Edit name details" => "Уреди детали за име",
+"Delete" => "Избриши",
"Nickname" => "Прекар",
"Enter nickname" => "Внеси прекар",
-"Birthday" => "Роденден",
"dd-mm-yyyy" => "dd-mm-yyyy",
"Groups" => "Групи",
"Separate groups with commas" => "Одвоете ги групите со запирка",
@@ -94,24 +109,19 @@
"Edit address details" => "Уреди детали за адреса",
"Add notes here." => "Внесете забелешки тука.",
"Add field" => "Додади поле",
-"Profile picture" => "Фотографија за профил",
"Phone" => "Телефон",
"Note" => "Забелешка",
-"Delete current photo" => "Избриши моментална фотографија",
-"Edit current photo" => "Уреди моментална фотографија",
-"Upload new photo" => "Подигни нова фотографија",
-"Select photo from ownCloud" => "Изберете фотографија од ownCloud",
+"Download contact" => "Преземи го контактот",
+"Delete contact" => "Избриши го контактот",
+"The temporary image has been removed from cache." => "Привремената слика е отстранета од кешот.",
"Edit address" => "Уреди адреса",
"Type" => "Тип",
"PO Box" => "Поштенски фах",
"Extended" => "Дополнително",
-"Street" => "Улица",
"City" => "Град",
"Region" => "Регион",
"Zipcode" => "Поштенски код",
"Country" => "Држава",
-"Edit categories" => "Уреди категории",
-"Add" => "Додади",
"Addressbook" => "Адресар",
"Hon. prefixes" => "Префикси за титула",
"Miss" => "Г-ца",
@@ -132,26 +142,21 @@
"Esq." => "Esq.",
"Jr." => "Помлад.",
"Sn." => "Постар.",
-"New Addressbook" => "Нов адресар",
-"Edit Addressbook" => "Уреди адресар",
-"Displayname" => "Прикажано име",
-"Active" => "Активно",
-"Save" => "Сними",
-"Submit" => "Прати",
-"Cancel" => "Откажи",
"Import a contacts file" => "Внеси датотека со контакти",
"Please choose the addressbook" => "Ве молам изберете адресар",
"create a new addressbook" => "креирај нов адресар",
"Name of new addressbook" => "Име на новиот адресар",
-"Import" => "Внеси",
"Importing contacts" => "Внесување контакти",
-"Select address book to import to:" => "Изберете адресар да се внесе:",
-"Select from HD" => "Изберете од хард диск",
"You have no contacts in your addressbook." => "Немате контакти во Вашиот адресар.",
"Add contact" => "Додади контакт",
"Configure addressbooks" => "Уреди адресари",
"CardDAV syncing addresses" => "Адреса за синхронизација со CardDAV",
"more info" => "повеќе информации",
"Primary address (Kontact et al)" => "Примарна адреса",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Преземи",
+"Edit" => "Уреди",
+"New Address Book" => "Нов адресар",
+"Save" => "Сними",
+"Cancel" => "Откажи"
);
diff --git a/apps/contacts/l10n/ms_MY.php b/apps/contacts/l10n/ms_MY.php
index 7d8a4c7d124..2fd386f5a81 100644
--- a/apps/contacts/l10n/ms_MY.php
+++ b/apps/contacts/l10n/ms_MY.php
@@ -1,16 +1,66 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Ralat nyahaktif buku alamat.",
+"id is not set." => "ID tidak ditetapkan.",
+"Cannot update addressbook with an empty name." => "Tidak boleh kemaskini buku alamat dengan nama yang kosong.",
+"Error updating addressbook." => "Masalah mengemaskini buku alamat.",
+"No ID provided" => "tiada ID diberi",
+"Error setting checksum." => "Ralat menetapkan checksum.",
+"No categories selected for deletion." => "Tiada kategori dipilih untuk dibuang.",
+"No address books found." => "Tiada buku alamat dijumpai.",
+"No contacts found." => "Tiada kenalan dijumpai.",
"There was an error adding the contact." => "Terdapat masalah menambah maklumat.",
+"element name is not set." => "nama elemen tidak ditetapkan.",
"Cannot add empty property." => "Tidak boleh menambah ruang kosong.",
"At least one of the address fields has to be filled out." => "Sekurangnya satu ruangan alamat perlu diisikan.",
-"Error adding contact property." => "Terdapat masalah menambah maklumat.",
-"Error adding addressbook." => "Masalah menambah buku alamat.",
-"Error activating addressbook." => "Masalah mengaktifkan buku alamat.",
+"Trying to add duplicate property: " => "Cuba untuk letak nilai duplikasi:",
"Information about vCard is incorrect. Please reload the page." => "Maklumat vCard tidak tepat. Sila reload semula halaman ini.",
"Error deleting contact property." => "Masalah memadam maklumat.",
+"Missing ID" => "ID Hilang",
+"Error parsing VCard for ID: \"" => "Ralat VCard untuk ID: \"",
+"checksum is not set." => "checksum tidak ditetapkan.",
+"Information about vCard is incorrect. Please reload the page: " => "Maklumat tentang vCard tidak betul.",
+"Something went FUBAR. " => "Sesuatu tidak betul.",
"Error updating contact property." => "Masalah mengemaskini maklumat.",
-"Error updating addressbook." => "Masalah mengemaskini buku alamat.",
+"No contact ID was submitted." => "Tiada ID kenalan yang diberi.",
+"Error reading contact photo." => "Ralat pada foto kenalan.",
+"Error saving temporary file." => "Ralat menyimpan fail sementara",
+"The loading photo is not valid." => "Foto muatan tidak sah.",
+"Contact ID is missing." => "ID Kenalan telah hilang.",
+"No photo path was submitted." => "Tiada direktori gambar yang diberi.",
+"File doesn't exist:" => "Fail tidak wujud:",
+"Error loading image." => "Ralat pada muatan imej.",
+"Error getting contact object." => "Ralat mendapatkan objek pada kenalan.",
+"Error getting PHOTO property." => "Ralat mendapatkan maklumat gambar.",
+"Error saving contact." => "Ralat menyimpan kenalan.",
+"Error resizing image" => "Ralat mengubah saiz imej",
+"Error cropping image" => "Ralat memotong imej",
+"Error creating temporary image" => "Ralat mencipta imej sementara",
+"Error finding image: " => "Ralat mencari imej: ",
+"Error uploading contacts to storage." => "Ralat memuatnaik senarai kenalan.",
+"There is no error, the file uploaded with success" => "Tiada ralat berlaku, fail berjaya dimuatnaik",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Saiz fail yang dimuatnaik melebihi upload_max_filesize yang ditetapkan dalam php.ini",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Saiz fail yang dimuatnaik melebihi MAX_FILE_SIZE yang ditetapkan dalam borang HTML",
+"The uploaded file was only partially uploaded" => "Fail yang dimuatnaik tidak lengkap",
+"No file was uploaded" => "Tiada fail dimuatnaik",
+"Missing a temporary folder" => "Direktori sementara hilang",
+"Couldn't save temporary image: " => "Tidak boleh menyimpan imej sementara: ",
+"Couldn't load temporary image: " => "Tidak boleh membuka imej sementara: ",
+"No file was uploaded. Unknown error" => "Tiada fail dimuatnaik. Ralat tidak diketahui.",
"Contacts" => "Hubungan-hubungan",
+"Sorry, this functionality has not been implemented yet" => "Maaf, fungsi ini masih belum boleh diguna lagi",
+"Not implemented" => "Tidak digunakan",
+"Couldn't get a valid address." => "Tidak boleh mendapat alamat yang sah.",
+"Error" => "Ralat",
+"This property has to be non-empty." => "Nilai ini tidak boleh kosong.",
+"Couldn't serialize elements." => "Tidak boleh menggabungkan elemen.",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' dipanggil tanpa argumen taip. Sila maklumkan di bugs.owncloud.org",
+"Edit name" => "Ubah nama",
+"No files selected for upload." => "Tiada fail dipilih untuk muatnaik.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Fail yang ingin dimuatnaik melebihi saiz yang dibenarkan.",
+"Select type" => "PIlih jenis",
+"Result: " => "Hasil: ",
+" imported, " => " import, ",
+" failed." => " gagal.",
"This is not your addressbook." => "Ini bukan buku alamat anda.",
"Contact could not be found." => "Hubungan tidak dapat ditemui",
"Address" => "Alamat",
@@ -22,37 +72,91 @@
"Mobile" => "Mudah alih",
"Text" => "Teks",
"Voice" => "Suara",
+"Message" => "Mesej",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Alat Kelui",
+"Internet" => "Internet",
+"Birthday" => "Hari lahir",
+"{name}'s Birthday" => "Hari Lahir {name}",
"Contact" => "Hubungan",
"Add Contact" => "Tambah kenalan",
+"Import" => "Import",
"Addressbooks" => "Senarai Buku Alamat",
-"New Address Book" => "Buku Alamat Baru",
-"CardDav Link" => "Sambungan CardDav",
-"Download" => "Muat naik",
-"Edit" => "Sunting",
+"Close" => "Tutup",
+"Drop photo to upload" => "Letak foto disini untuk muatnaik",
+"Delete current photo" => "Padam foto semasa",
+"Edit current photo" => "Ubah foto semasa",
+"Upload new photo" => "Muatnaik foto baru",
+"Select photo from ownCloud" => "Pilih foto dari ownCloud",
+"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Format bebas, Nama pendek, Nama penuh, Unduran dengan koma",
+"Edit name details" => "Ubah butiran nama",
"Delete" => "Padam",
-"Download contact" => "Muat turun hubungan",
-"Delete contact" => "Padam hubungan",
-"Birthday" => "Hari lahir",
+"Nickname" => "Nama Samaran",
+"Enter nickname" => "Masukkan nama samaran",
+"dd-mm-yyyy" => "dd-mm-yyyy",
+"Groups" => "Kumpulan",
+"Separate groups with commas" => "Asingkan kumpulan dengan koma",
+"Edit groups" => "Ubah kumpulan",
"Preferred" => "Pilihan",
+"Please specify a valid email address." => "Berikan alamat emel yang sah.",
+"Enter email address" => "Masukkan alamat emel",
+"Mail to address" => "Hantar ke alamat",
+"Delete email address" => "Padam alamat emel",
+"Enter phone number" => "Masukkan nombor telefon",
+"Delete phone number" => "Padam nombor telefon",
+"View on map" => "Lihat pada peta",
+"Edit address details" => "Ubah butiran alamat",
+"Add notes here." => "Letak nota disini.",
+"Add field" => "Letak ruangan",
"Phone" => "Telefon",
+"Note" => "Nota",
+"Download contact" => "Muat turun hubungan",
+"Delete contact" => "Padam hubungan",
+"The temporary image has been removed from cache." => "Imej sementara telah dibuang dari cache.",
+"Edit address" => "Ubah alamat",
"Type" => "Jenis",
"PO Box" => "Peti surat",
"Extended" => "Sambungan",
-"Street" => "Jalan",
"City" => "bandar",
"Region" => "Wilayah",
"Zipcode" => "Poskod",
"Country" => "Negara",
-"Add" => "Tambah",
"Addressbook" => "Buku alamat",
-"New Addressbook" => "Buku Alamat Baru",
-"Edit Addressbook" => "Kemaskini Buku Alamat",
-"Displayname" => "Paparan nama",
-"Active" => "Aktif",
+"Hon. prefixes" => "Awalan nama",
+"Miss" => "Cik",
+"Ms" => "Cik",
+"Mr" => "Encik",
+"Sir" => "Tuan",
+"Mrs" => "Puan",
+"Dr" => "Dr",
+"Given name" => "Nama diberi",
+"Additional names" => "Nama tambahan",
+"Family name" => "Nama keluarga",
+"Hon. suffixes" => "Awalan nama",
+"J.D." => "J.D.",
+"M.D." => "M.D.",
+"D.O." => "D.O.",
+"D.C." => "D.C.",
+"Ph.D." => "Ph.D.",
+"Esq." => "Esq.",
+"Jr." => "Jr.",
+"Sn." => "Sn.",
+"Import a contacts file" => "Import fail kenalan",
+"Please choose the addressbook" => "Sila pilih buku alamat",
+"create a new addressbook" => "Cipta buku alamat baru",
+"Name of new addressbook" => "Nama buku alamat",
+"Importing contacts" => "Import senarai kenalan",
+"You have no contacts in your addressbook." => "Anda tidak mempunyai sebarang kenalan didalam buku alamat.",
+"Add contact" => "Letak kenalan",
+"Configure addressbooks" => "Konfigurasi buku alamat",
+"CardDAV syncing addresses" => "alamat selarian CardDAV",
+"more info" => "maklumat lanjut",
+"Primary address (Kontact et al)" => "Alamat utama",
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Muat naik",
+"Edit" => "Sunting",
+"New Address Book" => "Buku Alamat Baru",
"Save" => "Simpan",
-"Submit" => "Hantar",
"Cancel" => "Batal"
);
diff --git a/apps/contacts/l10n/nb_NO.php b/apps/contacts/l10n/nb_NO.php
index 3f7731bede8..4066d670e46 100644
--- a/apps/contacts/l10n/nb_NO.php
+++ b/apps/contacts/l10n/nb_NO.php
@@ -1,39 +1,51 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Et problem oppsto med å (de)aktivere adresseboken.",
-"There was an error adding the contact." => "Et problem oppsto med å legge til kontakten.",
-"Cannot add empty property." => "Kan ikke legge til tomt felt.",
-"At least one of the address fields has to be filled out." => "Minst en av adressefeltene må oppgis.",
-"Error adding contact property." => "Et problem oppsto med å legge til kontaktfeltet.",
+"id is not set." => "id er ikke satt.",
+"Cannot update addressbook with an empty name." => "Kan ikke oppdatere adressebøker uten navn.",
+"Error updating addressbook." => "Et problem oppsto med å oppdatere adresseboken.",
"No ID provided" => "Ingen ID angitt",
"No categories selected for deletion." => "Ingen kategorier valgt for sletting.",
"No address books found." => "Ingen adressebok funnet.",
"No contacts found." => "Ingen kontakter funnet.",
+"There was an error adding the contact." => "Et problem oppsto med å legge til kontakten.",
+"Cannot add empty property." => "Kan ikke legge til tomt felt.",
+"At least one of the address fields has to be filled out." => "Minst en av adressefeltene må oppgis.",
+"Information about vCard is incorrect. Please reload the page." => "Informasjonen om vCard-filen er ikke riktig. Last inn siden på nytt.",
+"Error deleting contact property." => "Et problem oppsto med å fjerne kontaktfeltet.",
"Missing ID" => "Manglende ID",
-"Cannot add addressbook with an empty name." => "Kan ikke legge til en adressebok uten navn.",
-"Error adding addressbook." => "Et problem oppsto med å legge til adresseboken.",
-"Error activating addressbook." => "Et problem oppsto med å aktivere adresseboken.",
+"Something went FUBAR. " => "Noe gikk fryktelig galt.",
+"Error updating contact property." => "Et problem oppsto med å legge til kontaktfeltet.",
"Error reading contact photo." => "Klarte ikke å lese kontaktbilde.",
"Error saving temporary file." => "Klarte ikke å lagre midlertidig fil.",
"The loading photo is not valid." => "Bildet som lastes inn er ikke gyldig.",
-"id is not set." => "id er ikke satt.",
-"Information about vCard is incorrect. Please reload the page." => "Informasjonen om vCard-filen er ikke riktig. Last inn siden på nytt.",
-"Error deleting contact property." => "Et problem oppsto med å fjerne kontaktfeltet.",
-"Missing contact id." => "Mangler kontakt-id.",
+"Contact ID is missing." => "Kontakt-ID mangler.",
"No photo path was submitted." => "Ingen filsti ble lagt inn.",
"File doesn't exist:" => "Filen eksisterer ikke:",
"Error loading image." => "Klarte ikke å laste bilde.",
-"Something went FUBAR. " => "Noe gikk fryktelig galt.",
-"Error updating contact property." => "Et problem oppsto med å legge til kontaktfeltet.",
-"Cannot update addressbook with an empty name." => "Kan ikke oppdatere adressebøker uten navn.",
-"Error updating addressbook." => "Et problem oppsto med å oppdatere adresseboken.",
+"Error saving contact." => "Klarte ikke å lagre kontakt.",
+"Error resizing image" => "Klarte ikke å endre størrelse på bildet",
+"Error cropping image" => "Klarte ikke å beskjære bildet",
+"Error creating temporary image" => "Klarte ikke å lage et midlertidig bilde",
+"Error finding image: " => "Kunne ikke finne bilde:",
+"Error uploading contacts to storage." => "Klarte ikke å laste opp kontakter til lagringsplassen",
"There is no error, the file uploaded with success" => "Pust ut, ingen feil. Filen ble lastet opp problemfritt",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Filen du prøvde å laste opp var større enn grensen upload_max_filesize i php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Filen du prøvde å laste opp var større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet.",
"The uploaded file was only partially uploaded" => "Filen du prøvde å laste opp ble kun delvis lastet opp",
"No file was uploaded" => "Ingen filer ble lastet opp",
"Missing a temporary folder" => "Mangler midlertidig mappe",
+"Couldn't save temporary image: " => "Kunne ikke lagre midlertidig bilde:",
+"Couldn't load temporary image: " => "Kunne ikke laste midlertidig bilde:",
+"No file was uploaded. Unknown error" => "Ingen filer ble lastet opp. Ukjent feil.",
"Contacts" => "Kontakter",
-"Addressbook not found." => "Adresseboken ble ikke funnet.",
+"Error" => "Feil",
+"Edit name" => "Endre navn",
+"No files selected for upload." => "Ingen filer valgt for opplasting.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Filen du prøver å laste opp er for stor.",
+"Select type" => "Velg type",
+"Result: " => "Resultat:",
+" imported, " => "importert,",
+" failed." => "feilet.",
"This is not your addressbook." => "Dette er ikke dine adressebok.",
"Contact could not be found." => "Kontakten ble ikke funnet.",
"Address" => "Adresse",
@@ -50,24 +62,22 @@
"Video" => "Video",
"Pager" => "Pager",
"Internet" => "Internett",
-"{name}'s Birthday" => "bursdagen til {name}",
+"Birthday" => "Bursdag",
+"{name}'s Birthday" => "{name}s bursdag",
"Contact" => "Kontakt",
"Add Contact" => "Ny kontakt",
+"Import" => "Importer",
"Addressbooks" => "Adressebøker",
-"Configure Address Books" => "Konfigurer adressebok",
-"New Address Book" => "Ny adressebok",
-"Import from VCF" => "Importer fra VDF",
-"CardDav Link" => "CardDAV-lenke",
-"Download" => "Hent ned",
-"Edit" => "Rediger",
-"Delete" => "Slett",
-"Download contact" => "Hend ned kontakten",
-"Delete contact" => "Slett kontakt",
+"Close" => "Lukk",
"Drop photo to upload" => "Dra bilder hit for å laste opp",
+"Delete current photo" => "Fjern nåværende bilde",
+"Edit current photo" => "Rediger nåværende bilde",
+"Upload new photo" => "Last opp nytt bilde",
+"Select photo from ownCloud" => "Velg bilde fra ownCloud",
"Edit name details" => "Endre detaljer rundt navn",
+"Delete" => "Slett",
"Nickname" => "Kallenavn",
"Enter nickname" => "Skriv inn kallenavn",
-"Birthday" => "Bursdag",
"dd-mm-yyyy" => "dd-mm-åååå",
"Groups" => "Grupper",
"Separate groups with commas" => "Skill gruppene med komma",
@@ -83,25 +93,21 @@
"Edit address details" => "Endre detaljer rundt adresse",
"Add notes here." => "Legg inn notater her.",
"Add field" => "Legg til felt",
-"Profile picture" => "Profilbilde",
"Phone" => "Telefon",
"Note" => "Notat",
-"Delete current photo" => "Fjern nåværende bilde",
-"Edit current photo" => "Rediger nåværende bilde",
-"Upload new photo" => "Last opp nytt bilde",
-"Select photo from ownCloud" => "Velg bilde fra ownCloud",
+"Download contact" => "Hend ned kontakten",
+"Delete contact" => "Slett kontakt",
+"The temporary image has been removed from cache." => "Det midlertidige bildet er fjernet fra cache.",
"Edit address" => "Endre adresse",
"Type" => "Type",
"PO Box" => "Postboks",
"Extended" => "Utvidet",
-"Street" => "Gate",
"City" => "By",
"Region" => "Området",
"Zipcode" => "Postnummer",
"Country" => "Land",
-"Edit categories" => "Endre kategorier",
-"Add" => "Ny",
"Addressbook" => "Adressebok",
+"Hon. prefixes" => "Ærestitler",
"Miss" => "Frøken",
"Mr" => "Herr",
"Mrs" => "Fru",
@@ -113,23 +119,20 @@
"Ph.D." => "Stipendiat",
"Jr." => "Jr.",
"Sn." => "Sr.",
-"New Addressbook" => "Ny adressebok",
-"Edit Addressbook" => "Endre adressebok",
-"Displayname" => "Visningsnavn",
-"Active" => "Aktiv",
-"Save" => "Lagre",
-"Submit" => "Lagre",
-"Cancel" => "Avbryt",
"Import a contacts file" => "Importer en fil med kontakter.",
"Please choose the addressbook" => "Vennligst velg adressebok",
"create a new addressbook" => "Lag ny adressebok",
"Name of new addressbook" => "Navn på ny adressebok",
-"Import" => "Importer",
"Importing contacts" => "Importerer kontakter",
"You have no contacts in your addressbook." => "Du har ingen kontakter i din adressebok",
"Add contact" => "Ny kontakt",
"Configure addressbooks" => "Konfigurer adressebøker",
"CardDAV syncing addresses" => "Synkroniseringsadresse for CardDAV",
"more info" => "mer info",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Hent ned",
+"Edit" => "Rediger",
+"New Address Book" => "Ny adressebok",
+"Save" => "Lagre",
+"Cancel" => "Avbryt"
);
diff --git a/apps/contacts/l10n/nl.php b/apps/contacts/l10n/nl.php
index fd7e50ba4d5..4a621eec251 100644
--- a/apps/contacts/l10n/nl.php
+++ b/apps/contacts/l10n/nl.php
@@ -1,39 +1,34 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Fout bij het (de)activeren van het adresboek.",
-"There was an error adding the contact." => "Er was een fout bij het toevoegen van het contact.",
-"Cannot add empty property." => "Kan geen lege eigenschap toevoegen.",
-"At least one of the address fields has to be filled out." => "Minstens één van de adresvelden moet ingevuld worden.",
-"Trying to add duplicate property: " => "Eigenschap bestaat al: ",
-"Error adding contact property." => "Fout bij het toevoegen van de contacteigenschap.",
+"id is not set." => "id is niet ingesteld.",
+"Cannot update addressbook with an empty name." => "Kan adresboek zonder naam niet wijzigen",
+"Error updating addressbook." => "Fout bij het updaten van het adresboek.",
"No ID provided" => "Geen ID opgegeven",
"Error setting checksum." => "Instellen controlegetal mislukt",
"No categories selected for deletion." => "Geen categorieën geselecteerd om te verwijderen.",
"No address books found." => "Geen adresboek gevonden",
"No contacts found." => "Geen contracten gevonden",
+"There was an error adding the contact." => "Er was een fout bij het toevoegen van het contact.",
+"element name is not set." => "onderdeel naam is niet opgegeven.",
+"Cannot add empty property." => "Kan geen lege eigenschap toevoegen.",
+"At least one of the address fields has to be filled out." => "Minstens één van de adresvelden moet ingevuld worden.",
+"Trying to add duplicate property: " => "Eigenschap bestaat al: ",
+"Information about vCard is incorrect. Please reload the page." => "Informatie over de vCard is onjuist. Herlaad de pagina.",
+"Error deleting contact property." => "Fout bij het verwijderen van de contacteigenschap.",
"Missing ID" => "Ontbrekend ID",
"Error parsing VCard for ID: \"" => "Fout bij inlezen VCard voor ID: \"",
-"Cannot add addressbook with an empty name." => "Kan geen adresboek toevoegen zonder naam.",
-"Error adding addressbook." => "Fout bij het toevoegen van het adresboek.",
-"Error activating addressbook." => "Fout bij het activeren van het adresboek.",
+"checksum is not set." => "controlegetal is niet opgegeven.",
+"Information about vCard is incorrect. Please reload the page: " => "Informatie over vCard is fout. Herlaad de pagina: ",
+"Something went FUBAR. " => "Er ging iets totaal verkeerd. ",
+"Error updating contact property." => "Fout bij het updaten van de contacteigenschap.",
"No contact ID was submitted." => "Geen contact ID opgestuurd.",
"Error reading contact photo." => "Lezen van contact foto mislukt.",
"Error saving temporary file." => "Tijdelijk bestand opslaan mislukt.",
"The loading photo is not valid." => "De geladen foto is niet goed.",
-"id is not set." => "id is niet ingesteld.",
-"Information about vCard is incorrect. Please reload the page." => "Informatie over de vCard is onjuist. Herlaad de pagina.",
-"Error deleting contact property." => "Fout bij het verwijderen van de contacteigenschap.",
"Contact ID is missing." => "Contact ID ontbreekt.",
-"Missing contact id." => "Ontbrekende contact id.",
"No photo path was submitted." => "Geen fotopad opgestuurd.",
"File doesn't exist:" => "Bestand bestaat niet:",
"Error loading image." => "Fout bij laden plaatje.",
-"element name is not set." => "onderdeel naam is niet opgegeven.",
-"checksum is not set." => "controlegetal is niet opgegeven.",
-"Information about vCard is incorrect. Please reload the page: " => "Informatie over vCard is fout. Herlaad de pagina: ",
-"Something went FUBAR. " => "Er ging iets totaal verkeerd. ",
-"Error updating contact property." => "Fout bij het updaten van de contacteigenschap.",
-"Cannot update addressbook with an empty name." => "Kan adresboek zonder naam niet wijzigen",
-"Error updating addressbook." => "Fout bij het updaten van het adresboek.",
"Error uploading contacts to storage." => "Fout bij opslaan van contacten.",
"There is no error, the file uploaded with success" => "De upload van het bestand is goedgegaan.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Het bestand overschrijdt de upload_max_filesize instelling in php.ini",
@@ -42,8 +37,6 @@
"No file was uploaded" => "Er is geen bestand geüpload",
"Missing a temporary folder" => "Er ontbreekt een tijdelijke map",
"Contacts" => "Contacten",
-"Drop a VCF file to import contacts." => "Sleep een VCF bestand om de contacten te importeren.",
-"Addressbook not found." => "Adresboek niet gevonden.",
"This is not your addressbook." => "Dit is niet uw adresboek.",
"Contact could not be found." => "Contact kon niet worden gevonden.",
"Address" => "Adres",
@@ -60,25 +53,22 @@
"Video" => "Video",
"Pager" => "Pieper",
"Internet" => "Internet",
+"Birthday" => "Verjaardag",
"{name}'s Birthday" => "{name}'s verjaardag",
"Contact" => "Contact",
"Add Contact" => "Contact toevoegen",
+"Import" => "Importeer",
"Addressbooks" => "Adresboeken",
-"Configure Address Books" => "Instellen adresboeken",
-"New Address Book" => "Nieuw Adresboek",
-"Import from VCF" => "Importeer uit VCF",
-"CardDav Link" => "CardDav Link",
-"Download" => "Download",
-"Edit" => "Bewerken",
-"Delete" => "Verwijderen",
-"Download contact" => "Download contact",
-"Delete contact" => "Verwijder contact",
"Drop photo to upload" => "Verwijder foto uit upload",
+"Delete current photo" => "Verwijdere huidige foto",
+"Edit current photo" => "Wijzig huidige foto",
+"Upload new photo" => "Upload nieuwe foto",
+"Select photo from ownCloud" => "Selecteer foto uit ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formateer aangepast, Korte naam, Volledige naam, Achteruit of Achteruit met komma",
"Edit name details" => "Wijzig naam gegevens",
+"Delete" => "Verwijderen",
"Nickname" => "Roepnaam",
"Enter nickname" => "Voer roepnaam in",
-"Birthday" => "Verjaardag",
"dd-mm-yyyy" => "dd-mm-yyyy",
"Groups" => "Groepen",
"Separate groups with commas" => "Gebruik komma bij meerder groepen",
@@ -94,49 +84,38 @@
"Edit address details" => "Wijzig adres gegevens",
"Add notes here." => "Voeg notitie toe",
"Add field" => "Voeg veld toe",
-"Profile picture" => "Profiel foto",
"Phone" => "Telefoon",
"Note" => "Notitie",
-"Delete current photo" => "Verwijdere huidige foto",
-"Edit current photo" => "Wijzig huidige foto",
-"Upload new photo" => "Upload nieuwe foto",
-"Select photo from ownCloud" => "Selecteer foto uit ownCloud",
+"Download contact" => "Download contact",
+"Delete contact" => "Verwijder contact",
"Edit address" => "Wijzig adres",
"Type" => "Type",
"PO Box" => "Postbus",
"Extended" => "Uitgebreide",
-"Street" => "Straat",
"City" => "Stad",
"Region" => "Regio",
"Zipcode" => "Postcode",
"Country" => "Land",
-"Edit categories" => "Wijzig categorieën",
-"Add" => "Voeg toe",
"Addressbook" => "Adresboek",
"Hon. prefixes" => "Hon. prefixes",
"Given name" => "Voornaam",
"Additional names" => "Extra namen",
"Family name" => "Achternaam",
-"New Addressbook" => "Nieuw adresboek",
-"Edit Addressbook" => "Wijzig adresboek",
-"Displayname" => "Weergavenaam",
-"Active" => "Actief",
-"Save" => "Opslaan",
-"Submit" => "Opslaan",
-"Cancel" => "Anuleren",
"Import a contacts file" => "Importeer een contacten bestand",
"Please choose the addressbook" => "Kies een adresboek",
"create a new addressbook" => "Maak een nieuw adresboek",
"Name of new addressbook" => "Naam van nieuw adresboek",
-"Import" => "Importeer",
"Importing contacts" => "Importeren van contacten",
-"Select address book to import to:" => "Selecteer adresboek voor import:",
-"Select from HD" => "Selecteer van schijf",
"You have no contacts in your addressbook." => "Je hebt geen contacten in je adresboek",
"Add contact" => "Contactpersoon toevoegen",
"Configure addressbooks" => "Bewerken adresboeken",
"CardDAV syncing addresses" => "CardDAV synchroniseert de adressen",
"more info" => "meer informatie",
"Primary address (Kontact et al)" => "Standaardadres",
-"iOS/OS X" => "IOS/OS X"
+"iOS/OS X" => "IOS/OS X",
+"Download" => "Download",
+"Edit" => "Bewerken",
+"New Address Book" => "Nieuw Adresboek",
+"Save" => "Opslaan",
+"Cancel" => "Anuleren"
);
diff --git a/apps/contacts/l10n/nn_NO.php b/apps/contacts/l10n/nn_NO.php
index 5b3fc5b1ab3..0a4778283e0 100644
--- a/apps/contacts/l10n/nn_NO.php
+++ b/apps/contacts/l10n/nn_NO.php
@@ -1,15 +1,12 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Ein feil oppstod ved (de)aktivering av adressebok.",
+"Error updating addressbook." => "Eit problem oppstod ved å oppdatere adresseboka.",
"There was an error adding the contact." => "Det kom ei feilmelding då kontakta vart lagt til.",
"Cannot add empty property." => "Kan ikkje leggja til tomt felt.",
"At least one of the address fields has to be filled out." => "Minst eit av adressefelta må fyllast ut.",
-"Error adding contact property." => "Eit problem oppstod ved å leggja til kontakteltet.",
-"Error adding addressbook." => "Eit problem oppstod ved å leggja til adresseboka.",
-"Error activating addressbook." => "Eit problem oppstod ved aktivering av adresseboka.",
"Information about vCard is incorrect. Please reload the page." => "Informasjonen om vCard-et er feil, ver venleg og last sida på nytt.",
"Error deleting contact property." => "Eit problem oppstod ved å slette kontaktfeltet.",
"Error updating contact property." => "Eit problem oppstod ved å endre kontaktfeltet.",
-"Error updating addressbook." => "Eit problem oppstod ved å oppdatere adresseboka.",
"Contacts" => "Kotaktar",
"This is not your addressbook." => "Dette er ikkje di adressebok.",
"Contact could not be found." => "Fann ikkje kontakten.",
@@ -25,34 +22,26 @@
"Fax" => "Faks",
"Video" => "Video",
"Pager" => "Personsøkjar",
+"Birthday" => "Bursdag",
"Contact" => "Kontakt",
"Add Contact" => "Legg til kontakt",
"Addressbooks" => "Adressebøker",
-"New Address Book" => "Ny adressebok",
-"CardDav Link" => "CardDav lenkje",
-"Download" => "Last ned",
-"Edit" => "Endra",
"Delete" => "Slett",
-"Download contact" => "Last ned kontakt",
-"Delete contact" => "Slett kontakt",
-"Birthday" => "Bursdag",
"Preferred" => "Føretrekt",
"Phone" => "Telefonnummer",
+"Download contact" => "Last ned kontakt",
+"Delete contact" => "Slett kontakt",
"Type" => "Skriv",
"PO Box" => "Postboks",
"Extended" => "Utvida",
-"Street" => "Gate",
"City" => "Stad",
"Region" => "Region/fylke",
"Zipcode" => "Postnummer",
"Country" => "Land",
-"Add" => "Legg til",
"Addressbook" => "Adressebok",
-"New Addressbook" => "Ny adressebok",
-"Edit Addressbook" => "Endre adressebok",
-"Displayname" => "Visningsnamn",
-"Active" => "Aktiv",
+"Download" => "Last ned",
+"Edit" => "Endra",
+"New Address Book" => "Ny adressebok",
"Save" => "Lagre",
-"Submit" => "Send",
"Cancel" => "Kanseller"
);
diff --git a/apps/contacts/l10n/pl.php b/apps/contacts/l10n/pl.php
index a99f1906958..5b263240075 100644
--- a/apps/contacts/l10n/pl.php
+++ b/apps/contacts/l10n/pl.php
@@ -1,39 +1,43 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Błąd (de)aktywowania książki adresowej.",
-"There was an error adding the contact." => "Wystąpił błąd podczas dodawania kontaktu.",
-"Cannot add empty property." => "Nie można dodać pustego elementu.",
-"At least one of the address fields has to be filled out." => "Należy wypełnić przynajmniej jedno pole adresu.",
-"Trying to add duplicate property: " => "Próba dodania z duplikowanej właściwości:",
-"Error adding contact property." => "Błąd dodawania elementu.",
+"id is not set." => "id nie ustawione.",
+"Cannot update addressbook with an empty name." => "Nie można zaktualizować książki adresowej z pustą nazwą.",
+"Error updating addressbook." => "Błąd uaktualniania książki adresowej.",
"No ID provided" => "Brak opatrzonego ID ",
"Error setting checksum." => "Błąd ustawień sumy kontrolnej",
"No categories selected for deletion." => "Nie zaznaczono kategorii do usunięcia",
"No address books found." => "Nie znaleziono książek adresowych",
"No contacts found." => "Nie znaleziono kontaktów.",
+"There was an error adding the contact." => "Wystąpił błąd podczas dodawania kontaktu.",
+"element name is not set." => "nazwa elementu nie jest ustawiona.",
+"Could not parse contact: " => "Nie można parsować kontaktu:",
+"Cannot add empty property." => "Nie można dodać pustego elementu.",
+"At least one of the address fields has to be filled out." => "Należy wypełnić przynajmniej jedno pole adresu.",
+"Trying to add duplicate property: " => "Próba dodania z duplikowanej właściwości:",
+"Error adding contact property: " => "Błąd przy dodawaniu właściwości kontaktu:",
+"Information about vCard is incorrect. Please reload the page." => "Informacje o vCard są nieprawidłowe. Proszę odświeżyć stronę.",
+"Error deleting contact property." => "Błąd usuwania elementu.",
"Missing ID" => "Brak ID",
"Error parsing VCard for ID: \"" => "Wystąpił błąd podczas przetwarzania VCard ID: \"",
-"Cannot add addressbook with an empty name." => "Nie można dodać książki adresowej z pusta nazwą",
-"Error adding addressbook." => "Błąd dodawania książki adresowej.",
-"Error activating addressbook." => "Błąd aktywowania książki adresowej.",
+"checksum is not set." => "checksum-a nie ustawiona",
+"Information about vCard is incorrect. Please reload the page: " => "Informacje na temat vCard są niepoprawne. Proszę przeładuj stronę:",
+"Something went FUBAR. " => "Gdyby coś poszło FUBAR.",
+"Error updating contact property." => "Błąd uaktualniania elementu.",
"No contact ID was submitted." => "ID kontaktu nie został utworzony.",
"Error reading contact photo." => "Błąd odczytu zdjęcia kontaktu.",
"Error saving temporary file." => "Wystąpił błąd podczas zapisywania pliku tymczasowego.",
"The loading photo is not valid." => "Wczytywane zdjęcie nie jest poprawne.",
-"id is not set." => "id nie ustawione.",
-"Information about vCard is incorrect. Please reload the page." => "Informacje o vCard są nieprawidłowe. Proszę odświeżyć stronę.",
-"Error deleting contact property." => "Błąd usuwania elementu.",
"Contact ID is missing." => "Brak kontaktu id.",
-"Missing contact id." => "Brak kontaktu id.",
"No photo path was submitted." => "Ścieżka do zdjęcia nie została podana.",
"File doesn't exist:" => "Plik nie istnieje:",
"Error loading image." => "Błąd ładowania obrazu.",
-"element name is not set." => "nazwa elementu nie jest ustawiona.",
-"checksum is not set." => "checksum-a nie ustawiona",
-"Information about vCard is incorrect. Please reload the page: " => "Informacje na temat vCard są niepoprawne. Proszę przeładuj stronę:",
-"Something went FUBAR. " => "Gdyby coś poszło FUBAR.",
-"Error updating contact property." => "Błąd uaktualniania elementu.",
-"Cannot update addressbook with an empty name." => "Nie można zaktualizować książki adresowej z pustą nazwą.",
-"Error updating addressbook." => "Błąd uaktualniania książki adresowej.",
+"Error getting contact object." => "Błąd pobrania kontaktu.",
+"Error getting PHOTO property." => "Błąd uzyskiwania właściwości ZDJĘCIA.",
+"Error saving contact." => "Błąd zapisu kontaktu.",
+"Error resizing image" => "Błąd zmiany rozmiaru obrazu",
+"Error cropping image" => "Błąd przycinania obrazu",
+"Error creating temporary image" => "Błąd utworzenia obrazu tymczasowego",
+"Error finding image: " => "Błąd znajdowanie obrazu: ",
"Error uploading contacts to storage." => "Wystąpił błąd podczas wysyłania kontaktów do magazynu.",
"There is no error, the file uploaded with success" => "Nie było błędów, plik wyczytano poprawnie.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Załadowany plik przekracza wielkość upload_max_filesize w php.ini ",
@@ -41,9 +45,24 @@
"The uploaded file was only partially uploaded" => "Załadowany plik tylko częściowo został wysłany.",
"No file was uploaded" => "Plik nie został załadowany",
"Missing a temporary folder" => "Brak folderu tymczasowego",
+"Couldn't save temporary image: " => "Nie można zapisać obrazu tymczasowego: ",
+"Couldn't load temporary image: " => "Nie można wczytać obrazu tymczasowego: ",
+"No file was uploaded. Unknown error" => "Plik nie został załadowany. Nieznany błąd",
"Contacts" => "Kontakty",
-"Drop a VCF file to import contacts." => "Upuść plik VCF do importu kontaktów.",
-"Addressbook not found." => "Nie znaleziono książki adresowej",
+"Sorry, this functionality has not been implemented yet" => "Niestety, ta funkcja nie została jeszcze zaimplementowana",
+"Not implemented" => "Nie wdrożono",
+"Couldn't get a valid address." => "Nie można pobrać prawidłowego adresu.",
+"Error" => "Błąd",
+"This property has to be non-empty." => "Ta właściwość nie może być pusta.",
+"Couldn't serialize elements." => "Nie można serializować elementów.",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "\"deleteProperty' wywołana bez argumentu typu. Proszę raportuj na bugs.owncloud.org",
+"Edit name" => "Zmień nazwę",
+"No files selected for upload." => "Żadne pliki nie zostały zaznaczone do wysłania.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Plik, który próbujesz wysłać przekracza maksymalny rozmiar pliku przekazywania na tym serwerze.",
+"Select type" => "Wybierz typ",
+"Result: " => "Wynik: ",
+" imported, " => " importowane, ",
+" failed." => " nie powiodło się.",
"This is not your addressbook." => "To nie jest Twoja książka adresowa.",
"Contact could not be found." => "Nie można odnaleźć kontaktu.",
"Address" => "Adres",
@@ -60,25 +79,46 @@
"Video" => "Połączenie wideo",
"Pager" => "Pager",
"Internet" => "Internet",
+"Birthday" => "Urodziny",
+"Business" => "Biznesowe",
+"Clients" => "Klienci",
+"Holidays" => "Święta",
+"Ideas" => "Pomysły",
+"Journey" => "Podróż",
+"Meeting" => "Spotkanie",
+"Other" => "Inne",
+"Personal" => "Osobiste",
+"Projects" => "Projekty",
+"Questions" => "Pytania",
"{name}'s Birthday" => "{name} Urodzony",
"Contact" => "Kontakt",
"Add Contact" => "Dodaj kontakt",
+"Import" => "Import",
+"Settings" => "Ustawienia",
"Addressbooks" => "Książki adresowe",
-"Configure Address Books" => "Konfiguruj książkę adresową",
-"New Address Book" => "Nowa książka adresowa",
-"Import from VCF" => "Importuj z VFC",
-"CardDav Link" => "Wyświetla odnośnik CardDav",
-"Download" => "Pobiera książkę adresową",
-"Edit" => "Edytuje książkę adresową",
-"Delete" => "Usuwa książkę adresową",
-"Download contact" => "Pobiera kontakt",
-"Delete contact" => "Usuwa kontakt",
+"Close" => "Zamknij",
+"Keyboard shortcuts" => "Skróty klawiatury",
+"Navigation" => "Nawigacja",
+"Next contact in list" => "Następny kontakt na liście",
+"Previous contact in list" => "Poprzedni kontakt na liście",
+"Actions" => "Akcje",
+"Refresh contacts list" => "Odśwież listę kontaktów",
+"Add new contact" => "Dodaj nowy kontakt",
+"Add new addressbook" => "Dodaj nowa książkę adresową",
+"Delete current contact" => "Usuń obecny kontakt",
"Drop photo to upload" => "Upuść fotografię aby załadować",
+"Delete current photo" => "Usuń aktualne zdjęcie",
+"Edit current photo" => "Edytuj aktualne zdjęcie",
+"Upload new photo" => "Wczytaj nowe zdjęcie",
+"Select photo from ownCloud" => "Wybierz zdjęcie z ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Format niestandardowy, krótkie nazwy, imię i nazwisko, Odwracać lub Odwrócić z przecinkiem",
"Edit name details" => "Edytuj szczegóły nazwy",
+"Delete" => "Usuwa książkę adresową",
"Nickname" => "Nazwa",
"Enter nickname" => "Wpisz nazwę",
-"Birthday" => "Urodziny",
+"Web site" => "Strona www",
+"http://www.somesite.com" => "http://www.jakasstrona.pl",
+"Go to web site" => "Idż do strony www",
"dd-mm-yyyy" => "dd-mm-rrrr",
"Groups" => "Grupy",
"Separate groups with commas" => "Oddziel grupy przecinkami",
@@ -94,24 +134,21 @@
"Edit address details" => "Edytuj szczegóły adresu",
"Add notes here." => "Dodaj notatkę tutaj.",
"Add field" => "Dodaj pole",
-"Profile picture" => "Zdjęcie profilu",
"Phone" => "Telefon",
"Note" => "Uwaga",
-"Delete current photo" => "Usuń aktualne zdjęcie",
-"Edit current photo" => "Edytuj aktualne zdjęcie",
-"Upload new photo" => "Wczytaj nowe zdjęcie",
-"Select photo from ownCloud" => "Wybierz zdjęcie z ownCloud",
+"Download contact" => "Pobiera kontakt",
+"Delete contact" => "Usuwa kontakt",
+"The temporary image has been removed from cache." => "Tymczasowy obraz został usunięty z pamięci podręcznej.",
"Edit address" => "Edytuj adres",
"Type" => "Typ",
"PO Box" => "Skrzynka pocztowa",
+"Street and number" => "Ulica i numer",
"Extended" => "Rozszerzony",
-"Street" => "Ulica",
"City" => "Miasto",
"Region" => "Region",
"Zipcode" => "Kod pocztowy",
+"Postal code" => "Kod pocztowy",
"Country" => "Kraj",
-"Edit categories" => "Edytuj kategorie",
-"Add" => "Dodaj",
"Addressbook" => "Książka adresowa",
"Hon. prefixes" => "Prefiksy Hon.",
"Miss" => "Panna",
@@ -132,26 +169,24 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "Nowa książka adresowa",
-"Edit Addressbook" => "Edytowanie książki adresowej",
-"Displayname" => "Wyświetlana nazwa",
-"Active" => "Aktywna",
-"Save" => "Zapisz",
-"Submit" => "Potwierdź",
-"Cancel" => "Anuluj",
"Import a contacts file" => "Importuj plik z kontaktami",
"Please choose the addressbook" => "Proszę wybrać książkę adresową",
"create a new addressbook" => "utwórz nową książkę adresową",
"Name of new addressbook" => "Nazwa nowej książki adresowej",
-"Import" => "Import",
"Importing contacts" => "importuj kontakty",
-"Select address book to import to:" => "Zaznacz książkę adresową do importu do:",
-"Select from HD" => "Wybierz z HD",
"You have no contacts in your addressbook." => "Nie masz żadnych kontaktów w swojej książce adresowej.",
"Add contact" => "Dodaj kontakt",
"Configure addressbooks" => "Konfiguruj książkę adresową",
+"Select Address Books" => "Wybierz książki adresowe",
+"Enter name" => "Wpisz nazwę",
+"Enter description" => "Wprowadź opis",
"CardDAV syncing addresses" => "adres do synchronizacji CardDAV",
"more info" => "więcej informacji",
"Primary address (Kontact et al)" => "Pierwszy adres",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Pobiera książkę adresową",
+"Edit" => "Edytuje książkę adresową",
+"New Address Book" => "Nowa książka adresowa",
+"Save" => "Zapisz",
+"Cancel" => "Anuluj"
);
diff --git a/apps/contacts/l10n/pt_BR.php b/apps/contacts/l10n/pt_BR.php
index e0da0a771a5..74b8650c6c7 100644
--- a/apps/contacts/l10n/pt_BR.php
+++ b/apps/contacts/l10n/pt_BR.php
@@ -1,39 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Erro ao (des)ativar agenda.",
-"There was an error adding the contact." => "Ocorreu um erro ao adicionar o contato.",
-"Cannot add empty property." => "Não é possível adicionar propriedade vazia.",
-"At least one of the address fields has to be filled out." => "Pelo menos um dos campos de endereço tem que ser preenchido.",
-"Trying to add duplicate property: " => "Tentando adiciona propriedade duplicada:",
-"Error adding contact property." => "Erro ao adicionar propriedade de contato.",
+"id is not set." => "ID não definido.",
+"Cannot update addressbook with an empty name." => "Não é possível atualizar sua agenda com um nome em branco.",
+"Error updating addressbook." => "Erro ao atualizar agenda.",
"No ID provided" => "Nenhum ID fornecido",
"Error setting checksum." => "Erro ajustando checksum.",
"No categories selected for deletion." => "Nenhum categoria selecionada para remoção.",
"No address books found." => "Nenhuma agenda de endereços encontrada.",
"No contacts found." => "Nenhum contato encontrado.",
+"There was an error adding the contact." => "Ocorreu um erro ao adicionar o contato.",
+"element name is not set." => "nome do elemento não definido.",
+"Cannot add empty property." => "Não é possível adicionar propriedade vazia.",
+"At least one of the address fields has to be filled out." => "Pelo menos um dos campos de endereço tem que ser preenchido.",
+"Trying to add duplicate property: " => "Tentando adiciona propriedade duplicada:",
+"Information about vCard is incorrect. Please reload the page." => "Informações sobre vCard é incorreta. Por favor, recarregue a página.",
+"Error deleting contact property." => "Erro ao excluir propriedade de contato.",
"Missing ID" => "Faltando ID",
"Error parsing VCard for ID: \"" => "Erro de identificação VCard para ID:",
-"Cannot add addressbook with an empty name." => "Não é possivel adicionar uma agenda de endereços com o nome em branco.",
-"Error adding addressbook." => "Erro ao adicionar agenda.",
-"Error activating addressbook." => "Erro ao ativar agenda.",
+"checksum is not set." => "checksum não definido.",
+"Information about vCard is incorrect. Please reload the page: " => "Informação sobre vCard incorreto. Por favor, recarregue a página:",
+"Something went FUBAR. " => "Something went FUBAR. ",
+"Error updating contact property." => "Erro ao atualizar propriedades do contato.",
"No contact ID was submitted." => "Nenhum ID do contato foi submetido.",
"Error reading contact photo." => "Erro de leitura na foto do contato.",
"Error saving temporary file." => "Erro ao salvar arquivo temporário.",
"The loading photo is not valid." => "Foto carregada não é válida.",
-"id is not set." => "ID não definido.",
-"Information about vCard is incorrect. Please reload the page." => "Informações sobre vCard é incorreta. Por favor, recarregue a página.",
-"Error deleting contact property." => "Erro ao excluir propriedade de contato.",
"Contact ID is missing." => "ID do contato está faltando.",
-"Missing contact id." => "Faltando ID do contato.",
"No photo path was submitted." => "Nenhum caminho para foto foi submetido.",
"File doesn't exist:" => "Arquivo não existe:",
"Error loading image." => "Erro ao carregar imagem.",
-"element name is not set." => "nome do elemento não definido.",
-"checksum is not set." => "checksum não definido.",
-"Information about vCard is incorrect. Please reload the page: " => "Informação sobre vCard incorreto. Por favor, recarregue a página:",
-"Something went FUBAR. " => "Something went FUBAR. ",
-"Error updating contact property." => "Erro ao atualizar propriedades do contato.",
-"Cannot update addressbook with an empty name." => "Não é possível atualizar sua agenda com um nome em branco.",
-"Error updating addressbook." => "Erro ao atualizar agenda.",
+"Error getting contact object." => "Erro ao obter propriedade de contato.",
+"Error getting PHOTO property." => "Erro ao obter propriedade da FOTO.",
+"Error saving contact." => "Erro ao salvar contato.",
+"Error resizing image" => "Erro ao modificar tamanho da imagem",
+"Error cropping image" => "Erro ao recortar imagem",
+"Error creating temporary image" => "Erro ao criar imagem temporária",
+"Error finding image: " => "Erro ao localizar imagem:",
"Error uploading contacts to storage." => "Erro enviando contatos para armazenamento.",
"There is no error, the file uploaded with success" => "Arquivo enviado com sucesso",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "O arquivo enviado excede a diretiva upload_max_filesize em php.ini",
@@ -41,9 +43,24 @@
"The uploaded file was only partially uploaded" => "O arquivo foi parcialmente carregado",
"No file was uploaded" => "Nenhum arquivo carregado",
"Missing a temporary folder" => "Diretório temporário não encontrado",
+"Couldn't save temporary image: " => "Não foi possível salvar a imagem temporária:",
+"Couldn't load temporary image: " => "Não foi possível carregar a imagem temporária:",
+"No file was uploaded. Unknown error" => "Nenhum arquivo foi transferido. Erro desconhecido",
"Contacts" => "Contatos",
-"Drop a VCF file to import contacts." => "Arraste um arquivo VCF para importar contatos.",
-"Addressbook not found." => "Lista de endereços não encontrado.",
+"Sorry, this functionality has not been implemented yet" => "Desculpe, esta funcionalidade não foi implementada ainda",
+"Not implemented" => "não implementado",
+"Couldn't get a valid address." => "Não foi possível obter um endereço válido.",
+"Error" => "Erro",
+"This property has to be non-empty." => "Esta propriedade não pode estar vazia.",
+"Couldn't serialize elements." => "Não foi possível serializar elementos.",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "\"deleteProperty\" chamado sem argumento de tipo. Por favor, informe a bugs.owncloud.org",
+"Edit name" => "Editar nome",
+"No files selected for upload." => "Nenhum arquivo selecionado para carregar.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "O arquivo que você está tentando carregar excede o tamanho máximo para este servidor.",
+"Select type" => "Selecione o tipo",
+"Result: " => "Resultado:",
+" imported, " => "importado,",
+" failed." => "falhou.",
"This is not your addressbook." => "Esta não é a sua agenda de endereços.",
"Contact could not be found." => "Contato não pôde ser encontrado.",
"Address" => "Endereço",
@@ -60,25 +77,23 @@
"Video" => "Vídeo",
"Pager" => "Pager",
"Internet" => "Internet",
+"Birthday" => "Aniversário",
"{name}'s Birthday" => "Aniversário de {name}",
"Contact" => "Contato",
"Add Contact" => "Adicionar Contato",
+"Import" => "Importar",
"Addressbooks" => "Agendas de Endereço",
-"Configure Address Books" => "Configurar Livro de Endereços",
-"New Address Book" => "Nova agenda",
-"Import from VCF" => "Importar de VCF",
-"CardDav Link" => "Link CardDav",
-"Download" => "Baixar",
-"Edit" => "Editar",
-"Delete" => "Excluir",
-"Download contact" => "Baixar contato",
-"Delete contact" => "Apagar contato",
+"Close" => "Fechar.",
"Drop photo to upload" => "Arraste a foto para ser carregada",
+"Delete current photo" => "Deletar imagem atual",
+"Edit current photo" => "Editar imagem atual",
+"Upload new photo" => "Carregar nova foto",
+"Select photo from ownCloud" => "Selecionar foto do OwnCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formato personalizado, Nome curto, Nome completo, Inverter ou Inverter com vírgula",
"Edit name details" => "Editar detalhes do nome",
+"Delete" => "Excluir",
"Nickname" => "Apelido",
"Enter nickname" => "Digite o apelido",
-"Birthday" => "Aniversário",
"dd-mm-yyyy" => "dd-mm-aaaa",
"Groups" => "Grupos",
"Separate groups with commas" => "Separe grupos por virgula",
@@ -94,24 +109,19 @@
"Edit address details" => "Editar detalhes de endereço",
"Add notes here." => "Adicionar notas",
"Add field" => "Adicionar campo",
-"Profile picture" => "Imagem do Perfil",
"Phone" => "Telefone",
"Note" => "Nota",
-"Delete current photo" => "Deletar imagem atual",
-"Edit current photo" => "Editar imagem atual",
-"Upload new photo" => "Carregar nova foto",
-"Select photo from ownCloud" => "Selecionar foto do OwnCloud",
+"Download contact" => "Baixar contato",
+"Delete contact" => "Apagar contato",
+"The temporary image has been removed from cache." => "A imagem temporária foi removida cache.",
"Edit address" => "Editar endereço",
"Type" => "Digite",
"PO Box" => "Caixa Postal",
"Extended" => "Estendido",
-"Street" => "Rua",
"City" => "Cidade",
"Region" => "Região",
"Zipcode" => "CEP",
"Country" => "País",
-"Edit categories" => "Editar categorias",
-"Add" => "Adicionar",
"Addressbook" => "Agenda de Endereço",
"Hon. prefixes" => "Exmo. Prefixos ",
"Miss" => "Senhorita",
@@ -132,26 +142,21 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "Nova Agenda de Endereço",
-"Edit Addressbook" => "Editar Agenda de Endereço",
-"Displayname" => "Nome de exibição",
-"Active" => "Ativo",
-"Save" => "Salvar",
-"Submit" => "Enviar",
-"Cancel" => "Cancelar",
"Import a contacts file" => "Importar arquivos de contato.",
"Please choose the addressbook" => "Por favor, selecione uma agenda de endereços",
"create a new addressbook" => "Criar nova agenda de endereços",
"Name of new addressbook" => "Nome da nova agenda de endereços",
-"Import" => "Importar",
"Importing contacts" => "Importar contatos",
-"Select address book to import to:" => "Selecione agenda de endereços para importar ao destino:",
-"Select from HD" => "Selecione do disco rigído",
"You have no contacts in your addressbook." => "Voce não tem contatos em sua agenda de endereços.",
"Add contact" => "Adicionar contatos",
"Configure addressbooks" => "Configurar agenda de endereços",
"CardDAV syncing addresses" => "Sincronizando endereços CardDAV",
"more info" => "leia mais",
"Primary address (Kontact et al)" => "Endereço primário(Kontact et al)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Baixar",
+"Edit" => "Editar",
+"New Address Book" => "Nova agenda",
+"Save" => "Salvar",
+"Cancel" => "Cancelar"
);
diff --git a/apps/contacts/l10n/pt_PT.php b/apps/contacts/l10n/pt_PT.php
index 7a4861abf9d..269e63583fe 100644
--- a/apps/contacts/l10n/pt_PT.php
+++ b/apps/contacts/l10n/pt_PT.php
@@ -1,44 +1,66 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Erro a (des)ativar o livro de endereços",
-"There was an error adding the contact." => "Erro ao adicionar contato",
-"Cannot add empty property." => "Não é possivel adicionar uma propriedade vazia",
-"At least one of the address fields has to be filled out." => "Pelo menos um dos campos de endereço precisa de estar preenchido",
-"Trying to add duplicate property: " => "A tentar adicionar propriedade duplicada: ",
-"Error adding contact property." => "Erro ao adicionar propriedade do contato",
+"id is not set." => "id não está definido",
+"Cannot update addressbook with an empty name." => "Não é possivel actualizar o livro de endereços com o nome vazio.",
+"Error updating addressbook." => "Erro a atualizar o livro de endereços",
"No ID provided" => "Nenhum ID inserido",
"Error setting checksum." => "Erro a definir checksum.",
"No categories selected for deletion." => "Nenhuma categoria selecionada para eliminar.",
"No address books found." => "Nenhum livro de endereços encontrado.",
"No contacts found." => "Nenhum contacto encontrado.",
+"There was an error adding the contact." => "Erro ao adicionar contato",
+"element name is not set." => "o nome do elemento não está definido.",
+"Cannot add empty property." => "Não é possivel adicionar uma propriedade vazia",
+"At least one of the address fields has to be filled out." => "Pelo menos um dos campos de endereço precisa de estar preenchido",
+"Trying to add duplicate property: " => "A tentar adicionar propriedade duplicada: ",
+"Information about vCard is incorrect. Please reload the page." => "A informação sobre o vCard está incorreta. Por favor refresque a página",
+"Error deleting contact property." => "Erro ao apagar propriedade do contato",
"Missing ID" => "Falta ID",
"Error parsing VCard for ID: \"" => "Erro a analisar VCard para o ID: \"",
-"Cannot add addressbook with an empty name." => "Não é possivel adicionar Livro de endereços com nome vazio.",
-"Error adding addressbook." => "Erro ao adicionar livro de endereços",
-"Error activating addressbook." => "Erro ao ativar livro de endereços",
+"checksum is not set." => "Checksum não está definido.",
+"Information about vCard is incorrect. Please reload the page: " => "A informação sobre o VCard está incorrecta. Por favor refresque a página: ",
+"Something went FUBAR. " => "Algo provocou um FUBAR. ",
+"Error updating contact property." => "Erro ao atualizar propriedade do contato",
"No contact ID was submitted." => "Nenhum ID de contacto definido.",
"Error reading contact photo." => "Erro a ler a foto do contacto.",
"Error saving temporary file." => "Erro a guardar ficheiro temporário.",
"The loading photo is not valid." => "A foto carregada não é valida.",
-"id is not set." => "id não está definido",
-"Information about vCard is incorrect. Please reload the page." => "A informação sobre o vCard está incorreta. Por favor refresque a página",
-"Error deleting contact property." => "Erro ao apagar propriedade do contato",
"Contact ID is missing." => "Falta o ID do contacto.",
-"Missing contact id." => "Falta o ID do contacto.",
"No photo path was submitted." => "Nenhum caminho da foto definido.",
"File doesn't exist:" => "O ficheiro não existe:",
"Error loading image." => "Erro a carregar a imagem.",
-"element name is not set." => "o nome do elemento não está definido.",
-"checksum is not set." => "Checksum não está definido.",
-"Information about vCard is incorrect. Please reload the page: " => "A informação sobre o VCard está incorrecta. Por favor refresque a página: ",
-"Something went FUBAR. " => "Algo provocou um FUBAR. ",
-"Error updating contact property." => "Erro ao atualizar propriedade do contato",
-"Cannot update addressbook with an empty name." => "Não é possivel actualizar o livro de endereços com o nome vazio.",
-"Error updating addressbook." => "Erro a atualizar o livro de endereços",
+"Error getting contact object." => "Erro a obter o objecto dos contactos",
+"Error getting PHOTO property." => "Erro a obter a propriedade Foto",
+"Error saving contact." => "Erro a guardar o contacto.",
+"Error resizing image" => "Erro a redimensionar a imagem",
+"Error cropping image" => "Erro a recorar a imagem",
+"Error creating temporary image" => "Erro a criar a imagem temporária",
+"Error finding image: " => "Erro enquanto pesquisava pela imagem: ",
"Error uploading contacts to storage." => "Erro a carregar os contactos para o armazenamento.",
"There is no error, the file uploaded with success" => "Não ocorreu erros, o ficheiro foi submetido com sucesso",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "O tamanho do ficheiro carregado excede o parametro upload_max_filesize em php.ini",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O tamanho do ficheiro carregado ultrapassa o valor MAX_FILE_SIZE definido no formulário HTML",
+"The uploaded file was only partially uploaded" => "O ficheiro seleccionado foi apenas carregado parcialmente",
"No file was uploaded" => "Nenhum ficheiro foi submetido",
+"Missing a temporary folder" => "Está a faltar a pasta temporária",
+"Couldn't save temporary image: " => "Não foi possível guardar a imagem temporária: ",
+"Couldn't load temporary image: " => "Não é possível carregar a imagem temporária: ",
+"No file was uploaded. Unknown error" => "Nenhum ficheiro foi carregado. Erro desconhecido",
"Contacts" => "Contactos",
-"Addressbook not found." => "Livro de endereços não encontrado.",
+"Sorry, this functionality has not been implemented yet" => "Desculpe, esta funcionalidade ainda não está implementada",
+"Not implemented" => "Não implementado",
+"Couldn't get a valid address." => "Não foi possível obter um endereço válido.",
+"Error" => "Erro",
+"This property has to be non-empty." => "Esta propriedade não pode estar vazia.",
+"Couldn't serialize elements." => "Não foi possivel serializar os elementos",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' chamada sem argumento definido. Por favor report o problema em bugs.owncloud.org",
+"Edit name" => "Editar nome",
+"No files selected for upload." => "Nenhum ficheiro seleccionado para enviar.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "O tamanho do ficheiro que está a tentar carregar ultrapassa o limite máximo definido para ficheiros no servidor.",
+"Select type" => "Seleccionar tipo",
+"Result: " => "Resultado: ",
+" imported, " => " importado, ",
+" failed." => " falhou.",
"This is not your addressbook." => "Esta não é a sua lista de contactos",
"Contact could not be found." => "O contacto não foi encontrado",
"Address" => "Morada",
@@ -55,23 +77,23 @@
"Video" => "Vídeo",
"Pager" => "Pager",
"Internet" => "Internet",
+"Birthday" => "Aniversário",
"{name}'s Birthday" => "Aniversário de {name}",
"Contact" => "Contacto",
"Add Contact" => "Adicionar Contacto",
+"Import" => "Importar",
"Addressbooks" => "Livros de endereços",
-"Configure Address Books" => "Configurar livros de endereços",
-"New Address Book" => "Novo livro de endereços",
-"Import from VCF" => "Importar de VCF",
-"CardDav Link" => "Endereço CardDav",
-"Download" => "Transferir",
-"Edit" => "Editar",
-"Delete" => "Apagar",
-"Download contact" => "Transferir contacto",
-"Delete contact" => "Apagar contato",
+"Close" => "Fechar",
+"Drop photo to upload" => "Arraste e solte fotos para carregar",
+"Delete current photo" => "Eliminar a foto actual",
+"Edit current photo" => "Editar a foto actual",
+"Upload new photo" => "Carregar nova foto",
+"Select photo from ownCloud" => "Selecionar uma foto da ownCloud",
+"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formate personalizado, Nome curto, Nome completo, Reverso ou Reverso com virgula",
"Edit name details" => "Editar detalhes do nome",
+"Delete" => "Apagar",
"Nickname" => "Alcunha",
"Enter nickname" => "Introduza alcunha",
-"Birthday" => "Aniversário",
"dd-mm-yyyy" => "dd-mm-aaaa",
"Groups" => "Grupos",
"Separate groups with commas" => "Separe os grupos usando virgulas",
@@ -87,43 +109,54 @@
"Edit address details" => "Editar os detalhes do endereço",
"Add notes here." => "Insira notas aqui.",
"Add field" => "Adicionar campo",
-"Profile picture" => "Foto do perfil",
"Phone" => "Telefone",
"Note" => "Nota",
-"Delete current photo" => "Eliminar a foto actual",
-"Edit current photo" => "Editar a foto actual",
-"Select photo from ownCloud" => "Selecionar uma foto da ownCloud",
+"Download contact" => "Transferir contacto",
+"Delete contact" => "Apagar contato",
+"The temporary image has been removed from cache." => "A imagem temporária foi retirada do cache.",
"Edit address" => "Editar endereço",
"Type" => "Tipo",
"PO Box" => "Apartado",
"Extended" => "Extendido",
-"Street" => "Rua",
"City" => "Cidade",
"Region" => "Região",
"Zipcode" => "Código Postal",
"Country" => "País",
-"Edit categories" => "Editar categorias",
-"Add" => "Adicionar",
"Addressbook" => "Livro de endereços",
+"Hon. prefixes" => "Prefixos honoráveis",
+"Miss" => "Menina",
"Ms" => "Sra",
"Mr" => "Sr",
"Sir" => "Sr",
+"Mrs" => "Senhora",
"Dr" => "Dr",
+"Given name" => "Nome introduzido",
"Additional names" => "Nomes adicionais",
"Family name" => "Nome de familia",
-"New Addressbook" => "Novo livro de endereços",
-"Edit Addressbook" => "Editar livro de endereços",
-"Displayname" => "Nome de exibição",
-"Active" => "Ativo",
-"Save" => "Guardar",
-"Submit" => "Submeter",
-"Cancel" => "Cancelar",
+"Hon. suffixes" => "Sufixos Honoráveis",
+"J.D." => "D.J.",
+"M.D." => "D.M.",
+"D.O." => "Dr.",
+"D.C." => "Dr.",
+"Ph.D." => "Dr.",
+"Esq." => "Esq.",
+"Jr." => "Jr.",
+"Sn." => "r.",
"Import a contacts file" => "Importar um ficheiro de contactos",
"Please choose the addressbook" => "Por favor seleccione o livro de endereços",
"create a new addressbook" => "Criar um novo livro de endereços",
-"Import" => "Importar",
+"Name of new addressbook" => "Nome do novo livro de endereços",
"Importing contacts" => "A importar os contactos",
+"You have no contacts in your addressbook." => "Não tem contactos no seu livro de endereços.",
"Add contact" => "Adicionar contacto",
+"Configure addressbooks" => "Configurar livros de endereços",
+"CardDAV syncing addresses" => "CardDAV a sincronizar endereços",
"more info" => "mais informação",
-"iOS/OS X" => "iOS/OS X"
+"Primary address (Kontact et al)" => "Endereço primario (Kontact et al)",
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Transferir",
+"Edit" => "Editar",
+"New Address Book" => "Novo livro de endereços",
+"Save" => "Guardar",
+"Cancel" => "Cancelar"
);
diff --git a/apps/contacts/l10n/ro.php b/apps/contacts/l10n/ro.php
index 01609756718..15a34db7d73 100644
--- a/apps/contacts/l10n/ro.php
+++ b/apps/contacts/l10n/ro.php
@@ -1,35 +1,30 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "(Dez)activarea agendei a întâmpinat o eroare.",
-"There was an error adding the contact." => "O eroare a împiedicat adăugarea contactului.",
-"Cannot add empty property." => "Nu se poate adăuga un câmp gol.",
-"At least one of the address fields has to be filled out." => "Cel puțin unul din câmpurile adresei trebuie completat.",
-"Error adding contact property." => "Contactul nu a putut fi adăugat.",
+"id is not set." => "ID-ul nu este stabilit",
+"Error updating addressbook." => "Eroare la actualizarea agendei.",
"No ID provided" => "Nici un ID nu a fost furnizat",
"Error setting checksum." => "Eroare la stabilirea sumei de control",
"No categories selected for deletion." => "Nici o categorie selectată pentru ștergere",
"No address books found." => "Nici o carte de adrese găsită",
"No contacts found." => "Nici un contact găsit",
+"There was an error adding the contact." => "O eroare a împiedicat adăugarea contactului.",
+"element name is not set." => "numele elementului nu este stabilit.",
+"Cannot add empty property." => "Nu se poate adăuga un câmp gol.",
+"At least one of the address fields has to be filled out." => "Cel puțin unul din câmpurile adresei trebuie completat.",
+"Information about vCard is incorrect. Please reload the page." => "Informațiile cărții de vizită sunt incorecte. Te rog reîncarcă pagina.",
+"Error deleting contact property." => "Eroare la ștergerea proprietăților contactului.",
"Missing ID" => "ID lipsă",
"Error parsing VCard for ID: \"" => "Eroare la prelucrarea VCard-ului pentru ID:\"",
-"Cannot add addressbook with an empty name." => "Nu e posibil de adăugat o carte de adrese fără nume",
-"Error adding addressbook." => "Agenda nu a putut fi adăugată.",
-"Error activating addressbook." => "Eroare la activarea agendei.",
+"checksum is not set." => "suma de control nu este stabilită.",
+"Error updating contact property." => "Eroare la actualizarea proprietăților contactului.",
"No contact ID was submitted." => "Nici un ID de contact nu a fost transmis",
"Error reading contact photo." => "Eroare la citerea fotografiei de contact",
"Error saving temporary file." => "Eroare la salvarea fișierului temporar.",
"The loading photo is not valid." => "Fotografia care se încarcă nu este validă.",
-"id is not set." => "ID-ul nu este stabilit",
-"Information about vCard is incorrect. Please reload the page." => "Informațiile cărții de vizită sunt incorecte. Te rog reîncarcă pagina.",
-"Error deleting contact property." => "Eroare la ștergerea proprietăților contactului.",
"Contact ID is missing." => "ID-ul de contact lipsește.",
-"Missing contact id." => "ID de contact lipsă.",
"No photo path was submitted." => "Nici o adresă către fotografie nu a fost transmisă",
"File doesn't exist:" => "Fișierul nu există:",
"Error loading image." => "Eroare la încărcarea imaginii.",
-"element name is not set." => "numele elementului nu este stabilit.",
-"checksum is not set." => "suma de control nu este stabilită.",
-"Error updating contact property." => "Eroare la actualizarea proprietăților contactului.",
-"Error updating addressbook." => "Eroare la actualizarea agendei.",
"Contacts" => "Contacte",
"This is not your addressbook." => "Nu se găsește în agendă.",
"Contact could not be found." => "Contactul nu a putut fi găsit.",
@@ -47,21 +42,15 @@
"Video" => "Video",
"Pager" => "Pager",
"Internet" => "Internet",
+"Birthday" => "Zi de naștere",
"{name}'s Birthday" => "Ziua de naștere a {name}",
"Contact" => "Contact",
"Add Contact" => "Adaugă contact",
"Addressbooks" => "Agende",
-"New Address Book" => "Agendă nouă",
-"CardDav Link" => "Legătură CardDev",
-"Download" => "Descarcă",
-"Edit" => "Editează",
-"Delete" => "Șterge",
-"Download contact" => "Descarcă acest contact",
-"Delete contact" => "Șterge contact",
"Edit name details" => "Introdu detalii despre nume",
+"Delete" => "Șterge",
"Nickname" => "Pseudonim",
"Enter nickname" => "Introdu pseudonim",
-"Birthday" => "Zi de naștere",
"dd-mm-yyyy" => "zz-ll-aaaa",
"Groups" => "Grupuri",
"Separate groups with commas" => "Separă grupurile cu virgule",
@@ -72,21 +61,19 @@
"Mail to address" => "Trimite mesaj la e-mail",
"Delete email address" => "Șterge e-mail",
"Phone" => "Telefon",
+"Download contact" => "Descarcă acest contact",
+"Delete contact" => "Șterge contact",
"Type" => "Tip",
"PO Box" => "CP",
"Extended" => "Extins",
-"Street" => "Stradă",
"City" => "Oraș",
"Region" => "Regiune",
"Zipcode" => "Cod poștal",
"Country" => "Țară",
-"Add" => "Adaugă",
"Addressbook" => "Agendă",
-"New Addressbook" => "Agendă nouă",
-"Edit Addressbook" => "Modifică agenda",
-"Displayname" => "Nume afișat",
-"Active" => "Activ",
+"Download" => "Descarcă",
+"Edit" => "Editează",
+"New Address Book" => "Agendă nouă",
"Save" => "Salvează",
-"Submit" => "Trimite",
"Cancel" => "Anulează"
);
diff --git a/apps/contacts/l10n/ru.php b/apps/contacts/l10n/ru.php
index 01a0e2642b9..308325cb531 100644
--- a/apps/contacts/l10n/ru.php
+++ b/apps/contacts/l10n/ru.php
@@ -1,34 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Ошибка (де)активации адресной книги.",
-"There was an error adding the contact." => "Произошла ошибка при добавлении контакта.",
-"Cannot add empty property." => "Невозможно добавить пустой параметр.",
-"At least one of the address fields has to be filled out." => "Как минимум одно поле адреса должно быть заполнено.",
-"Error adding contact property." => "Ошибка добавления информации к контакту.",
+"id is not set." => "id не установлен.",
+"Cannot update addressbook with an empty name." => "Нельзя обновить адресную книгу с пустым именем.",
+"Error updating addressbook." => "Ошибка обновления адресной книги.",
"No ID provided" => "ID не предоставлен",
"Error setting checksum." => "Ошибка установки контрольной суммы.",
"No categories selected for deletion." => "Категории для удаления не установлены.",
"No address books found." => "Адресные книги не найдены.",
"No contacts found." => "Контакты не найдены.",
+"There was an error adding the contact." => "Произошла ошибка при добавлении контакта.",
+"element name is not set." => "имя элемента не установлено.",
+"Cannot add empty property." => "Невозможно добавить пустой параметр.",
+"At least one of the address fields has to be filled out." => "Как минимум одно поле адреса должно быть заполнено.",
+"Trying to add duplicate property: " => "При попытке добавить дубликат:",
+"Information about vCard is incorrect. Please reload the page." => "Информация о vCard некорректна. Пожалуйста, обновите страницу.",
+"Error deleting contact property." => "Ошибка удаления информации из контакта.",
"Missing ID" => "Отсутствует ID",
"Error parsing VCard for ID: \"" => "Ошибка обработки VCard для ID: \"",
-"Cannot add addressbook with an empty name." => "Нельзя добавить адресную книгу без имени.",
-"Error adding addressbook." => "Ошибка добавления адресной книги.",
-"Error activating addressbook." => "Ошибка активации адресной книги.",
+"checksum is not set." => "контрольная сумма не установлена.",
+"Information about vCard is incorrect. Please reload the page: " => "Информация о vCard не корректна. Перезагрузите страницу: ",
+"Something went FUBAR. " => "Что-то пошло FUBAR.",
+"Error updating contact property." => "Ошибка обновления информации контакта.",
+"No contact ID was submitted." => "Нет контакта ID",
"Error reading contact photo." => "Ошибка чтения фотографии контакта.",
"Error saving temporary file." => "Ошибка сохранения временного файла.",
"The loading photo is not valid." => "Загружаемая фотография испорчена.",
-"id is not set." => "id не установлен.",
-"Information about vCard is incorrect. Please reload the page." => "Информация о vCard некорректна. Пожалуйста, обновите страницу.",
-"Error deleting contact property." => "Ошибка удаления информации из контакта.",
"Contact ID is missing." => "ID контакта отсутствует.",
+"No photo path was submitted." => "Нет фото по адресу.",
"File doesn't exist:" => "Файл не существует:",
"Error loading image." => "Ошибка загрузки картинки.",
-"element name is not set." => "имя элемента не установлено.",
-"checksum is not set." => "контрольная сумма не установлена.",
-"Information about vCard is incorrect. Please reload the page: " => "Информация о vCard не корректна. Перезагрузите страницу: ",
-"Error updating contact property." => "Ошибка обновления информации контакта.",
-"Cannot update addressbook with an empty name." => "Нельзя обновить адресную книгу с пустым именем.",
-"Error updating addressbook." => "Ошибка обновления адресной книги.",
+"Error getting contact object." => "Ошибка при получении контактов",
+"Error getting PHOTO property." => "Ошибка при получении ФОТО.",
+"Error saving contact." => "Ошибка при сохранении контактов.",
+"Error resizing image" => "Ошибка изменения размера изображений",
+"Error cropping image" => "Ошибка обрезки изображений",
+"Error creating temporary image" => "Ошибка создания временных изображений",
+"Error finding image: " => "Ошибка поиска изображений:",
"Error uploading contacts to storage." => "Ошибка загрузки контактов в хранилище.",
"There is no error, the file uploaded with success" => "Файл загружен успешно.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Загружаемый файл первосходит значение переменной upload_max_filesize, установленно в php.ini",
@@ -36,8 +43,24 @@
"The uploaded file was only partially uploaded" => "Файл загружен частично",
"No file was uploaded" => "Файл не был загружен",
"Missing a temporary folder" => "Отсутствует временная папка",
+"Couldn't save temporary image: " => "Не удалось сохранить временное изображение:",
+"Couldn't load temporary image: " => "Не удалось загрузить временное изображение:",
+"No file was uploaded. Unknown error" => "Файл не был загружен. Неизвестная ошибка",
"Contacts" => "Контакты",
-"Addressbook not found." => "Адресная книга не найдена.",
+"Sorry, this functionality has not been implemented yet" => "К сожалению, эта функция не была реализована",
+"Not implemented" => "Не реализовано",
+"Couldn't get a valid address." => "Не удалось получить адрес.",
+"Error" => "Ошибка",
+"This property has to be non-empty." => "Это свойство должно быть не пустым.",
+"Couldn't serialize elements." => "Не удалось сериализовать элементы.",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' called without type argument. Please report at bugs.owncloud.org",
+"Edit name" => "Изменить имя",
+"No files selected for upload." => "Нет выбранных файлов для загрузки.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Файл, который вы пытаетесь загрузить превышать максимальный размер загружаемых файлов на этом сервере.",
+"Select type" => "Выберите тип",
+"Result: " => "Результат:",
+" imported, " => "импортировано, ",
+" failed." => "не удалось.",
"This is not your addressbook." => "Это не ваша адресная книга.",
"Contact could not be found." => "Контакт не найден.",
"Address" => "Адрес",
@@ -54,25 +77,26 @@
"Video" => "Видео",
"Pager" => "Пейджер",
"Internet" => "Интернет",
+"Birthday" => "День рождения",
"{name}'s Birthday" => "День рождения {name}",
"Contact" => "Контакт",
"Add Contact" => "Добавить Контакт",
+"Import" => "Импорт",
"Addressbooks" => "Адресные книги",
-"Configure Address Books" => "Настроить Адресную книгу",
-"New Address Book" => "Новая адресная книга",
-"Import from VCF" => "Импортировать из VCF",
-"CardDav Link" => "Ссылка CardDAV",
-"Download" => "Скачать",
-"Edit" => "Редактировать",
-"Delete" => "Удалить",
-"Download contact" => "Скачать контакт",
-"Delete contact" => "Удалить контакт",
+"Close" => "Закрыть",
"Drop photo to upload" => "Перетяните фотографии для загрузки",
+"Delete current photo" => "Удалить текущую фотографию",
+"Edit current photo" => "Редактировать текущую фотографию",
+"Upload new photo" => "Загрузить новую фотографию",
+"Select photo from ownCloud" => "Выбрать фотографию из ownCloud",
+"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Формат Краткое имя, Полное имя",
+"Edit name details" => "Изменить детали имени",
+"Delete" => "Удалить",
"Nickname" => "Псевдоним",
"Enter nickname" => "Введите псевдоним",
-"Birthday" => "День рождения",
"dd-mm-yyyy" => "dd-mm-yyyy",
"Groups" => "Группы",
+"Separate groups with commas" => "Разделить группы запятыми",
"Edit groups" => "Редактировать группы",
"Preferred" => "Предпочитаемый",
"Please specify a valid email address." => "Укажите действительный адрес электронной почты.",
@@ -85,43 +109,54 @@
"Edit address details" => "Ввести детали адреса",
"Add notes here." => "Добавьте заметки здесь.",
"Add field" => "Добавить поле",
-"Profile picture" => "Фото профиля",
"Phone" => "Телефон",
"Note" => "Заметка",
-"Delete current photo" => "Удалить текущую фотографию",
-"Edit current photo" => "Редактировать текущую фотографию",
-"Upload new photo" => "Загрузить новую фотографию",
-"Select photo from ownCloud" => "Выбрать фотографию из ownCloud",
+"Download contact" => "Скачать контакт",
+"Delete contact" => "Удалить контакт",
+"The temporary image has been removed from cache." => "Временный образ был удален из кэша.",
"Edit address" => "Редактировать адрес",
"Type" => "Тип",
"PO Box" => "АО",
"Extended" => "Расширенный",
-"Street" => "Улица",
"City" => "Город",
"Region" => "Область",
"Zipcode" => "Почтовый индекс",
"Country" => "Страна",
-"Edit categories" => "Редактировать категрии",
-"Add" => "Добавить",
"Addressbook" => "Адресная книга",
+"Hon. prefixes" => "Уважительные префиксы",
+"Miss" => "Мисс",
+"Ms" => "Г-жа",
+"Mr" => "Г-н",
+"Sir" => "Сэр",
+"Mrs" => "Г-жа",
+"Dr" => "Доктор",
"Given name" => "Имя",
"Additional names" => "Дополнительные имена (отчество)",
"Family name" => "Фамилия",
-"New Addressbook" => "Новая адресная книга",
-"Edit Addressbook" => "Редактировать адресную книгу",
-"Displayname" => "Отображаемое имя",
-"Active" => "Активно",
-"Save" => "Сохранить",
-"Submit" => "Отправить",
-"Cancel" => "Отменить",
+"Hon. suffixes" => "Hon. suffixes",
+"J.D." => "Уважительные суффиксы",
+"M.D." => "M.D.",
+"D.O." => "D.O.",
+"D.C." => "D.C.",
+"Ph.D." => "Ph.D.",
+"Esq." => "Esq.",
+"Jr." => "Jr.",
+"Sn." => "Sn.",
"Import a contacts file" => "Загрузить файл контактов",
"Please choose the addressbook" => "Выберите адресную книгу",
"create a new addressbook" => "создать новую адресную книгу",
"Name of new addressbook" => "Имя новой адресной книги",
-"Import" => "Импорт",
"Importing contacts" => "Импорт контактов",
-"You have no contacts in your addressbook." => "В адресной книге есть контакты.",
+"You have no contacts in your addressbook." => "В адресной книге нет контактов.",
"Add contact" => "Добавить контакт",
"Configure addressbooks" => "Настроить адресную книгу",
-"more info" => "дополнительная информация"
+"CardDAV syncing addresses" => "CardDAV синхронизации адресов",
+"more info" => "дополнительная информация",
+"Primary address (Kontact et al)" => "Первичный адрес (Kontact и др.)",
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Скачать",
+"Edit" => "Редактировать",
+"New Address Book" => "Новая адресная книга",
+"Save" => "Сохранить",
+"Cancel" => "Отменить"
);
diff --git a/apps/contacts/l10n/sk_SK.php b/apps/contacts/l10n/sk_SK.php
index 79db2dbcf6e..2afbd620916 100644
--- a/apps/contacts/l10n/sk_SK.php
+++ b/apps/contacts/l10n/sk_SK.php
@@ -1,24 +1,30 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Chyba (de)aktivácie adresára.",
-"There was an error adding the contact." => "Vyskytla sa chyba pri pridávaní kontaktu.",
-"element name is not set." => "meno elementu nie je nastavené.",
"id is not set." => "ID nie je nastavené.",
-"Cannot add empty property." => "Nemôžem pridať prázdny údaj.",
-"At least one of the address fields has to be filled out." => "Musí byť uvedený aspoň jeden adresný údaj.",
-"Trying to add duplicate property: " => "Pokúšate sa pridať rovnaký atribút:",
+"Cannot update addressbook with an empty name." => "Nedá sa upraviť adresár s prázdnym menom.",
+"Error updating addressbook." => "Chyba aktualizácie adresára.",
"No ID provided" => "ID nezadané",
"Error setting checksum." => "Chyba pri nastavovaní kontrolného súčtu.",
"No categories selected for deletion." => "Žiadne kategórie neboli vybraté na odstránenie.",
"No address books found." => "Žiadny adresár nenájdený.",
"No contacts found." => "Žiadne kontakty nenájdené.",
+"There was an error adding the contact." => "Vyskytla sa chyba pri pridávaní kontaktu.",
+"element name is not set." => "meno elementu nie je nastavené.",
+"Cannot add empty property." => "Nemôžem pridať prázdny údaj.",
+"At least one of the address fields has to be filled out." => "Musí byť uvedený aspoň jeden adresný údaj.",
+"Trying to add duplicate property: " => "Pokúšate sa pridať rovnaký atribút:",
+"Information about vCard is incorrect. Please reload the page." => "Informácie o vCard sú neplatné. Prosím obnovte stránku.",
+"Error deleting contact property." => "Chyba odstránenia údaju kontaktu.",
"Missing ID" => "Chýba ID",
"Error parsing VCard for ID: \"" => "Chyba pri vyňatí ID z VCard:",
+"checksum is not set." => "kontrolný súčet nie je nastavený.",
+"Information about vCard is incorrect. Please reload the page: " => "Informácia o vCard je nesprávna. Obnovte stránku, prosím.",
+"Something went FUBAR. " => "Niečo sa pokazilo.",
+"Error updating contact property." => "Chyba aktualizovania údaju kontaktu.",
"No contact ID was submitted." => "Nebolo nastavené ID kontaktu.",
"Error reading contact photo." => "Chyba pri čítaní fotky kontaktu.",
"Error saving temporary file." => "Chyba pri ukladaní dočasného súboru.",
"The loading photo is not valid." => "Načítaná fotka je vadná.",
-"Information about vCard is incorrect. Please reload the page." => "Informácie o vCard sú neplatné. Prosím obnovte stránku.",
-"Error deleting contact property." => "Chyba odstránenia údaju kontaktu.",
"Contact ID is missing." => "Chýba ID kontaktu.",
"No photo path was submitted." => "Žiadna fotka nebola poslaná.",
"File doesn't exist:" => "Súbor neexistuje:",
@@ -30,12 +36,6 @@
"Error cropping image" => "Chyba počas orezania obrázku.",
"Error creating temporary image" => "Chyba počas vytvárania dočasného obrázku.",
"Error finding image: " => "Chyba vyhľadania obrázku: ",
-"checksum is not set." => "kontrolný súčet nie je nastavený.",
-"Information about vCard is incorrect. Please reload the page: " => "Informácia o vCard je nesprávna. Obnovte stránku, prosím.",
-"Something went FUBAR. " => "Niečo sa pokazilo.",
-"Error updating contact property." => "Chyba aktualizovania údaju kontaktu.",
-"Cannot update addressbook with an empty name." => "Nedá sa upraviť adresár s prázdnym menom.",
-"Error updating addressbook." => "Chyba aktualizácie adresára.",
"Error uploading contacts to storage." => "Chyba pri ukladaní kontaktov na úložisko.",
"There is no error, the file uploaded with success" => "Nevyskytla sa žiadna chyba, súbor úspešne uložené.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Ukladaný súbor prekračuje nastavenie upload_max_filesize v php.ini",
@@ -51,9 +51,6 @@
"Not implemented" => "Neimplementované",
"Couldn't get a valid address." => "Nemôžem získať platnú adresu.",
"Error" => "Chyba",
-"Contact" => "Kontakt",
-"New" => "Nový",
-"New Contact" => "Nový kontakt",
"This property has to be non-empty." => "Tento parameter nemôže byť prázdny.",
"Couldn't serialize elements." => "Nemôžem previesť prvky.",
"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' zavolané bez argument. Prosím oznámte chybu na bugs.owncloud.org",
@@ -64,7 +61,6 @@
"Result: " => "Výsledok: ",
" imported, " => " importovaných, ",
" failed." => " zlyhaných.",
-"Addressbook not found." => "Adresár sa nenašiel.",
"This is not your addressbook." => "Toto nie je váš adresár.",
"Contact could not be found." => "Kontakt nebol nájdený.",
"Address" => "Adresa",
@@ -90,6 +86,7 @@
"Projects" => "Projekty",
"Questions" => "Otázky",
"{name}'s Birthday" => "Narodeniny {name}",
+"Contact" => "Kontakt",
"Add Contact" => "Pridať Kontakt.",
"Import" => "Importovať",
"Addressbooks" => "Adresáre",
@@ -98,18 +95,11 @@
"Navigation" => "Navigácia",
"Next contact in list" => "Ďalší kontakt v zozname",
"Previous contact in list" => "Predchádzajúci kontakt v zozname",
-"Next/previous addressbook" => "Ďalší/predošlí adresár",
"Actions" => "Akcie",
"Refresh contacts list" => "Obnov zoznam kontaktov",
"Add new contact" => "Pridaj nový kontakt",
"Add new addressbook" => "Pridaj nový adresár",
"Delete current contact" => "Vymaž súčasný kontakt",
-"Configure Address Books" => "Nastaviť adresáre",
-"New Address Book" => "Nový adresár",
-"CardDav Link" => "CardDav odkaz",
-"Download" => "Stiahnuť",
-"Edit" => "Upraviť",
-"Delete" => "Odstrániť",
"Drop photo to upload" => "Pretiahnite sem fotku pre nahratie",
"Delete current photo" => "Odstrániť súčasnú fotku",
"Edit current photo" => "Upraviť súčasnú fotku",
@@ -117,6 +107,7 @@
"Select photo from ownCloud" => "Vybrať fotku z ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Formát vlastný, krátke meno, celé meno, obrátené alebo obrátené s čiarkami",
"Edit name details" => "Upraviť podrobnosti mena",
+"Delete" => "Odstrániť",
"Nickname" => "Prezývka",
"Enter nickname" => "Zadajte prezývku",
"dd-mm-yyyy" => "dd. mm. yyyy",
@@ -170,13 +161,6 @@
"Esq." => "Esq.",
"Jr." => "ml.",
"Sn." => "st.",
-"New Addressbook" => "Nový Adresár",
-"Edit Addressbook" => "Upraviť Adresár",
-"Displayname" => "Zobrazené meno",
-"Active" => "Aktívny",
-"Save" => "Uložiť",
-"Submit" => "Odoslať",
-"Cancel" => "Zrušiť",
"Import a contacts file" => "Importovať súbor kontaktu",
"Please choose the addressbook" => "Prosím zvolte adresár",
"create a new addressbook" => "vytvoriť nový adresár",
@@ -189,5 +173,10 @@
"CardDAV syncing addresses" => "Adresy pre synchronizáciu s CardDAV",
"more info" => "viac informácií",
"Primary address (Kontact et al)" => "Predvolená adresa (Kontakt etc)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Stiahnuť",
+"Edit" => "Upraviť",
+"New Address Book" => "Nový adresár",
+"Save" => "Uložiť",
+"Cancel" => "Zrušiť"
);
diff --git a/apps/contacts/l10n/sl.php b/apps/contacts/l10n/sl.php
index bfba23fabcf..1dc0cef74b5 100644
--- a/apps/contacts/l10n/sl.php
+++ b/apps/contacts/l10n/sl.php
@@ -1,39 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Napaka med (de)aktivacijo imenika.",
-"There was an error adding the contact." => "Med dodajanjem stika je prišlo do napake",
-"Cannot add empty property." => "Ne morem dodati prazne lastnosti.",
-"At least one of the address fields has to be filled out." => "Vsaj eno izmed polj je še potrebno izpolniti.",
-"Trying to add duplicate property: " => "Poskušam dodati podvojeno lastnost:",
-"Error adding contact property." => "Napaka pri dodajanju informacije o stiku.",
+"id is not set." => "id ni nastavljen.",
+"Cannot update addressbook with an empty name." => "Ne morem posodobiti imenika s praznim imenom.",
+"Error updating addressbook." => "Napaka pri posodabljanju imenika.",
"No ID provided" => "ID ni bil podan",
"Error setting checksum." => "Napaka pri nastavljanju nadzorne vsote.",
"No categories selected for deletion." => "Nobena kategorija ni bila izbrana za izbris.",
"No address books found." => "Ni bilo najdenih imenikov.",
"No contacts found." => "Ni bilo najdenih stikov.",
+"There was an error adding the contact." => "Med dodajanjem stika je prišlo do napake",
+"element name is not set." => "ime elementa ni nastavljeno.",
+"Cannot add empty property." => "Ne morem dodati prazne lastnosti.",
+"At least one of the address fields has to be filled out." => "Vsaj eno izmed polj je še potrebno izpolniti.",
+"Trying to add duplicate property: " => "Poskušam dodati podvojeno lastnost:",
+"Information about vCard is incorrect. Please reload the page." => "Informacije o vCard niso pravilne. Prosimo, če ponovno naložite stran.",
+"Error deleting contact property." => "Napaka pri brisanju lastnosti stika.",
"Missing ID" => "Manjkajoč ID",
"Error parsing VCard for ID: \"" => "Napaka pri razčlenjevanju VCard za ID: \"",
-"Cannot add addressbook with an empty name." => "Ne morem dodati imenika s praznim imenom.",
-"Error adding addressbook." => "Napaka pri dodajanju imenika.",
-"Error activating addressbook." => "Napaka pri aktiviranju imenika.",
+"checksum is not set." => "nadzorna vsota ni nastavljena.",
+"Information about vCard is incorrect. Please reload the page: " => "Informacija o vCard je napačna. Prosimo, če ponovno naložite stran: ",
+"Something went FUBAR. " => "Nekaj je šlo v franže. ",
+"Error updating contact property." => "Napaka pri posodabljanju lastnosti stika.",
"No contact ID was submitted." => "ID stika ni bil poslan.",
"Error reading contact photo." => "Napaka pri branju slike stika.",
"Error saving temporary file." => "Napaka pri shranjevanju začasne datoteke.",
"The loading photo is not valid." => "Slika, ki se nalaga ni veljavna.",
-"id is not set." => "id ni nastavljen.",
-"Information about vCard is incorrect. Please reload the page." => "Informacije o vCard niso pravilne. Prosimo, če ponovno naložite stran.",
-"Error deleting contact property." => "Napaka pri brisanju lastnosti stika.",
"Contact ID is missing." => "Manjka ID stika.",
-"Missing contact id." => "Manjka id stika.",
"No photo path was submitted." => "Pot slike ni bila poslana.",
"File doesn't exist:" => "Datoteka ne obstaja:",
"Error loading image." => "Napaka pri nalaganju slike.",
-"element name is not set." => "ime elementa ni nastavljeno.",
-"checksum is not set." => "nadzorna vsota ni nastavljena.",
-"Information about vCard is incorrect. Please reload the page: " => "Informacija o vCard je napačna. Prosimo, če ponovno naložite stran: ",
-"Something went FUBAR. " => "Nekaj je šlo v franže. ",
-"Error updating contact property." => "Napaka pri posodabljanju lastnosti stika.",
-"Cannot update addressbook with an empty name." => "Ne morem posodobiti imenika s praznim imenom.",
-"Error updating addressbook." => "Napaka pri posodabljanju imenika.",
+"Error getting contact object." => "Napaka pri pridobivanju kontakta predmeta.",
+"Error getting PHOTO property." => "Napaka pri pridobivanju lastnosti fotografije.",
+"Error saving contact." => "Napaka pri shranjevanju stika.",
+"Error resizing image" => "Napaka pri spreminjanju velikosti slike",
+"Error cropping image" => "Napaka pri obrezovanju slike",
+"Error creating temporary image" => "Napaka pri ustvarjanju začasne slike",
+"Error finding image: " => "Napaka pri iskanju datoteke: ",
"Error uploading contacts to storage." => "Napaka pri nalaganju stikov v hrambo.",
"There is no error, the file uploaded with success" => "Datoteka je bila uspešno naložena.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Naložena datoteka presega velikost, ki jo določa parameter upload_max_filesize v datoteki php.ini",
@@ -41,9 +43,24 @@
"The uploaded file was only partially uploaded" => "Datoteka je bila le delno naložena",
"No file was uploaded" => "Nobena datoteka ni bila naložena",
"Missing a temporary folder" => "Manjka začasna mapa",
+"Couldn't save temporary image: " => "Začasne slike ni bilo mogoče shraniti: ",
+"Couldn't load temporary image: " => "Začasne slike ni bilo mogoče naložiti: ",
+"No file was uploaded. Unknown error" => "Nobena datoteka ni bila naložena. Neznana napaka",
"Contacts" => "Stiki",
-"Drop a VCF file to import contacts." => "Za uvoz stikov spustite VCF datoteko tukaj.",
-"Addressbook not found." => "Imenik ni bil najden.",
+"Sorry, this functionality has not been implemented yet" => "Žal ta funkcionalnost še ni podprta",
+"Not implemented" => "Ni podprto",
+"Couldn't get a valid address." => "Ne morem dobiti veljavnega naslova.",
+"Error" => "Napaka",
+"This property has to be non-empty." => "Ta lastnost ne sme biti prazna",
+"Couldn't serialize elements." => "Predmetov ni bilo mogoče dati v zaporedje.",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "\"deleteProperty\" je bila klicana brez vrste argumenta. Prosimo, če oddate poročilo o napaki na bugs.owncloud.org",
+"Edit name" => "Uredi ime",
+"No files selected for upload." => "Nobena datoteka ni bila izbrana za nalaganje.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteka, ki jo poskušate naložiti, presega največjo dovoljeno velikost za nalaganje na tem strežniku.",
+"Select type" => "Izberite vrsto",
+"Result: " => "Rezultati: ",
+" imported, " => " uvoženih, ",
+" failed." => " je spodletelo.",
"This is not your addressbook." => "To ni vaš imenik.",
"Contact could not be found." => "Stika ni bilo mogoče najti.",
"Address" => "Naslov",
@@ -60,25 +77,23 @@
"Video" => "Video",
"Pager" => "Pozivnik",
"Internet" => "Internet",
+"Birthday" => "Rojstni dan",
"{name}'s Birthday" => "{name} - rojstni dan",
"Contact" => "Stik",
"Add Contact" => "Dodaj stik",
+"Import" => "Uvozi",
"Addressbooks" => "Imeniki",
-"Configure Address Books" => "Nastavi imenike",
-"New Address Book" => "Nov imenik",
-"Import from VCF" => "Uvozi iz VCF",
-"CardDav Link" => "CardDav povezava",
-"Download" => "Prenesi",
-"Edit" => "Uredi",
-"Delete" => "Izbriši",
-"Download contact" => "Prenesi stik",
-"Delete contact" => "Izbriši stik",
+"Close" => "Zapri",
"Drop photo to upload" => "Spustite sliko tukaj, da bi jo naložili",
+"Delete current photo" => "Izbriši trenutno sliko",
+"Edit current photo" => "Uredi trenutno sliko",
+"Upload new photo" => "Naloži novo sliko",
+"Select photo from ownCloud" => "Izberi sliko iz ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Format po meri, Kratko ime, Polno ime, Obratno ali Obratno z vejico",
"Edit name details" => "Uredite podrobnosti imena",
+"Delete" => "Izbriši",
"Nickname" => "Vzdevek",
"Enter nickname" => "Vnesite vzdevek",
-"Birthday" => "Rojstni dan",
"dd-mm-yyyy" => "dd. mm. yyyy",
"Groups" => "Skupine",
"Separate groups with commas" => "Skupine ločite z vejicami",
@@ -94,24 +109,19 @@
"Edit address details" => "Uredi podrobnosti",
"Add notes here." => "Opombe dodajte tukaj.",
"Add field" => "Dodaj polje",
-"Profile picture" => "Slika profila",
"Phone" => "Telefon",
"Note" => "Opomba",
-"Delete current photo" => "Izbriši trenutno sliko",
-"Edit current photo" => "Uredi trenutno sliko",
-"Upload new photo" => "Naloži novo sliko",
-"Select photo from ownCloud" => "Izberi sliko iz ownCloud",
+"Download contact" => "Prenesi stik",
+"Delete contact" => "Izbriši stik",
+"The temporary image has been removed from cache." => "Začasna slika je bila odstranjena iz predpomnilnika.",
"Edit address" => "Uredi naslov",
"Type" => "Vrsta",
"PO Box" => "Poštni predal",
"Extended" => "Razširjeno",
-"Street" => "Ulica",
"City" => "Mesto",
"Region" => "Regija",
"Zipcode" => "Poštna št.",
"Country" => "Dežela",
-"Edit categories" => "Uredi kategorije",
-"Add" => "Dodaj",
"Addressbook" => "Imenik",
"Hon. prefixes" => "Predpone",
"Miss" => "gdč.",
@@ -132,26 +142,21 @@
"Esq." => "Esq.",
"Jr." => "mlajši",
"Sn." => "starejši",
-"New Addressbook" => "Nov imenik",
-"Edit Addressbook" => "Uredi imenik",
-"Displayname" => "Ime za prikaz",
-"Active" => "Aktiven",
-"Save" => "Shrani",
-"Submit" => "Potrdi",
-"Cancel" => "Prekliči",
"Import a contacts file" => "Uvozi datoteko s stiki",
"Please choose the addressbook" => "Prosimo, če izberete imenik",
"create a new addressbook" => "Ustvari nov imenik",
"Name of new addressbook" => "Ime novega imenika",
-"Import" => "Uvozi",
"Importing contacts" => "Uvažam stike",
-"Select address book to import to:" => "Izberite imenik v katerega boste uvažali:",
-"Select from HD" => "Izberi iz HD",
"You have no contacts in your addressbook." => "V vašem imeniku ni stikov.",
"Add contact" => "Dodaj stik",
"Configure addressbooks" => "Nastavi imenike",
"CardDAV syncing addresses" => "CardDAV naslovi za sinhronizacijo",
"more info" => "več informacij",
"Primary address (Kontact et al)" => "Primarni naslov (za kontakt et al)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "Prenesi",
+"Edit" => "Uredi",
+"New Address Book" => "Nov imenik",
+"Save" => "Shrani",
+"Cancel" => "Prekliči"
);
diff --git a/apps/contacts/l10n/sr.php b/apps/contacts/l10n/sr.php
index aad88f3603c..ad8e1c28fb8 100644
--- a/apps/contacts/l10n/sr.php
+++ b/apps/contacts/l10n/sr.php
@@ -15,33 +15,26 @@
"Fax" => "Факс",
"Video" => "Видео",
"Pager" => "Пејџер",
+"Birthday" => "Рођендан",
"Contact" => "Контакт",
"Add Contact" => "Додај контакт",
"Addressbooks" => "Адресар",
-"New Address Book" => "Нови адресар",
-"Download" => "Преузимање",
-"Edit" => "Уреди",
"Delete" => "Обриши",
-"Download contact" => "Преузми контакт",
-"Delete contact" => "Обриши контакт",
-"Birthday" => "Рођендан",
"Preferred" => "Пожељан",
"Phone" => "Телефон",
+"Download contact" => "Преузми контакт",
+"Delete contact" => "Обриши контакт",
"Type" => "Тип",
"PO Box" => "Поштански број",
"Extended" => "Прошири",
-"Street" => "Улица",
"City" => "Град",
"Region" => "Регија",
"Zipcode" => "Зип код",
"Country" => "Земља",
-"Add" => "Додај",
"Addressbook" => "Адресар",
-"New Addressbook" => "Нови адресар",
-"Edit Addressbook" => "Уреди адресар",
-"Displayname" => "Приказано име",
-"Active" => "Активан",
+"Download" => "Преузимање",
+"Edit" => "Уреди",
+"New Address Book" => "Нови адресар",
"Save" => "Сними",
-"Submit" => "Пошаљи",
"Cancel" => "Откажи"
);
diff --git a/apps/contacts/l10n/sr@latin.php b/apps/contacts/l10n/sr@latin.php
index a76c1047907..3d0c0d2b8fc 100644
--- a/apps/contacts/l10n/sr@latin.php
+++ b/apps/contacts/l10n/sr@latin.php
@@ -14,16 +14,15 @@
"Fax" => "Faks",
"Video" => "Video",
"Pager" => "Pejdžer",
+"Birthday" => "Rođendan",
"Add Contact" => "Dodaj kontakt",
-"Edit" => "Uredi",
"Delete" => "Obriši",
-"Birthday" => "Rođendan",
"Phone" => "Telefon",
"PO Box" => "Poštanski broj",
"Extended" => "Proširi",
-"Street" => "Ulica",
"City" => "Grad",
"Region" => "Regija",
"Zipcode" => "Zip kod",
-"Country" => "Zemlja"
+"Country" => "Zemlja",
+"Edit" => "Uredi"
);
diff --git a/apps/contacts/l10n/sv.php b/apps/contacts/l10n/sv.php
index bb8f0d0a300..f470a338b6a 100644
--- a/apps/contacts/l10n/sv.php
+++ b/apps/contacts/l10n/sv.php
@@ -1,37 +1,42 @@
<?php $TRANSLATIONS = array(
-"Error (de)activating addressbook." => "Fel när (av)aktivera adressbok",
-"There was an error adding the contact." => "Det uppstod ett fel när kontakt skulle läggas till",
+"Error (de)activating addressbook." => "Fel (av)aktivera adressbok.",
"id is not set." => "ID är inte satt.",
-"Could not parse contact: " => "Kunde inte läsa kontakt:",
-"Cannot add empty property." => "Kan inte lägga till en tom egenskap",
-"At least one of the address fields has to be filled out." => "Minst ett fält måste fyllas i",
-"Error adding contact property: " => "Kunde inte lägga till egenskap för kontakt:",
+"Cannot update addressbook with an empty name." => "Kan inte uppdatera adressboken med ett tomt namn.",
+"Error updating addressbook." => "Fel uppstod när adressbok skulle uppdateras.",
"No ID provided" => "Inget ID angett",
"Error setting checksum." => "Fel uppstod när kontrollsumma skulle sättas.",
"No categories selected for deletion." => "Inga kategorier valda för borttaging",
"No address books found." => "Ingen adressbok funnen.",
"No contacts found." => "Inga kontakter funna.",
+"There was an error adding the contact." => "Det uppstod ett fel när kontakten skulle läggas till.",
+"element name is not set." => "elementnamn ej angett.",
+"Could not parse contact: " => "Kunde inte läsa kontakt:",
+"Cannot add empty property." => "Kan inte lägga till en tom egenskap.",
+"At least one of the address fields has to be filled out." => "Minst ett fält måste fyllas i.",
+"Error adding contact property: " => "Kunde inte lägga till egenskap för kontakt:",
+"Information about vCard is incorrect. Please reload the page." => "Information om vCard är felaktigt. Vänligen ladda om sidan.",
+"Error deleting contact property." => "Fel uppstod när kontaktegenskap skulle tas bort.",
"Missing ID" => "ID saknas",
+"Error parsing VCard for ID: \"" => "Fel vid läsning av VCard för ID: \"",
+"checksum is not set." => "kontrollsumma är inte satt.",
+"Information about vCard is incorrect. Please reload the page: " => "Informationen om vCard är fel. Ladda om sidan:",
+"Something went FUBAR. " => "Något gick fel.",
+"Error updating contact property." => "Fel uppstod när kontaktegenskap skulle uppdateras.",
"No contact ID was submitted." => "Inget kontakt-ID angavs.",
-"Error reading contact photo." => "Fel uppstod när ",
+"Error reading contact photo." => "Fel uppstod vid läsning av kontaktfoto.",
"Error saving temporary file." => "Fel uppstod när temporär fil skulle sparas.",
"The loading photo is not valid." => "Det laddade fotot är inte giltigt.",
-"Information about vCard is incorrect. Please reload the page." => "Information om vCard är felaktigt. Vänligen ladda om sidan.",
-"Error deleting contact property." => "Fel uppstod när kontaktegenskap skulle tas bort",
"Contact ID is missing." => "Kontakt-ID saknas.",
"No photo path was submitted." => "Ingen sökväg till foto angavs.",
"File doesn't exist:" => "Filen existerar inte.",
"Error loading image." => "Fel uppstod när bild laddades.",
+"Error getting contact object." => "Fel vid hämtning av kontakt.",
+"Error getting PHOTO property." => "Fel vid hämtning av egenskaper för FOTO.",
"Error saving contact." => "Fel vid sparande av kontakt.",
"Error resizing image" => "Fel vid storleksförändring av bilden",
"Error cropping image" => "Fel vid beskärning av bilden",
"Error creating temporary image" => "Fel vid skapande av tillfällig bild",
-"Error finding image: " => "Kunde inte hitta bild",
-"checksum is not set." => "kontrollsumma är inte satt.",
-"Information about vCard is incorrect. Please reload the page: " => "Informationen om vCard är fel. Ladda om sidan:",
-"Error updating contact property." => "Fel uppstod när kontaktegenskap skulle uppdateras",
-"Cannot update addressbook with an empty name." => "Kan inte uppdatera adressboken med ett tomt namn.",
-"Error updating addressbook." => "Fel uppstod när adressbok skulle uppdateras",
+"Error finding image: " => "Kunde inte hitta bild:",
"Error uploading contacts to storage." => "Fel uppstod när kontakt skulle lagras.",
"There is no error, the file uploaded with success" => "Inga fel uppstod. Filen laddades upp utan problem.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Den uppladdade filen överskrider upload_max_filesize direktivet i php.ini",
@@ -47,9 +52,6 @@
"Not implemented" => "Inte införd",
"Couldn't get a valid address." => "Kunde inte hitta en giltig adress.",
"Error" => "Fel",
-"Contact" => "Kontakt",
-"New" => "Ny",
-"New Contact" => "Ny kontakt",
"This property has to be non-empty." => "Denna egenskap får inte vara tom.",
"Couldn't serialize elements." => "Kunde inte serialisera element.",
"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "\"deleteProperty\" anropades utan typargument. Vänligen rapportera till bugs.owncloud.org",
@@ -57,10 +59,12 @@
"No files selected for upload." => "Inga filer valda för uppladdning",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Filen du försöker ladda upp är större än den maximala storleken för filuppladdning på denna server.",
"Select type" => "Välj typ",
+"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Vissa kontakter är markerade för radering, men är inte raderade än. Vänta tills dom är raderade.",
"Result: " => "Resultat:",
" imported, " => "importerad,",
" failed." => "misslyckades.",
-"Addressbook not found." => "Hittade inte adressboken",
+"Displayname cannot be empty." => "Visningsnamn får inte vara tomt.",
+"Addressbook not found: " => "Adressboken hittades inte:",
"This is not your addressbook." => "Det här är inte din adressbok.",
"Contact could not be found." => "Kontakt kunde inte hittas.",
"Address" => "Adress",
@@ -84,17 +88,32 @@
"Deliverer" => "Leverera",
"Holidays" => "Helgdagar",
"Ideas" => "Idéer",
+"Journey" => "Resa",
+"Jubilee" => "Jubileum",
+"Meeting" => "Möte",
+"Other" => "Annat",
+"Personal" => "Privat",
+"Projects" => "Projekt",
+"Questions" => "Frågor",
"{name}'s Birthday" => "{name}'s födelsedag",
+"Contact" => "Kontakt",
"Add Contact" => "Lägg till kontakt",
"Import" => "Importera",
+"Settings" => "Inställningar",
"Addressbooks" => "Adressböcker",
"Close" => "Stäng",
-"Configure Address Books" => "Konfigurera adressböcker",
-"New Address Book" => "Ny adressbok",
-"CardDav Link" => "CardDAV länk",
-"Download" => "Nedladdning",
-"Edit" => "Redigera",
-"Delete" => "Radera",
+"Keyboard shortcuts" => "Kortkommandon",
+"Navigation" => "Navigering",
+"Next contact in list" => "Nästa kontakt i listan",
+"Previous contact in list" => "Föregående kontakt i listan",
+"Expand/collapse current addressbook" => "Visa/dölj aktuell adressbok",
+"Next addressbook" => "Nästa adressbok",
+"Previous addressbook" => "Föregående adressbok",
+"Actions" => "Åtgärder",
+"Refresh contacts list" => "Uppdatera kontaktlistan",
+"Add new contact" => "Lägg till ny kontakt",
+"Add new addressbook" => "Lägg till ny adressbok",
+"Delete current contact" => "Radera denna kontakt",
"Drop photo to upload" => "Släpp foto för att ladda upp",
"Delete current photo" => "Ta bort aktuellt foto",
"Edit current photo" => "Redigera aktuellt foto",
@@ -102,18 +121,22 @@
"Select photo from ownCloud" => "Välj foto från ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => " anpassad, korta namn, hela namn, bakåt eller bakåt med komma",
"Edit name details" => "Redigera detaljer för namn",
+"Delete" => "Radera",
"Nickname" => "Smeknamn",
"Enter nickname" => "Ange smeknamn",
+"Web site" => "Webbplats",
+"http://www.somesite.com" => "http://www.somesite.com",
+"Go to web site" => "Gå till webbplats",
"dd-mm-yyyy" => "dd-mm-åååå",
"Groups" => "Grupper",
"Separate groups with commas" => "Separera grupperna med kommatecken",
"Edit groups" => "Editera grupper",
"Preferred" => "Föredragen",
-"Please specify a valid email address." => "Vänligen ange en giltig e-postadress",
+"Please specify a valid email address." => "Vänligen ange en giltig e-postadress.",
"Enter email address" => "Ange e-postadress",
"Mail to address" => "Posta till adress.",
"Delete email address" => "Ta bort e-postadress",
-"Enter phone number" => "Ange ett telefonnummer",
+"Enter phone number" => "Ange telefonnummer",
"Delete phone number" => "Ta bort telefonnummer",
"View on map" => "Visa på karta",
"Edit address details" => "Redigera detaljer för adress",
@@ -127,28 +150,26 @@
"Edit address" => "Editera adress",
"Type" => "Typ",
"PO Box" => "Postbox",
+"Street address" => "Gatuadress",
+"Street and number" => "Gata och nummer",
"Extended" => "Utökad",
+"Apartment number etc." => "Lägenhetsnummer",
"City" => "Stad",
"Region" => "Län",
+"E.g. state or province" => "T.ex. stat eller provins",
"Zipcode" => "Postnummer",
+"Postal code" => "Postnummer",
"Country" => "Land",
"Addressbook" => "Adressbok",
-"Miss" => "Herr",
-"Ms" => "Ingen adressbok funnen.",
-"Mr" => "Fru",
+"Miss" => "Fröken",
+"Mr" => "Herr",
+"Sir" => "Herr",
"Mrs" => "Fröken",
"Dr" => "Dr",
"Given name" => "Förnamn",
"Additional names" => "Mellannamn",
"Family name" => "Efternamn",
"Ph.D." => "Fil.dr.",
-"New Addressbook" => "Ny adressbok",
-"Edit Addressbook" => "Redigera adressbok",
-"Displayname" => "Visningsnamn",
-"Active" => "Aktiv",
-"Save" => "Spara",
-"Submit" => "Skicka in",
-"Cancel" => "Avbryt",
"Import a contacts file" => "Importera en kontaktfil",
"Please choose the addressbook" => "Vänligen välj adressboken",
"create a new addressbook" => "skapa en ny adressbok",
@@ -156,9 +177,22 @@
"Importing contacts" => "Importerar kontakter",
"You have no contacts in your addressbook." => "Du har inga kontakter i din adressbok.",
"Add contact" => "Lägg till en kontakt",
-"Configure addressbooks" => "Konfigurera adressböcker",
+"Configure addressbooks" => "Anpassa adressböcker.",
+"Select Address Books" => "Välj adressböcker",
+"Enter name" => "Ange namn",
+"Enter description" => "Ange beskrivning",
"CardDAV syncing addresses" => "CardDAV synkningsadresser",
-"more info" => "mera information",
+"more info" => "mer information",
"Primary address (Kontact et al)" => "Primär adress (Kontakt o.a.)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Show CardDav link" => "Visa CardDav-länk",
+"Show read-only VCF link" => "Visa skrivskyddad VCF-länk",
+"Download" => "Nedladdning",
+"Edit" => "Redigera",
+"New Address Book" => "Ny adressbok",
+"Name" => "Namn",
+"Description" => "Beskrivning",
+"Save" => "Spara",
+"Cancel" => "Avbryt",
+"More..." => "Mer..."
);
diff --git a/apps/contacts/l10n/th_TH.php b/apps/contacts/l10n/th_TH.php
index acf382c6a43..553271d88f6 100644
--- a/apps/contacts/l10n/th_TH.php
+++ b/apps/contacts/l10n/th_TH.php
@@ -1,39 +1,41 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "เกิดข้อผิดพลาดใน (ยกเลิก)การเปิดใช้งานสมุดบันทึกที่อยู่",
-"There was an error adding the contact." => "เกิดข้อผิดพลาดในการเพิ่มรายชื่อผู้ติดต่อใหม่",
-"Cannot add empty property." => "ไม่สามารถเพิ่มรายละเอียดที่ไม่มีข้อมูลได้",
-"At least one of the address fields has to be filled out." => "อย่างน้อยที่สุดช่องข้อมูลที่อยู่จะต้องถูกกรอกลงไป",
-"Trying to add duplicate property: " => "พยายามที่จะเพิ่มทรัพยากรที่ซ้ำซ้อนกัน: ",
-"Error adding contact property." => "เกิดข้อผิดพลาดในการเพิ่มรายละเอียดการติดต่อ",
+"id is not set." => "ยังไม่ได้กำหนดรหัส",
+"Cannot update addressbook with an empty name." => "ไม่สามารถอัพเดทสมุดบันทึกที่อยู่โดยไม่มีชื่อได้",
+"Error updating addressbook." => "เกิดข้อผิดพลาดในการอัพเดทสมุดบันทึกที่อยู่",
"No ID provided" => "ยังไม่ได้ใส่รหัส",
"Error setting checksum." => "เกิดข้อผิดพลาดในการตั้งค่า checksum",
"No categories selected for deletion." => "ยังไม่ได้เลือกหมวดหมู่ที่ต้องการลบ",
"No address books found." => "ไม่พบสมุดบันทึกที่อยู่ที่ต้องการ",
"No contacts found." => "ไม่พบข้อมูลการติดต่อที่ต้องการ",
+"There was an error adding the contact." => "เกิดข้อผิดพลาดในการเพิ่มรายชื่อผู้ติดต่อใหม่",
+"element name is not set." => "ยังไม่ได้กำหนดชื่อ",
+"Cannot add empty property." => "ไม่สามารถเพิ่มรายละเอียดที่ไม่มีข้อมูลได้",
+"At least one of the address fields has to be filled out." => "อย่างน้อยที่สุดช่องข้อมูลที่อยู่จะต้องถูกกรอกลงไป",
+"Trying to add duplicate property: " => "พยายามที่จะเพิ่มทรัพยากรที่ซ้ำซ้อนกัน: ",
+"Information about vCard is incorrect. Please reload the page." => "ข้อมูลเกี่ยวกับ vCard ไม่ถูกต้อง กรุณาโหลดหน้าเวปใหม่อีกครั้ง",
+"Error deleting contact property." => "เกิดข้อผิดพลาดในการลบรายละเอียดการติดต่อ",
"Missing ID" => "รหัสสูญหาย",
"Error parsing VCard for ID: \"" => "พบข้อผิดพลาดในการแยกรหัส VCard:\"",
-"Cannot add addressbook with an empty name." => "ไม่สามารถเพิ่มสมุดบันทึกที่อยู่โดยไม่มีชื่อได้",
-"Error adding addressbook." => "เกิดข้อผิดพลาดในการเพิ่มสมุดบันทึกที่อยู่ใหม่",
-"Error activating addressbook." => "เกิดข้อผิดพลาดในการเปิดใช้งานสมุดบันทึกที่อยู่",
+"checksum is not set." => "ยังไม่ได้กำหนดค่า checksum",
+"Information about vCard is incorrect. Please reload the page: " => "ข้อมูล vCard ไม่ถูกต้อง กรุณาโหลดหน้าเว็บใหม่อีกครั้ง: ",
+"Something went FUBAR. " => "มีบางอย่างเกิดการ FUBAR. ",
+"Error updating contact property." => "เกิดข้อผิดพลาดในการอัพเดทข้อมูลการติดต่อ",
"No contact ID was submitted." => "ไม่มีรหัสข้อมูลการติดต่อถูกส่งมา",
"Error reading contact photo." => "เกิดข้อผิดพลาดในการอ่านรูปภาพของข้อมูลการติดต่อ",
"Error saving temporary file." => "เกิดข้อผิดพลาดในการบันทึกไฟล์ชั่วคราว",
"The loading photo is not valid." => "โหลดรูปภาพไม่ถูกต้อง",
-"id is not set." => "ยังไม่ได้กำหนดรหัส",
-"Information about vCard is incorrect. Please reload the page." => "ข้อมูลเกี่ยวกับ vCard ไม่ถูกต้อง กรุณาโหลดหน้าเวปใหม่อีกครั้ง",
-"Error deleting contact property." => "เกิดข้อผิดพลาดในการลบรายละเอียดการติดต่อ",
"Contact ID is missing." => "รหัสข้อมูลการติดต่อเกิดการสูญหาย",
-"Missing contact id." => "รหัสข้อมูลการติดต่อเกิดการสูญหาย",
"No photo path was submitted." => "ไม่พบตำแหน่งพาธของรูปภาพ",
"File doesn't exist:" => "ไม่มีไฟล์ดังกล่าว",
"Error loading image." => "เกิดข้อผิดพลาดในการโหลดรูปภาพ",
-"element name is not set." => "ยังไม่ได้กำหนดชื่อ",
-"checksum is not set." => "ยังไม่ได้กำหนดค่า checksum",
-"Information about vCard is incorrect. Please reload the page: " => "ข้อมูล vCard ไม่ถูกต้อง กรุณาโหลดหน้าเว็บใหม่อีกครั้ง: ",
-"Something went FUBAR. " => "มีบางอย่างเกิดการ FUBAR. ",
-"Error updating contact property." => "เกิดข้อผิดพลาดในการอัพเดทข้อมูลการติดต่อ",
-"Cannot update addressbook with an empty name." => "ไม่สามารถอัพเดทสมุดบันทึกที่อยู่โดยไม่มีชื่อได้",
-"Error updating addressbook." => "เกิดข้อผิดพลาดในการอัพเดทสมุดบันทึกที่อยู่",
+"Error getting contact object." => "เกิดข้อผิดพลาดในการดึงข้อมูลติดต่อ",
+"Error getting PHOTO property." => "เกิดข้อผิดพลาดในการดึงคุณสมบัติของรูปภาพ",
+"Error saving contact." => "เกิดข้อผิดพลาดในการบันทึกข้อมูลผู้ติดต่อ",
+"Error resizing image" => "เกิดข้อผิดพลาดในการปรับขนาดรูปภาพ",
+"Error cropping image" => "เกิดข้อผิดพลาดในการครอบตัดภาพ",
+"Error creating temporary image" => "เกิดข้อผิดพลาดในการสร้างรูปภาพชั่วคราว",
+"Error finding image: " => "เกิดข้อผิดพลาดในการค้นหารูปภาพ: ",
"Error uploading contacts to storage." => "เกิดข้อผิดพลาดในการอัพโหลดข้อมูลการติดต่อไปยังพื้นที่จัดเก็บข้อมูล",
"There is no error, the file uploaded with success" => "ไม่พบข้อผิดพลาดใดๆ, ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "ไฟล์ที่อัพโหลดมีขนาดไฟล์ใหญ่เกินจำนวนที่กำหนดไว้ในคำสั่ง upload_max_filesize ที่อยู่ในไฟล์ php.ini",
@@ -41,9 +43,24 @@
"The uploaded file was only partially uploaded" => "ไฟล์ถูกอัพโหลดได้เพียงบางส่วนเท่านั้น",
"No file was uploaded" => "ไม่มีไฟล์ที่ถูกอัพโหลด",
"Missing a temporary folder" => "โฟลเดอร์ชั่วคราวเกิดการสูญหาย",
+"Couldn't save temporary image: " => "ไม่สามารถบันทึกรูปภาพชั่วคราวได้: ",
+"Couldn't load temporary image: " => "ไม่สามารถโหลดรูปภาพชั่วคราวได้: ",
+"No file was uploaded. Unknown error" => "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ",
"Contacts" => "ข้อมูลการติดต่อ",
-"Drop a VCF file to import contacts." => "วางไฟล์ VCF ที่ต้องการนำเข้าข้อมูลการติดต่อ",
-"Addressbook not found." => "ไม่พบสมุดบันทึกที่อยู่ที่ต้องการ",
+"Sorry, this functionality has not been implemented yet" => "ขออภัย, ฟังก์ชั่นการทำงานนี้ยังไม่ได้ถูกดำเนินการ",
+"Not implemented" => "ยังไม่ได้ถูกดำเนินการ",
+"Couldn't get a valid address." => "ไม่สามารถดึงที่อยู่ที่ถูกต้องได้",
+"Error" => "พบข้อผิดพลาด",
+"This property has to be non-empty." => "คุณสมบัตินี้ต้องไม่มีข้อมูลว่างอยู่",
+"Couldn't serialize elements." => "ไม่สามารถทำสัญลักษณ์องค์ประกอบต่างๆให้เป็นตัวเลขตามลำดับได้",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' ถูกเรียกใช้โดยไม่มีอาร์กิวเมนต์ กรุณาแจ้งได้ที่ bugs.owncloud.org",
+"Edit name" => "แก้ไขชื่อ",
+"No files selected for upload." => "ยังไม่ได้เลือกไฟล์ำสำหรับอัพโหลด",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "ไฟล์ที่คุณกำลังพยายามที่จะอัพโหลดมีขนาดเกินจำนวนสูงสุดที่สามารถอัพโหลดได้สำหรับเซิร์ฟเวอร์นี้",
+"Select type" => "เลือกชนิด",
+"Result: " => "ผลลัพธ์: ",
+" imported, " => " นำเข้าข้อมูลแล้ว, ",
+" failed." => " ล้มเหลว.",
"This is not your addressbook." => "นี่ไม่ใช่สมุดบันทึกที่อยู่ของคุณ",
"Contact could not be found." => "ไม่พบข้อมูลการติดต่อ",
"Address" => "ที่อยู่",
@@ -60,25 +77,23 @@
"Video" => "วีดีโอ",
"Pager" => "เพจเจอร์",
"Internet" => "อินเทอร์เน็ต",
+"Birthday" => "วันเกิด",
"{name}'s Birthday" => "วันเกิดของ {name}",
"Contact" => "ข้อมูลการติดต่อ",
"Add Contact" => "เพิ่มรายชื่อผู้ติดต่อใหม่",
+"Import" => "นำเข้า",
"Addressbooks" => "สมุดบันทึกที่อยู่",
-"Configure Address Books" => "กำหนดค่าสมุดบันทึกที่อยู่",
-"New Address Book" => "สร้างสมุดบันทึกข้อมูลการติดต่อใหม่",
-"Import from VCF" => "นำเข้าจาก VCF",
-"CardDav Link" => "ลิงค์ CardDav",
-"Download" => "ดาวน์โหลด",
-"Edit" => "แก้ไข",
-"Delete" => "ลบ",
-"Download contact" => "ดาวน์โหลดข้อมูลการติดต่อ",
-"Delete contact" => "ลบข้อมูลการติดต่อ",
+"Close" => "ปิด",
"Drop photo to upload" => "วางรูปภาพที่ต้องการอัพโหลด",
+"Delete current photo" => "ลบรูปภาพปัจจุบัน",
+"Edit current photo" => "แก้ไขรูปภาพปัจจุบัน",
+"Upload new photo" => "อัพโหลดรูปภาพใหม่",
+"Select photo from ownCloud" => "เลือกรูปภาพจาก ownCloud",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "กำหนดรูปแบบของชื่อย่อ, ชื่อจริง, ย้อนค่ากลัีบด้วยคอมม่าเอง",
"Edit name details" => "แก้ไขรายละเอียดของชื่อ",
+"Delete" => "ลบ",
"Nickname" => "ชื่อเล่น",
"Enter nickname" => "กรอกชื่อเล่น",
-"Birthday" => "วันเกิด",
"dd-mm-yyyy" => "dd-mm-yyyy",
"Groups" => "กลุ่ม",
"Separate groups with commas" => "คั่นระหว่างรายชื่อกลุ่มด้วยเครื่องหมายจุลภาีคหรือคอมม่า",
@@ -94,24 +109,19 @@
"Edit address details" => "แก้ไขรายละเอียดที่อยู่",
"Add notes here." => "เพิ่มหมายเหตุกำกับไว้ที่นี่",
"Add field" => "เพิ่มช่องรับข้อมูล",
-"Profile picture" => "รูปภาพโปรไฟล์",
"Phone" => "โทรศัพท์",
"Note" => "หมายเหตุ",
-"Delete current photo" => "ลบรูปภาพปัจจุบัน",
-"Edit current photo" => "แก้ไขรูปภาพปัจจุบัน",
-"Upload new photo" => "อัพโหลดรูปภาพใหม่",
-"Select photo from ownCloud" => "เลือกรูปภาพจาก ownCloud",
+"Download contact" => "ดาวน์โหลดข้อมูลการติดต่อ",
+"Delete contact" => "ลบข้อมูลการติดต่อ",
+"The temporary image has been removed from cache." => "รูปภาพชั่วคราวดังกล่าวได้ถูกลบออกจากหน่วยความจำแคชแล้ว",
"Edit address" => "แก้ไขที่อยู่",
"Type" => "ประเภท",
"PO Box" => "ตู้ ปณ.",
"Extended" => "เพิ่ม",
-"Street" => "ถนน",
"City" => "เมือง",
"Region" => "ภูมิภาค",
"Zipcode" => "รหัสไปรษณีย์",
"Country" => "ประเทศ",
-"Edit categories" => "แก้ไขหมวดหมู่",
-"Add" => "เพิ่ม",
"Addressbook" => "สมุดบันทึกที่อยู่",
"Hon. prefixes" => "คำนำหน้าชื่อคนรัก",
"Miss" => "นางสาว",
@@ -132,26 +142,21 @@
"Esq." => "Esq.",
"Jr." => "จูเนียร์",
"Sn." => "ซีเนียร์",
-"New Addressbook" => "สร้างสมุดบันทึกที่อยู่ใหม่",
-"Edit Addressbook" => "แก้ไขสมุดบันทึกที่อยู่",
-"Displayname" => "ชื่อที่ต้องการให้แสดง",
-"Active" => "เปิดใช้",
-"Save" => "บันทึก",
-"Submit" => "ส่งข้อมูล",
-"Cancel" => "ยกเลิก",
"Import a contacts file" => "นำเข้าไฟล์ข้อมูลการติดต่อ",
"Please choose the addressbook" => "กรุณาเลือกสมุดบันทึกที่อยู่",
"create a new addressbook" => "สร้างสมุดบันทึกที่อยู่ใหม่",
"Name of new addressbook" => "กำหนดชื่อของสมุดที่อยู่ที่สร้างใหม่",
-"Import" => "นำเข้า",
"Importing contacts" => "นำเข้าข้อมูลการติดต่อ",
-"Select address book to import to:" => "เลือกสมุดบันทึกที่อยู่ที่ต้องการนำเข้า:",
-"Select from HD" => "เลือกจากฮาร์ดดิส",
"You have no contacts in your addressbook." => "คุณยังไม่มีข้อมูลการติดต่อใดๆในสมุดบันทึกที่อยู่ของคุณ",
"Add contact" => "เพิ่มชื่อผู้ติดต่อ",
"Configure addressbooks" => "กำหนดค่าสมุดบันทึกที่อยู่",
"CardDAV syncing addresses" => "ที่อยู่ที่ใช้เชื่อมข้อมูลกับ CardDAV",
"more info" => "ข้อมูลเพิ่มเติม",
"Primary address (Kontact et al)" => "ที่อยู่หลัก (สำหรับติดต่อ)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "ดาวน์โหลด",
+"Edit" => "แก้ไข",
+"New Address Book" => "สร้างสมุดบันทึกข้อมูลการติดต่อใหม่",
+"Save" => "บันทึก",
+"Cancel" => "ยกเลิก"
);
diff --git a/apps/contacts/l10n/tr.php b/apps/contacts/l10n/tr.php
index 65e8e34c305..dc4ec06c936 100644
--- a/apps/contacts/l10n/tr.php
+++ b/apps/contacts/l10n/tr.php
@@ -1,39 +1,43 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "Adres defteri etkisizleştirilirken hata oluştu.",
-"There was an error adding the contact." => "Kişi eklenirken hata oluştu.",
-"Cannot add empty property." => "Boş özellik eklenemiyor.",
-"At least one of the address fields has to be filled out." => "En az bir adres alanı doldurulmalı.",
-"Trying to add duplicate property: " => "Yinelenen özellik eklenmeye çalışılıyor: ",
-"Error adding contact property." => "Kişi özelliği eklenirken hata oluştu.",
+"id is not set." => "id atanmamış.",
+"Cannot update addressbook with an empty name." => "Adres defterini boş bir isimle güncelleyemezsiniz.",
+"Error updating addressbook." => "Adres defteri güncellenirken hata oluştu.",
"No ID provided" => "ID verilmedi",
"Error setting checksum." => "İmza oluşturulurken hata.",
"No categories selected for deletion." => "Silmek için bir kategori seçilmedi.",
"No address books found." => "Adres defteri bulunamadı.",
"No contacts found." => "Bağlantı bulunamadı.",
+"There was an error adding the contact." => "Kişi eklenirken hata oluştu.",
+"element name is not set." => "eleman ismi atanmamış.",
+"Could not parse contact: " => "Kişi bilgisi ayrıştırılamadı.",
+"Cannot add empty property." => "Boş özellik eklenemiyor.",
+"At least one of the address fields has to be filled out." => "En az bir adres alanı doldurulmalı.",
+"Trying to add duplicate property: " => "Yinelenen özellik eklenmeye çalışılıyor: ",
+"Error adding contact property: " => "Kişi özelliği eklenirken hata oluştu.",
+"Information about vCard is incorrect. Please reload the page." => "vCard bilgileri doğru değil. Lütfen sayfayı yenileyin.",
+"Error deleting contact property." => "Kişi özelliği silinirken hata oluştu.",
"Missing ID" => "Eksik ID",
"Error parsing VCard for ID: \"" => "ID için VCard ayrıştırılamadı:\"",
-"Cannot add addressbook with an empty name." => "Adres defterini isimsiz ekleyemezsiniz.",
-"Error adding addressbook." => "Adres defteri eklenirken hata oluştu.",
-"Error activating addressbook." => "Adres defteri etkinleştirilirken hata oluştu.",
+"checksum is not set." => "checksum atanmamış.",
+"Information about vCard is incorrect. Please reload the page: " => "vCard hakkındaki bilgi hatalı. Lütfen sayfayı yeniden yükleyin: ",
+"Something went FUBAR. " => "Bir şey FUBAR gitti.",
+"Error updating contact property." => "Kişi özelliği güncellenirken hata oluştu.",
"No contact ID was submitted." => "Bağlantı ID'si girilmedi.",
"Error reading contact photo." => "Bağlantı fotoğrafı okunamadı.",
"Error saving temporary file." => "Geçici dosya kaydetme hatası.",
"The loading photo is not valid." => "Yüklenecek fotograf geçerli değil.",
-"id is not set." => "id atanmamış.",
-"Information about vCard is incorrect. Please reload the page." => "vCard bilgileri doğru değil. Lütfen sayfayı yenileyin.",
-"Error deleting contact property." => "Kişi özelliği silinirken hata oluştu.",
"Contact ID is missing." => "Bağlantı ID'si eksik.",
-"Missing contact id." => "Eksik bağlantı id'si.",
"No photo path was submitted." => "Fotoğraf girilmedi.",
"File doesn't exist:" => "Dosya mevcut değil:",
"Error loading image." => "İmaj yükleme hatası.",
-"element name is not set." => "eleman ismi atanmamış.",
-"checksum is not set." => "checksum atanmamış.",
-"Information about vCard is incorrect. Please reload the page: " => "vCard hakkındaki bilgi hatalı. Lütfen sayfayı yeniden yükleyin: ",
-"Something went FUBAR. " => "Bir şey FUBAR gitti.",
-"Error updating contact property." => "Kişi özelliği güncellenirken hata oluştu.",
-"Cannot update addressbook with an empty name." => "Adres defterini boş bir isimle güncelleyemezsiniz.",
-"Error updating addressbook." => "Adres defteri güncellenirken hata oluştu.",
+"Error getting contact object." => "Bağlantı nesnesini kaydederken hata.",
+"Error getting PHOTO property." => "Resim özelleğini alırken hata oluştu.",
+"Error saving contact." => "Bağlantıyı kaydederken hata",
+"Error resizing image" => "Görüntü yeniden boyutlandırılamadı.",
+"Error cropping image" => "Görüntü kırpılamadı.",
+"Error creating temporary image" => "Geçici resim oluştururken hata oluştu",
+"Error finding image: " => "Resim ararken hata oluştu:",
"Error uploading contacts to storage." => "Bağlantıları depoya yükleme hatası",
"There is no error, the file uploaded with success" => "Dosya başarıyla yüklendi, hata oluşmadı",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Dosyanın boyutu php.ini dosyasındaki upload_max_filesize limitini aşıyor",
@@ -41,9 +45,24 @@
"The uploaded file was only partially uploaded" => "Dosya kısmen karşıya yüklenebildi",
"No file was uploaded" => "Hiç dosya gönderilmedi",
"Missing a temporary folder" => "Geçici dizin eksik",
+"Couldn't save temporary image: " => "Geçici resmi saklayamadı : ",
+"Couldn't load temporary image: " => "Geçici resmi yükleyemedi :",
+"No file was uploaded. Unknown error" => "Dosya yüklenmedi. Bilinmeyen hata",
"Contacts" => "Kişiler",
-"Drop a VCF file to import contacts." => "Bağlantıları içe aktarmak için bir VCF dosyası bırakın.",
-"Addressbook not found." => "Adres defteri bulunamadı.",
+"Sorry, this functionality has not been implemented yet" => "Üzgünüz, bu özellik henüz tamamlanmadı.",
+"Not implemented" => "Tamamlanmadı.",
+"Couldn't get a valid address." => "Geçerli bir adres alınamadı.",
+"Error" => "Hata",
+"This property has to be non-empty." => "Bu özellik boş bırakılmamalı.",
+"Couldn't serialize elements." => "Öğeler seri hale getiremedi",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' tip argümanı olmadan çağrıldı. Lütfen bugs.owncloud.org a rapor ediniz.",
+"Edit name" => "İsmi düzenle",
+"No files selected for upload." => "Yükleme için dosya seçilmedi.",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Yüklemeye çalıştığınız dosya sunucudaki dosya yükleme maksimum boyutunu aşmaktadır. ",
+"Select type" => "Tür seç",
+"Result: " => "Sonuç: ",
+" imported, " => " içe aktarıldı, ",
+" failed." => " hatalı.",
"This is not your addressbook." => "Bu sizin adres defteriniz değil.",
"Contact could not be found." => "Kişi bulunamadı.",
"Address" => "Adres",
@@ -60,25 +79,49 @@
"Video" => "Video",
"Pager" => "Sayfalayıcı",
"Internet" => "İnternet",
+"Birthday" => "Doğum günü",
+"Business" => "İş",
+"Call" => "Çağrı",
+"Clients" => "Müşteriler",
+"Deliverer" => "Dağıtıcı",
+"Holidays" => "Tatiller",
+"Ideas" => "Fikirler",
+"Journey" => "Seyahat",
+"Jubilee" => "Yıl Dönümü",
+"Meeting" => "Toplantı",
+"Other" => "Diğer",
+"Personal" => "Kişisel",
+"Projects" => "Projeler",
+"Questions" => "Sorular",
"{name}'s Birthday" => "{name}'nin Doğumgünü",
"Contact" => "Kişi",
"Add Contact" => "Kişi Ekle",
+"Import" => "İçe aktar",
"Addressbooks" => "Adres defterleri",
-"Configure Address Books" => "Adres Defterlerini Yapılandır",
-"New Address Book" => "Yeni Adres Defteri",
-"Import from VCF" => "VCF'den içeri aktar",
-"CardDav Link" => "CardDav Bağlantısı",
-"Download" => "İndir",
-"Edit" => "Düzenle",
-"Delete" => "Sil",
-"Download contact" => "Kişiyi indir",
-"Delete contact" => "Kişiyi sil",
+"Close" => "Kapat",
+"Keyboard shortcuts" => "Klavye kısayolları",
+"Navigation" => "Dolaşım",
+"Next contact in list" => "Listedeki sonraki kişi",
+"Previous contact in list" => "Listedeki önceki kişi",
+"Expand/collapse current addressbook" => "Şuanki adres defterini genişlet/daralt",
+"Actions" => "Eylemler",
+"Refresh contacts list" => "Kişi listesini tazele",
+"Add new contact" => "Yeni kişi ekle",
+"Add new addressbook" => "Yeni adres defteri ekle",
+"Delete current contact" => "Şuanki kişiyi sil",
"Drop photo to upload" => "Fotoğrafı yüklenmesi için bırakın",
+"Delete current photo" => "Mevcut fotoğrafı sil",
+"Edit current photo" => "Mevcut fotoğrafı düzenle",
+"Upload new photo" => "Yeni fotoğraf yükle",
+"Select photo from ownCloud" => "ownCloud'dan bir fotoğraf seç",
"Format custom, Short name, Full name, Reverse or Reverse with comma" => "Biçin özel, Kısa isim, Tam isim, Ters veya noktalı ters",
"Edit name details" => "İsim detaylarını düzenle",
+"Delete" => "Sil",
"Nickname" => "Takma ad",
"Enter nickname" => "Takma adı girin",
-"Birthday" => "Doğum günü",
+"Web site" => "Web sitesi",
+"http://www.somesite.com" => "http://www.somesite.com",
+"Go to web site" => "Web sitesine git",
"dd-mm-yyyy" => "gg-aa-yyyy",
"Groups" => "Gruplar",
"Separate groups with commas" => "Grupları birbirinden virgülle ayırın",
@@ -94,24 +137,24 @@
"Edit address details" => "Adres detaylarını düzenle",
"Add notes here." => "Notları buraya ekleyin.",
"Add field" => "Alan ekle",
-"Profile picture" => "Profil resmi",
"Phone" => "Telefon",
"Note" => "Not",
-"Delete current photo" => "Mevcut fotoğrafı sil",
-"Edit current photo" => "Mevcut fotoğrafı düzenle",
-"Upload new photo" => "Yeni fotoğraf yükle",
-"Select photo from ownCloud" => "ownCloud'dan bir fotoğraf seç",
+"Download contact" => "Kişiyi indir",
+"Delete contact" => "Kişiyi sil",
+"The temporary image has been removed from cache." => "Geçici resim ön bellekten silinmiştir.",
"Edit address" => "Adresi düzenle",
"Type" => "Tür",
"PO Box" => "Posta Kutusu",
+"Street address" => "Sokak adresi",
+"Street and number" => "Sokak ve Numara",
"Extended" => "Uzatılmış",
-"Street" => "Sokak",
+"Apartment number etc." => "Apartman numarası vb.",
"City" => "Şehir",
"Region" => "Bölge",
+"E.g. state or province" => "Örn. eyalet veya il",
"Zipcode" => "Posta kodu",
+"Postal code" => "Posta kodu",
"Country" => "Ülke",
-"Edit categories" => "Kategorileri düzenle",
-"Add" => "Ekle",
"Addressbook" => "Adres defteri",
"Hon. prefixes" => "Kısaltmalar",
"Miss" => "Bayan",
@@ -132,26 +175,24 @@
"Esq." => "Esq.",
"Jr." => "Jr.",
"Sn." => "Sn.",
-"New Addressbook" => "Yeni Adres defteri",
-"Edit Addressbook" => "Adres Defterini Düzenle",
-"Displayname" => "Görünen adı",
-"Active" => "Aktif",
-"Save" => "Kaydet",
-"Submit" => "Gönder",
-"Cancel" => "İptal",
"Import a contacts file" => "Bağlantı dosyasını içeri aktar",
"Please choose the addressbook" => "Yeni adres defterini seç",
"create a new addressbook" => "Yeni adres defteri oluştur",
"Name of new addressbook" => "Yeni adres defteri için isim",
-"Import" => "İçe aktar",
"Importing contacts" => "Bağlantıları içe aktar",
-"Select address book to import to:" => "İçe aktarılacak adres defterini seçin:",
-"Select from HD" => "HD'den seç",
"You have no contacts in your addressbook." => "Adres defterinizde hiç bağlantı yok.",
"Add contact" => "Bağlatı ekle",
"Configure addressbooks" => "Adres defterini yapılandır",
+"Select Address Books" => "Adres deftelerini seçiniz",
+"Enter name" => "İsim giriniz",
+"Enter description" => "Tanım giriniz",
"CardDAV syncing addresses" => "CardDAV adresleri eşzamanlıyor",
"more info" => "daha fazla bilgi",
"Primary address (Kontact et al)" => "Birincil adres (Bağlantı ve arkadaşları)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "İndir",
+"Edit" => "Düzenle",
+"New Address Book" => "Yeni Adres Defteri",
+"Save" => "Kaydet",
+"Cancel" => "İptal"
);
diff --git a/apps/contacts/l10n/uk.php b/apps/contacts/l10n/uk.php
index 4c27acf543e..cc096510653 100644
--- a/apps/contacts/l10n/uk.php
+++ b/apps/contacts/l10n/uk.php
@@ -1,6 +1,5 @@
<?php $TRANSLATIONS = array(
"At least one of the address fields has to be filled out." => "Має бути заповнено щонайменше одне поле.",
-"Error adding addressbook." => "Помилка при додаванні адресної книги.",
"This is not your addressbook." => "Це не ваша адресна книга.",
"Address" => "Адреса",
"Telephone" => "Телефон",
@@ -12,18 +11,15 @@
"Fax" => "Факс",
"Video" => "Відео",
"Pager" => "Пейджер",
+"Birthday" => "День народження",
"Add Contact" => "Додати контакт",
-"New Address Book" => "Нова адресна книга",
-"Download" => "Завантажити",
"Delete" => "Видалити",
-"Delete contact" => "Видалити контакт",
-"Birthday" => "День народження",
"Phone" => "Телефон",
+"Delete contact" => "Видалити контакт",
"Extended" => "Розширено",
-"Street" => "Вулиця",
"City" => "Місто",
"Zipcode" => "Поштовий індекс",
"Country" => "Країна",
-"Add" => "Додати",
-"Displayname" => "Відображуване ім'я"
+"Download" => "Завантажити",
+"New Address Book" => "Нова адресна книга"
);
diff --git a/apps/contacts/l10n/vi.php b/apps/contacts/l10n/vi.php
index 5713ede7b00..0c650586a2a 100644
--- a/apps/contacts/l10n/vi.php
+++ b/apps/contacts/l10n/vi.php
@@ -1,9 +1,9 @@
<?php $TRANSLATIONS = array(
-"element name is not set." => "tên phần tử không được thiết lập.",
"id is not set." => "id không được thiết lập.",
"No ID provided" => "Không có ID được cung cấp",
"No address books found." => "Không tìm thấy sổ địa chỉ.",
"No contacts found." => "Không tìm thấy danh sách",
+"element name is not set." => "tên phần tử không được thiết lập.",
"Missing ID" => "Missing ID",
"Error reading contact photo." => "Lỗi đọc liên lạc hình ảnh.",
"The loading photo is not valid." => "Các hình ảnh tải không hợp lệ.",
@@ -12,7 +12,6 @@
"Error uploading contacts to storage." => "Lỗi tải lên danh sách địa chỉ để lưu trữ.",
"There is no error, the file uploaded with success" => "Không có lỗi, các tập tin tải lên thành công",
"Contacts" => "Liên lạc",
-"Contact" => "Danh sách",
"Address" => "Địa chỉ",
"Telephone" => "Điện thoại bàn",
"Email" => "Email",
@@ -24,11 +23,9 @@
"Video" => "Video",
"Pager" => "số trang",
"Birthday" => "Ngày sinh nhật",
+"Contact" => "Danh sách",
"Add Contact" => "Thêm liên lạc",
"Addressbooks" => "Sổ địa chỉ",
-"CardDav Link" => "CardDav Link",
-"Download" => "Tải về",
-"Edit" => "Sửa",
"Delete" => "Xóa",
"Phone" => "Điện thoại",
"Delete contact" => "Xóa liên lạc",
@@ -38,11 +35,8 @@
"Zipcode" => "Mã bưu điện",
"Country" => "Quốc gia",
"Addressbook" => "Sổ địa chỉ",
-"New Addressbook" => "Sổ địa chỉ mới",
-"Edit Addressbook" => "Sửa sổ địa chỉ",
-"Displayname" => "Hiển thị tên",
-"Active" => "Kích hoạt",
+"Download" => "Tải về",
+"Edit" => "Sửa",
"Save" => "Lưu",
-"Submit" => "Submit",
"Cancel" => "Hủy"
);
diff --git a/apps/contacts/l10n/zh_CN.php b/apps/contacts/l10n/zh_CN.php
index dcf9b99bc8b..bb4188314da 100644
--- a/apps/contacts/l10n/zh_CN.php
+++ b/apps/contacts/l10n/zh_CN.php
@@ -1,40 +1,66 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "(取消)激活地址簿错误。",
-"There was an error adding the contact." => "添加联系人时出错。",
-"Cannot add empty property." => "无法添加空属性。",
-"At least one of the address fields has to be filled out." => "至少需要填写一项地址。",
-"Trying to add duplicate property: " => "试图添加重复属性: ",
-"Error adding contact property." => "添加联系人属性错误。",
+"id is not set." => "没有设置 id。",
+"Cannot update addressbook with an empty name." => "无法使用一个空名称更新地址簿",
+"Error updating addressbook." => "更新地址簿错误",
"No ID provided" => "未提供 ID",
"Error setting checksum." => "设置校验值错误。",
"No categories selected for deletion." => "未选中要删除的分类。",
"No address books found." => "找不到地址簿。",
"No contacts found." => "找不到联系人。",
+"There was an error adding the contact." => "添加联系人时出错。",
+"element name is not set." => "元素名称未设置",
+"Cannot add empty property." => "无法添加空属性。",
+"At least one of the address fields has to be filled out." => "至少需要填写一项地址。",
+"Trying to add duplicate property: " => "试图添加重复属性: ",
+"Information about vCard is incorrect. Please reload the page." => "vCard 的信息不正确。请重新加载页面。",
+"Error deleting contact property." => "删除联系人属性错误。",
"Missing ID" => "缺少 ID",
"Error parsing VCard for ID: \"" => "无法解析如下ID的 VCard:“",
-"Cannot add addressbook with an empty name." => "无法无姓名的地址簿。",
-"Error adding addressbook." => "添加地址簿错误。",
-"Error activating addressbook." => "激活地址簿错误。",
+"checksum is not set." => "未设置校验值。",
+"Information about vCard is incorrect. Please reload the page: " => "vCard 信息不正确。请刷新页面: ",
+"Something went FUBAR. " => "有一些信息无法被处理。",
+"Error updating contact property." => "更新联系人属性错误。",
"No contact ID was submitted." => "未提交联系人 ID。",
"Error reading contact photo." => "读取联系人照片错误。",
"Error saving temporary file." => "保存临时文件错误。",
"The loading photo is not valid." => "装入的照片不正确。",
-"id is not set." => "没有设置 id。",
-"Information about vCard is incorrect. Please reload the page." => "vCard 的信息不正确。请重新加载页面。",
-"Error deleting contact property." => "删除联系人属性错误。",
"Contact ID is missing." => "缺少联系人 ID。",
-"Missing contact id." => "缺少联系人 ID。",
"No photo path was submitted." => "未提供照片路径。",
"File doesn't exist:" => "文件不存在:",
"Error loading image." => "加载图片错误。",
-"checksum is not set." => "未设置校验值。",
-"Error updating contact property." => "更新联系人属性错误。",
-"Error updating addressbook." => "更新地址簿错误",
+"Error getting contact object." => "获取联系人目标时出错。",
+"Error getting PHOTO property." => "获取照片属性时出错。",
+"Error saving contact." => "保存联系人时出错。",
+"Error resizing image" => "缩放图像时出错",
+"Error cropping image" => "裁切图像时出错",
+"Error creating temporary image" => "创建临时图像时出错",
+"Error finding image: " => "查找图像时出错: ",
+"Error uploading contacts to storage." => "上传联系人到存储空间时出错",
+"There is no error, the file uploaded with success" => "文件上传成功,没有错误发生",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "上传的文件长度超出了 php.ini 中 upload_max_filesize 的限制",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上传的文件长度超出了 HTML 表单中 MAX_FILE_SIZE 的限制",
"The uploaded file was only partially uploaded" => "已上传文件只上传了部分",
"No file was uploaded" => "没有文件被上传",
"Missing a temporary folder" => "缺少临时目录",
+"Couldn't save temporary image: " => "无法保存临时图像: ",
+"Couldn't load temporary image: " => "无法加载临时图像: ",
+"No file was uploaded. Unknown error" => "没有文件被上传。未知错误",
"Contacts" => "联系人",
-"Addressbook not found." => "未找到地址簿。",
+"Sorry, this functionality has not been implemented yet" => "抱歉,这个功能暂时还没有被实现",
+"Not implemented" => "未实现",
+"Couldn't get a valid address." => "无法获取一个合法的地址。",
+"Error" => "错误",
+"This property has to be non-empty." => "这个属性必须是非空的",
+"Couldn't serialize elements." => "无法序列化元素",
+"'deleteProperty' called without type argument. Please report at bugs.owncloud.org" => "'deleteProperty' 调用时没有类型声明。请到 bugs.owncloud.org 汇报错误",
+"Edit name" => "编辑名称",
+"No files selected for upload." => "没有选择文件以上传",
+"The file you are trying to upload exceed the maximum size for file uploads on this server." => "您试图上传的文件超出了该服务器的最大文件限制",
+"Select type" => "选择类型",
+"Result: " => "结果: ",
+" imported, " => " 已导入, ",
+" failed." => " 失败。",
"This is not your addressbook." => "这不是您的地址簿。",
"Contact could not be found." => "无法找到联系人。",
"Address" => "地址",
@@ -51,24 +77,23 @@
"Video" => "视频",
"Pager" => "传呼机",
"Internet" => "互联网",
+"Birthday" => "生日",
"{name}'s Birthday" => "{name} 的生日",
"Contact" => "联系人",
"Add Contact" => "添加联系人",
+"Import" => "导入",
"Addressbooks" => "地址簿",
-"Configure Address Books" => "配置地址簿",
-"New Address Book" => "新建地址簿",
-"Import from VCF" => "从 VCF 导入",
-"CardDav Link" => "CardDav 链接",
-"Download" => "下载",
-"Edit" => "编辑",
-"Delete" => "删除",
-"Download contact" => "下载联系人",
-"Delete contact" => "删除联系人",
+"Close" => "关闭",
"Drop photo to upload" => "拖拽图片进行上传",
+"Delete current photo" => "删除当前照片",
+"Edit current photo" => "编辑当前照片",
+"Upload new photo" => "上传新照片",
+"Select photo from ownCloud" => "从 ownCloud 选择照片",
+"Format custom, Short name, Full name, Reverse or Reverse with comma" => "自定义格式,简称,全名,姓在前,姓在前并用逗号分割",
"Edit name details" => "编辑名称详情",
+"Delete" => "删除",
"Nickname" => "昵称",
"Enter nickname" => "输入昵称",
-"Birthday" => "生日",
"dd-mm-yyyy" => "yyyy-mm-dd",
"Groups" => "分组",
"Separate groups with commas" => "用逗号隔开分组",
@@ -84,44 +109,54 @@
"Edit address details" => "编辑地址细节。",
"Add notes here." => "添加注释。",
"Add field" => "添加字段",
-"Profile picture" => "联系人图片",
"Phone" => "电话",
"Note" => "注释",
-"Delete current photo" => "删除当前照片",
-"Edit current photo" => "编辑当前照片",
-"Upload new photo" => "上传新照片",
-"Select photo from ownCloud" => "从 ownCloud 选择照片",
+"Download contact" => "下载联系人",
+"Delete contact" => "删除联系人",
+"The temporary image has been removed from cache." => "临时图像文件已从缓存中删除",
"Edit address" => "编辑地址",
"Type" => "类型",
"PO Box" => "邮箱",
"Extended" => "扩展",
-"Street" => "街道",
"City" => "城市",
"Region" => "地区",
"Zipcode" => "邮编",
"Country" => "国家",
-"Edit categories" => "编辑分类",
-"Add" => "添加",
"Addressbook" => "地址簿",
+"Hon. prefixes" => "名誉字首",
+"Miss" => "小姐",
+"Ms" => "女士",
+"Mr" => "先生",
+"Sir" => "先生",
+"Mrs" => "夫人",
+"Dr" => "博士",
"Given name" => "名",
+"Additional names" => "其他名称",
"Family name" => "姓",
-"New Addressbook" => "新建地址簿",
-"Edit Addressbook" => "编辑地址簿",
-"Displayname" => "显示名称",
-"Active" => "激活",
-"Save" => "保存",
-"Submit" => "提交",
-"Cancel" => "取消",
+"Hon. suffixes" => "名誉后缀",
+"J.D." => "法律博士",
+"M.D." => "医学博士",
+"D.O." => "骨科医学博士",
+"D.C." => "教育学博士",
+"Ph.D." => "哲学博士",
+"Esq." => "先生",
+"Jr." => "小",
+"Sn." => "老",
"Import a contacts file" => "导入联系人文件",
"Please choose the addressbook" => "请选择地址簿",
"create a new addressbook" => "创建新地址簿",
"Name of new addressbook" => "新地址簿名称",
-"Import" => "导入",
"Importing contacts" => "导入联系人",
+"You have no contacts in your addressbook." => "您的地址簿中没有联系人。",
"Add contact" => "添加联系人",
"Configure addressbooks" => "配置地址簿",
"CardDAV syncing addresses" => "CardDAV 同步地址",
"more info" => "更多信息",
"Primary address (Kontact et al)" => "首选地址 (Kontact 等)",
-"iOS/OS X" => "iOS/OS X"
+"iOS/OS X" => "iOS/OS X",
+"Download" => "下载",
+"Edit" => "编辑",
+"New Address Book" => "新建地址簿",
+"Save" => "保存",
+"Cancel" => "取消"
);
diff --git a/apps/contacts/l10n/zh_TW.php b/apps/contacts/l10n/zh_TW.php
index d4c2efc47aa..db0a1dbf211 100644
--- a/apps/contacts/l10n/zh_TW.php
+++ b/apps/contacts/l10n/zh_TW.php
@@ -1,21 +1,17 @@
<?php $TRANSLATIONS = array(
"Error (de)activating addressbook." => "在啟用或關閉電話簿時發生錯誤",
+"Error updating addressbook." => "電話簿更新中發生錯誤",
+"No ID provided" => "未提供 ID",
+"No contacts found." => "沒有找到聯絡人",
"There was an error adding the contact." => "添加通訊錄發生錯誤",
"Cannot add empty property." => "不可添加空白內容",
"At least one of the address fields has to be filled out." => "至少必須填寫一欄地址",
-"Error adding contact property." => "添加通訊錄內容中發生錯誤",
-"No ID provided" => "未提供 ID",
-"No contacts found." => "沒有找到聯絡人",
-"Missing ID" => "遺失ID",
-"Error adding addressbook." => "添加電話簿中發生錯誤",
-"Error activating addressbook." => "啟用電話簿中發生錯誤",
"Information about vCard is incorrect. Please reload the page." => "有關 vCard 的資訊不正確,請重新載入此頁。",
"Error deleting contact property." => "刪除通訊錄內容中發生錯誤",
+"Missing ID" => "遺失ID",
"Error updating contact property." => "更新通訊錄內容中發生錯誤",
-"Error updating addressbook." => "電話簿更新中發生錯誤",
"No file was uploaded" => "沒有已上傳的檔案",
"Contacts" => "通訊錄",
-"Addressbook not found." => "找不到通訊錄",
"This is not your addressbook." => "這不是你的電話簿",
"Contact could not be found." => "通訊錄未發現",
"Address" => "地址",
@@ -32,23 +28,15 @@
"Video" => "影片",
"Pager" => "呼叫器",
"Internet" => "網際網路",
+"Birthday" => "生日",
"{name}'s Birthday" => "{name}的生日",
"Contact" => "通訊錄",
"Add Contact" => "添加通訊錄",
"Addressbooks" => "電話簿",
-"Configure Address Books" => "設定通訊錄",
-"New Address Book" => "新電話簿",
-"Import from VCF" => "從VCF匯入",
-"CardDav Link" => "CardDav 聯結",
-"Download" => "下載",
-"Edit" => "編輯",
-"Delete" => "刪除",
-"Download contact" => "下載通訊錄",
-"Delete contact" => "刪除通訊錄",
"Edit name details" => "編輯姓名詳細資訊",
+"Delete" => "刪除",
"Nickname" => "綽號",
"Enter nickname" => "輸入綽號",
-"Birthday" => "生日",
"dd-mm-yyyy" => "dd-mm-yyyy",
"Groups" => "群組",
"Separate groups with commas" => "用逗號分隔群組",
@@ -63,18 +51,17 @@
"Edit address details" => "電子郵件住址詳細資訊",
"Add notes here." => "在這裡新增註解",
"Add field" => "新增欄位",
-"Profile picture" => "個人資料照片",
"Phone" => "電話",
"Note" => "註解",
+"Download contact" => "下載通訊錄",
+"Delete contact" => "刪除通訊錄",
"Type" => "類型",
"PO Box" => "通訊地址",
"Extended" => "分機",
-"Street" => "街道",
"City" => "城市",
"Region" => "地區",
"Zipcode" => "郵遞區號",
"Country" => "國家",
-"Add" => "添加",
"Addressbook" => "電話簿",
"Mr" => "先生",
"Sir" => "先生",
@@ -83,11 +70,9 @@
"Given name" => "給定名(名)",
"Additional names" => "額外名",
"Family name" => "家族名(姓)",
-"New Addressbook" => "新電話簿",
-"Edit Addressbook" => "編輯電話簿",
-"Displayname" => "顯示名稱",
-"Active" => "作用中",
+"Download" => "下載",
+"Edit" => "編輯",
+"New Address Book" => "新電話簿",
"Save" => "儲存",
-"Submit" => "提出",
"Cancel" => "取消"
);
diff --git a/apps/contacts/lib/app.php b/apps/contacts/lib/app.php
index 74464aa718b..855a9c74160 100644
--- a/apps/contacts/lib/app.php
+++ b/apps/contacts/lib/app.php
@@ -22,16 +22,34 @@ class OC_Contacts_App {
public static $categories = null;
public static function getAddressbook($id) {
+ // TODO: Throw an exception instead of returning json.
$addressbook = OC_Contacts_Addressbook::find( $id );
- if ($addressbook === false) {
- OCP\Util::writeLog('contacts', 'Addressbook not found: '. $id, OCP\Util::ERROR);
- OCP\JSON::error(array('data' => array( 'message' => self::$l10n->t('Addressbook not found.'))));
- } else if ($addressbook['userid'] != OCP\USER::getUser()) {
- if ($shared = OCP\Share::getItemSharedWithBySource('addressbook', $id)) {
- $addressbook['displayname'] = $shared['item_target'];
- } else {
- OCP\Util::writeLog('contacts', 'Addressbook('.$id.') is not from '.OCP\USER::getUser(), OCP\Util::ERROR);
- OCP\JSON::error(array('data' => array( 'message' => self::$l10n->t('This is not your addressbook.'))));
+ if($addressbook === false || $addressbook['userid'] != OCP\USER::getUser()) {
+ if ($addressbook === false) {
+ OCP\Util::writeLog('contacts',
+ 'Addressbook not found: '. $id,
+ OCP\Util::ERROR);
+ //throw new Exception('Addressbook not found: '. $id);
+ OCP\JSON::error(
+ array(
+ 'data' => array(
+ 'message' => self::$l10n->t('Addressbook not found: ' . $id)
+ )
+ )
+ );
+ }
+ else {
+ OCP\Util::writeLog('contacts',
+ 'Addressbook('.$id.') is not from '.OCP\USER::getUser(),
+ OCP\Util::ERROR);
+ //throw new Exception('This is not your addressbook.');
+ OCP\JSON::error(
+ array(
+ 'data' => array(
+ 'message' => self::$l10n->t('This is not your addressbook.')
+ )
+ )
+ );
}
}
return $addressbook;
diff --git a/apps/contacts/lib/connector_sabre.php b/apps/contacts/lib/connector_sabre.php
index 9fcfff08fa8..2bc6c9a28ca 100644
--- a/apps/contacts/lib/connector_sabre.php
+++ b/apps/contacts/lib/connector_sabre.php
@@ -40,7 +40,8 @@ class OC_Connector_Sabre_CardDAV extends Sabre_CardDAV_Backend_Abstract {
'uri' => $i['uri'],
'principaluri' => 'principals/'.$i['userid'],
'{DAV:}displayname' => $i['displayname'],
- '{' . Sabre_CardDAV_Plugin::NS_CARDDAV . '}addressbook-description' => $i['description'],
+ '{' . Sabre_CardDAV_Plugin::NS_CARDDAV . '}addressbook-description'
+ => $i['description'],
'{http://calendarserver.org/ns/}getctag' => $i['ctag'],
);
}
@@ -69,7 +70,8 @@ class OC_Connector_Sabre_CardDAV extends Sabre_CardDAV_Backend_Abstract {
case '{DAV:}displayname' :
$name = $newvalue;
break;
- case '{' . Sabre_CardDAV_Plugin::NS_CARDDAV . '}addressbook-description' :
+ case '{' . Sabre_CardDAV_Plugin::NS_CARDDAV
+ . '}addressbook-description' :
$description = $newvalue;
break;
default :
@@ -104,16 +106,23 @@ class OC_Connector_Sabre_CardDAV extends Sabre_CardDAV_Backend_Abstract {
case '{DAV:}displayname' :
$displayname = $newvalue;
break;
- case '{' . Sabre_CardDAV_Plugin::NS_CARDDAV . '}addressbook-description' :
+ case '{' . Sabre_CardDAV_Plugin::NS_CARDDAV
+ . '}addressbook-description' :
$description = $newvalue;
break;
default :
- throw new Sabre_DAV_Exception_BadRequest('Unknown property: ' . $property);
+ throw new Sabre_DAV_Exception_BadRequest('Unknown property: '
+ . $property);
}
}
- OC_Contacts_Addressbook::addFromDAVData($principaluri, $url, $name, $description);
+ OC_Contacts_Addressbook::addFromDAVData(
+ $principaluri,
+ $url,
+ $name,
+ $description
+ );
}
/**
@@ -182,7 +191,9 @@ class OC_Connector_Sabre_CardDAV extends Sabre_CardDAV_Backend_Abstract {
* @return bool
*/
public function updateCard($addressbookid, $carduri, $carddata) {
- return OC_Contacts_VCard::editFromDAVData($addressbookid, $carduri, $carddata);
+ return OC_Contacts_VCard::editFromDAVData(
+ $addressbookid, $carduri, $carddata
+ );
}
/**
diff --git a/apps/contacts/settings.php b/apps/contacts/settings.php
index a079499381b..5f639399c95 100644
--- a/apps/contacts/settings.php
+++ b/apps/contacts/settings.php
@@ -3,4 +3,4 @@
$tmpl = new OCP\Template( 'contacts', 'settings');
$tmpl->assign('addressbooks', OC_Contacts_Addressbook::all(OCP\USER::getUser()), false);
-return $tmpl->fetchPage();
+$tmpl->printPage();
diff --git a/apps/contacts/templates/index.php b/apps/contacts/templates/index.php
index b2dde12684c..024b1d150f8 100644
--- a/apps/contacts/templates/index.php
+++ b/apps/contacts/templates/index.php
@@ -11,13 +11,13 @@
</div>
<div id="uploadprogressbar"></div>
<div id="bottomcontrols">
- <form id="import_upload_form" action="<?php echo OCP\Util::linkTo('contacts', 'ajax/uploadimport.php'); ?>" method="post" enctype="multipart/form-data" target="import_upload_target">
<button class="svg" id="contacts_newcontact" title="<?php echo $l->t('Add Contact'); ?>"><img class="svg" src="<?php echo OCP\Util::imagePath('contacts', 'contact-new.svg'); ?>" alt="<?php echo $l->t('Add Contact'); ?>" /></button>
- <span class="svg" id="contacts_import" title="<?php echo $l->t('Import'); ?>">
- <input class="float" id="import_upload_start" type="file" accept="text/directory,text/vcard,text/x-vcard" name="importfile" />
+ <button class="svg import tip" title="<?php echo $l->t('Import'); ?>">
<img class="svg" src="core/img/actions/upload.svg" alt="<?php echo $l->t('Import'); ?>" />
- </span>
- <button class="svg" id="chooseaddressbook" title="<?php echo $l->t('Addressbooks'); ?>"><img class="svg" src="core/img/actions/settings.svg" alt="<?php echo $l->t('Addressbooks'); ?>" /></button>
+ </button>
+ <button class="svg settings tip" title="<?php echo $l->t('Settings'); ?>"><img class="svg" src="core/img/actions/settings.svg" alt="<?php echo $l->t('Addressbooks'); ?>" /></button>
+ <form id="import_upload_form" action="<?php echo OCP\Util::linkTo('contacts', 'ajax/uploadimport.php'); ?>" method="post" enctype="multipart/form-data" target="import_upload_target">
+ <input class="float" id="import_upload_start" type="file" accept="text/directory,text/vcard,text/x-vcard" name="importfile" />
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $_['uploadMaxFilesize'] ?>" id="max_upload">
</form>
<iframe name="import_upload_target" id='import_upload_target' src=""></iframe>
@@ -32,22 +32,22 @@
echo $this->inc('part.no_contacts');
}
?>
- <div class="hidden" id="ninjahelp">
- <a class="close" tabindex="0" role="button">
- <img class="svg" src="core/img/actions/delete.svg" alt="<?php echo $l->t('Close'); ?>" />
- </a>
+ <div class="hidden popup" id="ninjahelp">
+ <a class="close" tabindex="0" role="button" title="<?php echo $l->t('Close'); ?>"></a>
<h2><?php echo $l->t('Keyboard shortcuts'); ?></h2>
<div class="help-section">
<h3><?php echo $l->t('Navigation'); ?></h3>
<dl>
- <dt>j/Down/Space</dt>
+ <dt>j/Down</dt>
<dd><?php echo $l->t('Next contact in list'); ?></dd>
- <dt>k/Up/Shift-Space</dt>
+ <dt>k/Up</dt>
<dd><?php echo $l->t('Previous contact in list'); ?></dd>
- <dt>o/Enter</dt>
+ <dt>o</dt>
<dd><?php echo $l->t('Expand/collapse current addressbook'); ?></dd>
- <dt>n/p</dt>
- <dd><?php echo $l->t('Next/previous addressbook'); ?></dd>
+ <dt>n/PageDown</dt>
+ <dd><?php echo $l->t('Next addressbook'); ?></dd>
+ <dt>p/PageUp</dt>
+ <dd><?php echo $l->t('Previous addressbook'); ?></dd>
</dl>
</div>
<div class="help-section">
@@ -57,8 +57,8 @@
<dd><?php echo $l->t('Refresh contacts list'); ?></dd>
<dt>a</dt>
<dd><?php echo $l->t('Add new contact'); ?></dd>
- <dt>Shift-a</dt>
- <dd><?php echo $l->t('Add new addressbook'); ?></dd>
+ <!-- dt>Shift-a</dt>
+ <dd><?php echo $l->t('Add new addressbook'); ?></dd -->
<dt>Shift-Delete</dt>
<dd><?php echo $l->t('Delete current contact'); ?></dd>
</dl>
diff --git a/apps/contacts/templates/part.chooseaddressbook.php b/apps/contacts/templates/part.chooseaddressbook.php
deleted file mode 100644
index caed67736c5..00000000000
--- a/apps/contacts/templates/part.chooseaddressbook.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<div id="chooseaddressbook_dialog" title="<?php echo $l->t("Configure Address Books"); ?>">
-<table width="100%" style="border: 0;">
-<?php
-$option_addressbooks = OC_Contacts_Addressbook::all(OCP\USER::getUser());
-for($i = 0; $i < count($option_addressbooks); $i++){
- echo "<tr>";
- $tmpl = new OCP\Template('contacts', 'part.chooseaddressbook.rowfields');
- $tmpl->assign('addressbook', $option_addressbooks[$i]);
- $tmpl->assign('active', OC_Contacts_Addressbook::isActive($option_addressbooks[$i]['id']));
- $tmpl->printpage();
- echo "</tr>";
-}
-?>
-<tr>
- <td colspan="5" style="padding: 0.5em;">
- <a class="button" href="#" onclick="Contacts.UI.Addressbooks.newAddressbook(this);"><?php echo $l->t('New Address Book') ?></a>
- </td>
-</tr>
-<tr>
- <td colspan="5">
- <p style="margin: 0 auto;width: 90%;"><input style="display:none;width: 90%;float: left;" type="text" id="carddav_url" onmouseover="$('#carddav_url').select();" title="<?php echo $l->t("CardDav Link"); ?>"><a class="action delete" id="carddav_url_close" style="height: 20px;vertical-align: middle;display: none;" title="close" onclick="$('#carddav_url').hide();$('#carddav_url_close').hide();"/></a></p>
- </td>
-</tr>
-</table>
diff --git a/apps/contacts/templates/part.chooseaddressbook.rowfields.php b/apps/contacts/templates/part.chooseaddressbook.rowfields.php
deleted file mode 100644
index c0a3ba68cdf..00000000000
--- a/apps/contacts/templates/part.chooseaddressbook.rowfields.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<td width="20px">
- <input id="active_<?php echo $_['addressbook']["id"]; ?>" type="checkbox" onClick="Contacts.UI.Addressbooks.activation(this, <?php echo $_['addressbook']["id"]; ?>)" <?php echo (OC_Contacts_Addressbook::isActive($_['addressbook']["id"]) ? ' checked="checked"' : ''); ?>>
-</td>
-<td>
- <label for="active_<?php echo $_['addressbook']["id"]; ?>"><?php echo $_['addressbook']["displayname"]; ?></label>
-</td>
-<td width="20px">
- <a onclick="Contacts.UI.showCardDAVUrl('<?php echo OCP\USER::getUser(); ?>', '<?php echo rawurlencode(html_entity_decode($_['addressbook']['uri'], ENT_QUOTES, 'UTF-8')); ?>');" title="<?php echo $l->t("CardDav Link"); ?>" class="svg action globe"></a>
-</td>
-<td width="20px">
- <a href="<?php echo OCP\Util::linkTo('contacts', 'export.php'); ?>?bookid=<?php echo $_['addressbook']["id"]; ?>" title="<?php echo $l->t("Download"); ?>" class="svg action download"></a>
-</td>
-<td width="20px">
- <a title="<?php echo $l->t("Edit"); ?>" class="svg action edit" onclick="Contacts.UI.Addressbooks.editAddressbook(this, <?php echo $_['addressbook']["id"]; ?>);"></a>
-</td>
-<td width="20px">
- <a title="<?php echo $l->t("Share"); ?>" class="svg action share" data-item-type="addressbook" data-item="<?php echo $_['addressbook']['id']; ?>" />
-</td>
-<td width="20px">
- <a onclick="Contacts.UI.Addressbooks.deleteAddressbook(this, <?php echo $_['addressbook']["id"]; ?>);" title="<?php echo $l->t("Delete"); ?>" class="svg action delete"></a>
-</td>
diff --git a/apps/contacts/templates/part.contact.php b/apps/contacts/templates/part.contact.php
index 4233bffede3..3670ce0389b 100644
--- a/apps/contacts/templates/part.contact.php
+++ b/apps/contacts/templates/part.contact.php
@@ -1,3 +1,4 @@
+<div id="appsettings" class="popup bottomleft hidden"></div>
<?php
$id = isset($_['id']) ? $_['id'] : '';
?>
@@ -73,7 +74,7 @@ $id = isset($_['id']) ? $_['id'] : '';
<div id="phones">
<ul id="phonelist" class="propertylist">
<li class="template hidden" data-element="TEL">
- <input type="checkbox" class="contacts_property tip" name="parameters[TYPE][]" value="PREF" title="<?php echo $l->t('Preferred'); ?>" />
+ <input type="checkbox" class="contacts_property tip" name="parameters[TYPE][]" value="PREF" title="<?php echo $l->t('Preferred'); ?>" />
<input type="text" required="required" class="nonempty contacts_property" name="value" value="" placeholder="<?php echo $l->t('Enter phone number'); ?>" />
<select multiple="multiple" name="parameters[TYPE][]">
<?php echo OCP\html_select_options($_['phone_types'], array()) ?>
diff --git a/apps/contacts/templates/part.edit_address_dialog.php b/apps/contacts/templates/part.edit_address_dialog.php
index d5ea95ba465..81e24ba4d0e 100644
--- a/apps/contacts/templates/part.edit_address_dialog.php
+++ b/apps/contacts/templates/part.edit_address_dialog.php
@@ -57,6 +57,7 @@ $types = isset($_['types'])?$_['types']:array();
<input type="text" id="adr_country" name="value[ADR][6]" placeholder="<?php echo $l->t('Country'); ?>" value="<?php echo isset($adr[6])?$adr[6]:''; ?>">
</dd>
</dl>
+ <div style="width: 100%; text-align:center;">Powered by <a href="http://geonames.org/" target="_blank">geonames.org</a></div>
</fieldset>
</form>
</div>
diff --git a/apps/contacts/templates/part.editaddressbook.php b/apps/contacts/templates/part.editaddressbook.php
deleted file mode 100644
index c1c585687c4..00000000000
--- a/apps/contacts/templates/part.editaddressbook.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/**
- * Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-?>
-<td id="<?php echo $_['new'] ? 'new' : 'edit' ?>addressbook_dialog" title="<?php echo $_['new'] ? $l->t("New Addressbook") : $l->t("Edit Addressbook"); ?>" colspan="6">
-<table width="100%" style="border: 0;">
-<tr>
- <th><?php echo $l->t('Displayname') ?></th>
- <td>
- <input id="displayname_<?php echo $_['addressbook']['id'] ?>" type="text" value="<?php echo htmlspecialchars($_['addressbook']['displayname']) ?>">
- </td>
-</tr>
-<?php if (!$_['new']): ?>
-<tr>
- <td></td>
- <td>
- <input id="edit_active_<?php echo $_['addressbook']['id'] ?>" type="checkbox"<?php echo OC_Contacts_Addressbook::isActive($_['addressbook']['id']) ? ' checked="checked"' : '' ?>>
- <label for="edit_active_<?php echo $_['addressbook']['id'] ?>">
- <?php echo $l->t('Active') ?>
- </label>
- </td>
-</tr>
-<?php endif; ?>
-</table>
-<input style="float: left;" type="button" onclick="Contacts.UI.Addressbooks.submit(this, <?php echo $_['new'] ? "'new'" : $_['addressbook']['id'] ?>);" value="<?php echo $_['new'] ? $l->t("Save") : $l->t("Submit"); ?>">
-<input style="float: left;" type="button" onclick="Contacts.UI.Addressbooks.cancel(this, <?php echo $_['new'] ? "'new'" : $_['addressbook']['id'] ?>);" value="<?php echo $l->t("Cancel"); ?>">
-</td>
diff --git a/apps/contacts/templates/part.no_contacts.php b/apps/contacts/templates/part.no_contacts.php
index 5faa481bc3c..be12092d45d 100644
--- a/apps/contacts/templates/part.no_contacts.php
+++ b/apps/contacts/templates/part.no_contacts.php
@@ -1,3 +1,4 @@
+<div id="appsettings" class="popup bottomleft hidden"></div>
<div id="firstrun">
<?php echo $l->t('You have no contacts in your addressbook.') ?>
<div id="selections">
diff --git a/apps/contacts/templates/settings.php b/apps/contacts/templates/settings.php
index f520559d143..85dbca36fac 100644
--- a/apps/contacts/templates/settings.php
+++ b/apps/contacts/templates/settings.php
@@ -1,19 +1,54 @@
-<form id="contacts">
+<form id="contacts-settings">
<fieldset class="personalblock">
- <legend><?php echo $l->t('Contacts'); ?></legend>
<?php echo $l->t('CardDAV syncing addresses'); ?> (<a href="http://owncloud.org/synchronisation/" target="_blank"><?php echo $l->t('more info'); ?></a>)
<dl>
<dt><?php echo $l->t('Primary address (Kontact et al)'); ?></dt>
<dd><code><?php echo OCP\Util::linkToRemote('carddav'); ?></code></dd>
<dt><?php echo $l->t('iOS/OS X'); ?></dt>
<dd><code><?php echo OCP\Util::linkToRemote('carddav'); ?>principals/<?php echo OCP\USER::getUser(); ?></code>/</dd>
- <dt><?php echo $l->t('Read only vCard directory link(s)'); ?></dt>
- <dd>
+ <dt class="hidden"><?php echo $l->t('Addressbooks'); ?></dt>
+ <dd class="addressbooks-settings hidden">
+ <table>
<?php foreach($_['addressbooks'] as $addressbook) { ?>
- <a href="<?php echo OCP\Util::linkToRemote('carddav').'addressbooks/'.OCP\USER::getUser().'/'.rawurlencode($addressbook['uri']) ?>?export"><?php echo $addressbook['displayname'] ?></a><br />
+ <tr class="addressbook" data-id="<?php echo $addressbook['id'] ?>" data-uri="<?php echo $addressbook['uri'] ?>">
+ <td class="active">
+ <input type="checkbox" <?php echo (($addressbook['active']) == '1' ? ' checked="checked"' : ''); ?> />
+ </td>
+ <td class="name"><?php echo $addressbook['displayname'] ?></td>
+ <td class="description"><?php echo $addressbook['description'] ?></td>
+ <td class="action">
+ <a class="svg action globe" title="<?php echo $l->t('Show CardDav link'); ?>"></a>
+ </td>
+ <td class="action">
+ <a class="svg action cloud" title="<?php echo $l->t('Show read-only VCF link'); ?>"></a>
+ </td>
+ <td class="action">
+ <a class="svg action download" title="<?php echo $l->t('Download'); ?>"
+ href="<?php echo OCP\Util::linkToRemote('carddav').'addressbooks/'.OCP\USER::getUser().'/'
+ .rawurlencode($addressbook['uri']) ?>?export"></a>
+ </td>
+ <td class="action">
+ <a class="svg action edit" title="<?php echo $l->t("Edit"); ?>"></a>
+ </td>
+ <td class="action">
+ <a class="svg action delete" title="<?php echo $l->t("Delete"); ?>"></a>
+ </td>
+ </tr>
<?php } ?>
+ </table>
+ <div class="actions" style="width: 100%;">
+ <input class="active hidden" type="checkbox" />
+ <button class="new"><?php echo $l->t('New Address Book') ?></button>
+ <input class="name hidden" type="text" autofocus="autofocus" placeholder="<?php echo $l->t('Name'); ?>" />
+ <input class="description hidden" type="text" placeholder="<?php echo $l->t('Description'); ?>" />
+ <input class="link hidden" style="width: 80%" type="text" autofocus="autofocus" />
+ <button class="save hidden"><?php echo $l->t('Save') ?></button>
+ <button class="cancel hidden"><?php echo $l->t('Cancel') ?></button>
+ </div>
</dd>
</dl>
- Powered by <a href="http://geonames.org/" target="_blank">geonames.org webservice</a>
+ <div style="width: 100%; clear: both;">
+ <button class="moreless"><?php echo $l->t('More...') ?></button>
+ </div>
</fieldset>
</form>