summaryrefslogtreecommitdiffstats
path: root/apps/contacts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/contacts')
-rw-r--r--apps/contacts/ajax/addproperty.php5
-rw-r--r--apps/contacts/ajax/getdetails.php3
-rw-r--r--apps/contacts/ajax/setproperty.php2
-rw-r--r--apps/contacts/appinfo/app.php2
-rw-r--r--apps/contacts/l10n/ar.php36
-rw-r--r--apps/contacts/l10n/ca.php4
-rw-r--r--apps/contacts/l10n/cs_CZ.php22
-rw-r--r--apps/contacts/l10n/da.php22
-rw-r--r--apps/contacts/l10n/de.php22
-rw-r--r--apps/contacts/l10n/el.php2
-rw-r--r--apps/contacts/l10n/eo.php2
-rw-r--r--apps/contacts/l10n/es.php24
-rw-r--r--apps/contacts/l10n/et_EE.php36
-rw-r--r--apps/contacts/l10n/eu.php2
-rw-r--r--apps/contacts/l10n/fr.php2
-rw-r--r--apps/contacts/l10n/gl.php2
-rw-r--r--apps/contacts/l10n/he.php2
-rw-r--r--apps/contacts/l10n/hr.php2
-rw-r--r--apps/contacts/l10n/hu_HU.php2
-rw-r--r--apps/contacts/l10n/ia.php1
-rw-r--r--apps/contacts/l10n/it.php2
-rw-r--r--apps/contacts/l10n/ja_JP.php36
-rw-r--r--apps/contacts/l10n/lb.php2
-rw-r--r--apps/contacts/l10n/nl.php2
-rw-r--r--apps/contacts/l10n/nn_NO.php2
-rw-r--r--apps/contacts/l10n/pl.php2
-rw-r--r--apps/contacts/l10n/pt_BR.php2
-rw-r--r--apps/contacts/l10n/pt_PT.php2
-rw-r--r--apps/contacts/l10n/ro.php2
-rw-r--r--apps/contacts/l10n/ru.php36
-rw-r--r--apps/contacts/l10n/sk_SK.php30
-rw-r--r--apps/contacts/l10n/sl.php2
-rw-r--r--apps/contacts/l10n/sr.php2
-rw-r--r--apps/contacts/l10n/sr@latin.php2
-rw-r--r--apps/contacts/l10n/sv.php2
-rw-r--r--apps/contacts/l10n/th_TH.php64
-rw-r--r--apps/contacts/l10n/tr.php2
-rw-r--r--apps/contacts/l10n/zh_CN.php36
-rw-r--r--apps/contacts/lib/app.php14
-rw-r--r--apps/contacts/lib/vcard.php16
-rw-r--r--apps/contacts/photo.php55
-rw-r--r--apps/contacts/templates/part.addcardform.php2
-rw-r--r--apps/contacts/templates/part.chooseaddressbook.php4
-rw-r--r--apps/contacts/templates/part.contacts.php13
-rw-r--r--apps/contacts/thumbnail.php38
45 files changed, 439 insertions, 126 deletions
diff --git a/apps/contacts/ajax/addproperty.php b/apps/contacts/ajax/addproperty.php
index 0050f5f49aa..f016820ce5f 100644
--- a/apps/contacts/ajax/addproperty.php
+++ b/apps/contacts/ajax/addproperty.php
@@ -35,7 +35,7 @@ $name = $_POST['name'];
$value = $_POST['value'];
if(!is_array($value)){
$value = trim($value);
- if(!$value && in_array($name, array('TEL', 'EMAIL', 'ORG'))) {
+ if(!$value && in_array($name, array('TEL', 'EMAIL', 'ORG', 'BDAY', 'NICKNAME'))) {
OC_JSON::error(array('data' => array('message' => $l->t('Cannot add empty property.'))));
exit();
}
@@ -72,6 +72,7 @@ foreach ($parameters as $key=>$element) {
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$element);
}
}
+$checksum = md5($vcard->children[$line]->serialize());
if(!OC_Contacts_VCard::edit($id,$vcard->serialize())) {
OC_JSON::error(array('data' => array('message' => $l->t('Error adding contact property.'))));
@@ -88,4 +89,4 @@ $tmpl->assign('phone_types',$phone_types);
$tmpl->assign('property',OC_Contacts_VCard::structureProperty($property,$line));
$page = $tmpl->fetchPage();
-OC_JSON::success(array('data' => array( 'page' => $page )));
+OC_JSON::success(array('data' => array( 'checksum' => $checksum, 'page' => $page )));
diff --git a/apps/contacts/ajax/getdetails.php b/apps/contacts/ajax/getdetails.php
index 8cc0f9cbb0f..4819916f4c3 100644
--- a/apps/contacts/ajax/getdetails.php
+++ b/apps/contacts/ajax/getdetails.php
@@ -28,6 +28,7 @@ OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('contacts');
$id = $_GET['id'];
+$new = isset($_GET['new']) ? true : false;
$vcard = OC_Contacts_App::getContactVCard( $id );
-OC_Contacts_App::renderDetails($id, $vcard);
+OC_Contacts_App::renderDetails($id, $vcard, $new);
diff --git a/apps/contacts/ajax/setproperty.php b/apps/contacts/ajax/setproperty.php
index e0cd70236c8..cdc6d34c524 100644
--- a/apps/contacts/ajax/setproperty.php
+++ b/apps/contacts/ajax/setproperty.php
@@ -95,4 +95,4 @@ $tmpl->assign('phone_types',$phone_types);
$tmpl->assign('property',OC_Contacts_VCard::structureProperty($vcard->children[$line],$line));
$page = $tmpl->fetchPage();
-OC_JSON::success(array('data' => array( 'page' => $page, 'line' => $line, 'oldchecksum' => $_POST['checksum'] )));
+OC_JSON::success(array('data' => array( 'page' => $page, 'line' => $line, 'checksum' => $checksum, 'oldchecksum' => $_POST['checksum'] )));
diff --git a/apps/contacts/appinfo/app.php b/apps/contacts/appinfo/app.php
index df7e8cec6e0..a5b31006247 100644
--- a/apps/contacts/appinfo/app.php
+++ b/apps/contacts/appinfo/app.php
@@ -6,7 +6,7 @@ OC::$CLASSPATH['OC_Contacts_Addressbook'] = 'apps/contacts/lib/addressbook.php';
OC::$CLASSPATH['OC_Contacts_VCard'] = 'apps/contacts/lib/vcard.php';
OC::$CLASSPATH['OC_Contacts_Hooks'] = 'apps/contacts/lib/hooks.php';
OC::$CLASSPATH['OC_Connector_Sabre_CardDAV'] = 'apps/contacts/lib/connector_sabre.php';
-OC_HOOK::connect('OC_User', 'post_createUser', 'OC_Contacts_Hooks', 'deleteUser');
+OC_HOOK::connect('OC_User', 'post_deleteUser', 'OC_Contacts_Hooks', 'deleteUser');
OC_App::register( array(
'order' => 10,
diff --git a/apps/contacts/l10n/ar.php b/apps/contacts/l10n/ar.php
index 935ac27dd0d..88671f600ef 100644
--- a/apps/contacts/l10n/ar.php
+++ b/apps/contacts/l10n/ar.php
@@ -1,4 +1,15 @@
<?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." => "خطء خلال اضافة صفة المعرفه.",
+"Error adding addressbook." => "خطء خلال اضافة كتاب عناوين.",
+"Error activating addressbook." => "خطء خلال تفعيل كتاب العناوين.",
+"Error deleting contact property." => "خطء خلال محي الصفه.",
+"Error updating contact property." => "خطء خلال تعديل الصفه.",
+"Error updating addressbook." => "خطء خلال تعديل كتاب العناوين",
+"Contacts" => "المعارف",
"This is not your addressbook." => "هذا ليس دفتر عناوينك.",
"Contact could not be found." => "لم يتم العثور على الشخص.",
"Information about vCard is incorrect. Please reload the page." => "المعلومات الموجودة في ال vCard غير صحيحة. الرجاء إعادة تحديث الصفحة.",
@@ -14,11 +25,13 @@
"Fax" => "الفاكس",
"Video" => "الفيديو",
"Pager" => "الرنان",
+"Contact" => "معرفه",
"This is not your contact." => ".هذا ليس من معارفي",
-"This card is not RFC compatible." => "هذا الكرت ليس متلائم مع نظام ال RFC.",
-"This card does not contain a photo." => "لا يحتوي هذا الكرت على صورة.",
"Add Contact" => "أضف شخص ",
+"Addressbooks" => "كتب العناوين",
+"Addressbook" => "كتاب العناوين",
"Name" => "الاسم",
+"Type" => "نوع",
"PO Box" => "العنوان البريدي",
"Extended" => "إضافة",
"Street" => "شارع",
@@ -27,8 +40,25 @@
"Zipcode" => "رقم المنطقة",
"Country" => "البلد",
"Create Contact" => "أضف شخص ",
+"Choose active Address Books" => "أختر كتاب العناوين الفعال",
+"New Address Book" => "كتاب عناوين جديد",
+"CardDav Link" => "وصلة CardDav",
+"Download" => "انزال",
"Edit" => "تعديل",
"Delete" => "حذف",
+"Download contact" => "انزال المعرفه",
+"Delete contact" => "امحي المعرفه",
+"Add" => "أدخل",
+"New Addressbook" => "كتاب عناوين جديد",
+"Edit Addressbook" => "عدل كتاب العناوين",
+"Displayname" => "الاسم المعروض",
+"Active" => "فعال",
+"Save" => "حفظ",
+"Submit" => "ارسال",
+"Cancel" => "الغاء",
"Birthday" => "تاريخ الميلاد",
-"Phone" => "الهاتف"
+"Preferred" => "مفضل",
+"Phone" => "الهاتف",
+"Update" => "تعديل",
+"CardDAV syncing address:" => "CardDAV مزامنه العناوين:"
);
diff --git a/apps/contacts/l10n/ca.php b/apps/contacts/l10n/ca.php
index f421651671d..72338cf40d4 100644
--- a/apps/contacts/l10n/ca.php
+++ b/apps/contacts/l10n/ca.php
@@ -27,9 +27,7 @@
"Pager" => "Paginador",
"Contact" => "Contacte",
"This is not your contact." => "Aquest contacte no és vostre.",
-"This card is not RFC compatible." => "Aquesta targeta no és compatible amb RFC.",
-"This card does not contain a photo." => "Aquesta targeta no conté foto.",
-"Add Contact" => "Afegiu un contacte",
+"Add Contact" => "Afegir un contacte",
"Addressbooks" => "Llibretes d'adreces",
"Addressbook" => "Llibreta d'adreces",
"Name" => "Nom",
diff --git a/apps/contacts/l10n/cs_CZ.php b/apps/contacts/l10n/cs_CZ.php
index 0ccf9de8d0e..0831a91abcb 100644
--- a/apps/contacts/l10n/cs_CZ.php
+++ b/apps/contacts/l10n/cs_CZ.php
@@ -1,4 +1,15 @@
<?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ů",
+"Error adding contact property." => "Chyba během přdávání údaje kontaktu.",
+"Error adding addressbook." => "Chyba při přidávání adresáře.",
+"Error activating addressbook." => "Chyba při aktivaci adresáře.",
+"Error deleting contact property." => "Chyba při odstraňování údaje kontaktu.",
+"Error updating contact property." => "Chyba při aktualizaci údaje kontaktu.",
+"Error updating addressbook." => "Chyba při aktualizaci adresáře.",
+"Contacts" => "Kontakty",
"This is not your addressbook." => "Toto není Váš adresář.",
"Contact could not be found." => "Kontakt nebyl nalezen.",
"Information about vCard is incorrect. Please reload the page." => "Informace o vCard je nesprávná. Obnovte stránku, prosím.",
@@ -14,10 +25,11 @@
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
+"Contact" => "Kontakt",
"This is not your contact." => "Toto není Váš kontakt.",
-"This card is not RFC compatible." => "Tato karta není kompatibilní s RFC.",
-"This card does not contain a photo." => "Tato karta neobsahuje foto",
"Add Contact" => "Přidat kontakt",
+"Addressbooks" => "Adresáře",
+"Addressbook" => "Adresář",
"Name" => "Jméno",
"Type" => "Typ",
"PO Box" => "PO box",
@@ -34,8 +46,11 @@
"Download" => "Stažení",
"Edit" => "Editovat",
"Delete" => "Odstranit",
+"Download contact" => "Stáhnout kontakt",
"Delete contact" => "Odstranit kontakt",
"Add" => "Přidat",
+"New Addressbook" => "Nový adresář",
+"Edit Addressbook" => "Editace adresáře",
"Displayname" => "Zobrazené jméno",
"Active" => "Aktivní",
"Save" => "Uložit",
@@ -44,5 +59,6 @@
"Birthday" => "Narozeniny",
"Preferred" => "Preferovaný",
"Phone" => "Telefon",
-"Update" => "Aktualizovat"
+"Update" => "Aktualizovat",
+"CardDAV syncing address:" => "CardDAV synchronizuje adresu:"
);
diff --git a/apps/contacts/l10n/da.php b/apps/contacts/l10n/da.php
index 2c597d1993b..a0a3760d013 100644
--- a/apps/contacts/l10n/da.php
+++ b/apps/contacts/l10n/da.php
@@ -1,4 +1,15 @@
<?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.",
+"Error adding contact property." => "Fejl ved tilføjelse af egenskab.",
+"Error adding addressbook." => "Fejl ved tilføjelse af adressebog.",
+"Error activating addressbook." => "Fejl ved aktivering af adressebog.",
+"Error deleting contact property." => "Fejl ved sletning af egenskab for kontaktperson.",
+"Error updating contact property." => "Fejl ved opdatering af egenskab for kontaktperson.",
+"Error updating addressbook." => "Fejl ved opdatering af adressebog",
+"Contacts" => "Kontaktpersoner",
"This is not your addressbook." => "Dette er ikke din adressebog.",
"Contact could not be found." => "Kontaktperson kunne ikke findes.",
"Information about vCard is incorrect. Please reload the page." => "Informationen om vCard er forkert. Genindlæs siden.",
@@ -14,10 +25,11 @@
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Personsøger",
+"Contact" => "Kontaktperson",
"This is not your contact." => "Dette er ikke din kontaktperson.",
-"This card is not RFC compatible." => "Dette kort er ikke RFC-kompatibelt.",
-"This card does not contain a photo." => "Dette kort indeholder ikke et foto.",
"Add Contact" => "Tilføj kontaktperson",
+"Addressbooks" => "Adressebøger",
+"Addressbook" => "Adressebog",
"Name" => "Navn",
"Type" => "Type",
"PO Box" => "Postboks",
@@ -34,8 +46,11 @@
"Download" => "Download",
"Edit" => "Rediger",
"Delete" => "Slet",
+"Download contact" => "Download kontaktperson",
"Delete contact" => "Slet kontaktperson",
"Add" => "Tilføj",
+"New Addressbook" => "Ny adressebog",
+"Edit Addressbook" => "Rediger adressebog",
"Displayname" => "Vist navn",
"Active" => "Aktiv",
"Save" => "Gem",
@@ -44,5 +59,6 @@
"Birthday" => "Fødselsdag",
"Preferred" => "Foretrukken",
"Phone" => "Telefon",
-"Update" => "Opdater"
+"Update" => "Opdater",
+"CardDAV syncing address:" => "Synkroniseringsadresse for CardDAV:"
);
diff --git a/apps/contacts/l10n/de.php b/apps/contacts/l10n/de.php
index 53f8a9e6648..278009092c1 100644
--- a/apps/contacts/l10n/de.php
+++ b/apps/contacts/l10n/de.php
@@ -1,4 +1,15 @@
<?php $TRANSLATIONS = array(
+"Error (de)activating addressbook." => "(De-)Aktivierung des Adressbuches fehlgeschlagen",
+"There was an error adding the contact." => "Erstellen des Kontakts fehlgeschlagen",
+"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.",
+"Error adding contact property." => "Kontakt ändern fehlgeschlagen",
+"Error adding addressbook." => "Adressbuch hinzufügen fehlgeschlagen",
+"Error activating addressbook." => "Adressbuchaktivierung fehlgeschlagen",
+"Error deleting contact property." => "Kontakteigenschaft löschen fehlgeschlagen",
+"Error updating contact property." => "Kontakteigenschaft aktualisieren fehlgeschlagen",
+"Error updating addressbook." => "Adressbuch aktualisieren fehlgeschlagen",
+"Contacts" => "Kontakte",
"This is not your addressbook." => "Dies ist nicht dein Adressbuch.",
"Contact could not be found." => "Kontakt konnte nicht gefunden werden.",
"Information about vCard is incorrect. Please reload the page." => "Die Information der vCard ist fehlerhaft. Bitte aktualisiere die Seite.",
@@ -14,10 +25,11 @@
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
+"Contact" => "Kontakt",
"This is not your contact." => "Dies ist nicht dein Kontakt.",
-"This card is not RFC compatible." => "Diese Karte ist nicht RFC-kompatibel.",
-"This card does not contain a photo." => "Diese Karte enthält kein Foto.",
"Add Contact" => "Kontakt hinzufügen",
+"Addressbooks" => "Adressbücher",
+"Addressbook" => "Adressbuch",
"Name" => "Name",
"Type" => "Typ",
"PO Box" => "Postfach",
@@ -34,8 +46,11 @@
"Download" => "Herunterladen",
"Edit" => "Bearbeiten",
"Delete" => "Löschen",
+"Download contact" => "Kontakt herunterladen",
"Delete contact" => "Kontakt löschen",
"Add" => "Hinzufügen",
+"New Addressbook" => "Neues Adressbuch",
+"Edit Addressbook" => "Adressbuch editieren",
"Displayname" => "Anzeigename",
"Active" => "Aktiv",
"Save" => "Speichern",
@@ -44,5 +59,6 @@
"Birthday" => "Geburtstag",
"Preferred" => "Bevorzugt",
"Phone" => "Telefon",
-"Update" => "Aktualisieren"
+"Update" => "Aktualisieren",
+"CardDAV syncing address:" => "CardDAV Sync-Adresse:"
);
diff --git a/apps/contacts/l10n/el.php b/apps/contacts/l10n/el.php
index 8f2b1e30464..d58b199b674 100644
--- a/apps/contacts/l10n/el.php
+++ b/apps/contacts/l10n/el.php
@@ -15,8 +15,6 @@
"Video" => "Βίντεο",
"Pager" => "Βομβητής",
"This is not your contact." => "Αυτή δεν είναι επαφή σας.",
-"This card is not RFC compatible." => "Αυτή η κάρτα δεν είναι RFC συμβατή.",
-"This card does not contain a photo." => "Αυτή η κάρτα δεν περιέχει φωτογραφία.",
"Add Contact" => "Προσθήκη επαφής",
"Name" => "Όνομα",
"Type" => "Τύπος",
diff --git a/apps/contacts/l10n/eo.php b/apps/contacts/l10n/eo.php
index ef55bbebbb9..121186499b3 100644
--- a/apps/contacts/l10n/eo.php
+++ b/apps/contacts/l10n/eo.php
@@ -15,8 +15,6 @@
"Video" => "Videaĵo",
"Pager" => "Televokilo",
"This is not your contact." => "Tiu ĉi ne estas via kontakto.",
-"This card is not RFC compatible." => "Ĉi tiu karto ne kongruas kun RFC.",
-"This card does not contain a photo." => "Ĉi tiu karto ne havas foton.",
"Add Contact" => "Aldoni kontakton",
"Name" => "Nomo",
"PO Box" => "Abonkesto",
diff --git a/apps/contacts/l10n/es.php b/apps/contacts/l10n/es.php
index 260fe2ac976..b94c53e90d0 100644
--- a/apps/contacts/l10n/es.php
+++ b/apps/contacts/l10n/es.php
@@ -1,4 +1,15 @@
<?php $TRANSLATIONS = array(
+"Error (de)activating addressbook." => "Error al (des)activar libreta de direcciones.",
+"There was an error adding the contact." => "Ocurrió un error al agregar el contacto.",
+"Cannot add empty property." => "No se puede agregar una propiedad vacía.",
+"At least one of the address fields has to be filled out." => "Al menos uno de los campos de direcciones tiene que ser llenado.",
+"Error adding contact property." => "Error al agregar una propiedad del contacto.",
+"Error adding addressbook." => "Error al agregar la libreta de direcciones.",
+"Error activating addressbook." => "Error al activar la libreta de direcciones.",
+"Error deleting contact property." => "Error al borrar una propiedad del contacto.",
+"Error updating contact property." => "Error al actualizar una propiedad del contacto.",
+"Error updating addressbook." => "Error al actualizar la libreta de direcciones.",
+"Contacts" => "Contactos",
"This is not your addressbook." => "Esta no es tu agenda de contactos.",
"Contact could not be found." => "No se pudo encontrar el contacto.",
"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.",
@@ -14,10 +25,11 @@
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Localizador",
+"Contact" => "Contacto",
"This is not your contact." => "Este no es tu contacto.",
-"This card is not RFC compatible." => "Esta tarjeta no es compatible con RFC.",
-"This card does not contain a photo." => "Esta tarjeta no contiene ninguna foto.",
"Add Contact" => "Agregar contacto",
+"Addressbooks" => "Libretas de direcciones",
+"Addressbook" => "Libreta de direcciones",
"Name" => "Nombre",
"Type" => "Tipo",
"PO Box" => "Código postal",
@@ -28,13 +40,18 @@
"Zipcode" => "Código Postal",
"Country" => "País",
"Create Contact" => "Crear contacto",
+"Choose active Address Books" => "Elige libreta de direcciones activa",
"New Address Book" => "Nueva libreta de direcciones",
"CardDav Link" => "Link Card Dav",
"Download" => "Descargar",
"Edit" => "Editar",
"Delete" => "Borrar",
+"Download contact" => "Descargar contacto",
"Delete contact" => "Eliminar contacto",
"Add" => "Añadir",
+"New Addressbook" => "Nueva libreta de direcciones",
+"Edit Addressbook" => "Editar libreta de direcciones",
+"Displayname" => "Nombre a mostrar",
"Active" => "Activo",
"Save" => "Guardar",
"Submit" => "Aceptar",
@@ -42,5 +59,6 @@
"Birthday" => "Cumpleaños",
"Preferred" => "Preferido",
"Phone" => "Teléfono",
-"Update" => "Actualizar"
+"Update" => "Actualizar",
+"CardDAV syncing address:" => "Dirección de sincronización CardDAV:"
);
diff --git a/apps/contacts/l10n/et_EE.php b/apps/contacts/l10n/et_EE.php
index f57190bddcc..5054cbfc447 100644
--- a/apps/contacts/l10n/et_EE.php
+++ b/apps/contacts/l10n/et_EE.php
@@ -1,4 +1,15 @@
<?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.",
+"Error adding contact property." => "Viga konktakti korralikul lisamisel.",
+"Error adding addressbook." => "Viga aadressiraamatu lisamisel.",
+"Error activating addressbook." => "Viga aadressiraamatu aktiveerimisel.",
+"Error deleting contact property." => "Viga konktaki korralikul kustutamisel.",
+"Error updating contact property." => "Viga konktaki korralikul uuendamisel.",
+"Error updating addressbook." => "Viga aadressiraamatu uuendamisel.",
+"Contacts" => "Kontaktid",
"This is not your addressbook." => "See pole sinu aadressiraamat.",
"Contact could not be found." => "Kontakti ei leitud.",
"Information about vCard is incorrect. Please reload the page." => "Visiitkaardi info pole korrektne. Palun lae leht uuesti.",
@@ -14,11 +25,13 @@
"Fax" => "Faks",
"Video" => "Video",
"Pager" => "Piipar",
+"Contact" => "Kontakt",
"This is not your contact." => "See pole sinu kontakt.",
-"This card is not RFC compatible." => "See kaart ei ühildu RFC-ga.",
-"This card does not contain a photo." => "Sellel kaardil pole fotot.",
"Add Contact" => "Lisa kontakt",
+"Addressbooks" => "Aadressiraamatud",
+"Addressbook" => "Aadressiraamat",
"Name" => "Nimi",
+"Type" => "Tüüp",
"PO Box" => "Postkontori postkast",
"Extended" => "Laiendatud",
"Street" => "Tänav",
@@ -27,8 +40,25 @@
"Zipcode" => "Postiindeks",
"Country" => "Riik",
"Create Contact" => "Lisa kontakt",
+"Choose active Address Books" => "Vali aktiivsed aadressiraamatud",
+"New Address Book" => "Uus aadressiraamat",
+"CardDav Link" => "CardDav link",
+"Download" => "Lae alla",
"Edit" => "Muuda",
"Delete" => "Kustuta",
+"Download contact" => "Lae kontakt alla",
+"Delete contact" => "Kustuta kontakt",
+"Add" => "Lisa",
+"New Addressbook" => "Uus aadressiraamat",
+"Edit Addressbook" => "Muuda aadressiraamatut",
+"Displayname" => "Näidatav nimi",
+"Active" => "Aktiivne",
+"Save" => "Salvesta",
+"Submit" => "Saada",
+"Cancel" => "Loobu",
"Birthday" => "Sünnipäev",
-"Phone" => "Telefon"
+"Preferred" => "Eelistatud",
+"Phone" => "Telefon",
+"Update" => "Uuenda",
+"CardDAV syncing address:" => "CardDAV sünkroniseerimise aadress:"
);
diff --git a/apps/contacts/l10n/eu.php b/apps/contacts/l10n/eu.php
index c37b6f2762f..9b3501270ba 100644
--- a/apps/contacts/l10n/eu.php
+++ b/apps/contacts/l10n/eu.php
@@ -15,8 +15,6 @@
"Video" => "Bideoa",
"Pager" => "Bilagailua",
"This is not your contact." => "Hau ez da zure kontaktua.",
-"This card is not RFC compatible." => "Txartel hau ez da RFC bateragarria.",
-"This card does not contain a photo." => "Txartel honek ez dauka argazkirik.",
"Add Contact" => "Gehitu Kontaktua",
"Name" => "Izena",
"PO Box" => "Posta kutxa",
diff --git a/apps/contacts/l10n/fr.php b/apps/contacts/l10n/fr.php
index 8970d716b0e..d14d56d951f 100644
--- a/apps/contacts/l10n/fr.php
+++ b/apps/contacts/l10n/fr.php
@@ -27,8 +27,6 @@
"Pager" => "Bipeur",
"Contact" => "Contact",
"This is not your contact." => "Ce n'est pas votre contact.",
-"This card is not RFC compatible." => "Cette fiche n'est pas compatible RFC.",
-"This card does not contain a photo." => "Cette fiche ne contient pas de photo.",
"Add Contact" => "Ajouter un Contact",
"Addressbooks" => "Carnets d'adresses",
"Addressbook" => "Carnet d'adresses",
diff --git a/apps/contacts/l10n/gl.php b/apps/contacts/l10n/gl.php
index 0fd88ead191..8333697fb60 100644
--- a/apps/contacts/l10n/gl.php
+++ b/apps/contacts/l10n/gl.php
@@ -27,8 +27,6 @@
"Pager" => "Paxinador",
"Contact" => "Contacto",
"This is not your contact." => "Este non é un dos seus contactos",
-"This card is not RFC compatible." => "Esta tarxeta non é compatible con RFC",
-"This card does not contain a photo." => "Esta tarxeta non ten fotografía",
"Add Contact" => "Engadir contacto",
"Addressbooks" => "Directorios",
"Addressbook" => "Directorio",
diff --git a/apps/contacts/l10n/he.php b/apps/contacts/l10n/he.php
index b16eeac2ba8..5818cab2074 100644
--- a/apps/contacts/l10n/he.php
+++ b/apps/contacts/l10n/he.php
@@ -15,8 +15,6 @@
"Video" => "וידאו",
"Pager" => "זימונית",
"This is not your contact." => "זהו אינו איש קשר שלך",
-"This card is not RFC compatible." => "כרטיס זה אינו תואם ל־RFC",
-"This card does not contain a photo." => "כרטיס זה אינו כולל תמונה",
"Add Contact" => "הוספת איש קשר",
"Name" => "שם",
"PO Box" => "תא דואר",
diff --git a/apps/contacts/l10n/hr.php b/apps/contacts/l10n/hr.php
index dfeab8bdea9..4937c0bcb2c 100644
--- a/apps/contacts/l10n/hr.php
+++ b/apps/contacts/l10n/hr.php
@@ -15,8 +15,6 @@
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "Ovo nije vaš kontakt.",
-"This card is not RFC compatible." => "Ova kartica nije sukladna prema RFC direktivama.",
-"This card does not contain a photo." => "Ova kartica ne sadrži fotografiju.",
"Add Contact" => "Dodaj kontakt",
"Name" => "Naziv",
"PO Box" => "Poštanski Pretinac",
diff --git a/apps/contacts/l10n/hu_HU.php b/apps/contacts/l10n/hu_HU.php
index 74d66e9f7d3..fa81831f965 100644
--- a/apps/contacts/l10n/hu_HU.php
+++ b/apps/contacts/l10n/hu_HU.php
@@ -15,8 +15,6 @@
"Video" => "Video",
"Pager" => "Lapozó",
"This is not your contact." => "Nem a te kapcsolatod.",
-"This card is not RFC compatible." => "A kártya nem RFC kompatibilis.",
-"This card does not contain a photo." => "A kártya nem tartlmaz fényképet.",
"Add Contact" => "Kontakt hozzáadása",
"Name" => "Név",
"PO Box" => "Postafiók",
diff --git a/apps/contacts/l10n/ia.php b/apps/contacts/l10n/ia.php
index d4203ce8f04..0c1dd6e9632 100644
--- a/apps/contacts/l10n/ia.php
+++ b/apps/contacts/l10n/ia.php
@@ -13,7 +13,6 @@
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "Iste non es tu contacto",
-"This card is not RFC compatible." => "Iste carta non es compatibile con RFC",
"Add Contact" => "Adder contacto",
"Name" => "Nomine",
"PO Box" => "Cassa postal",
diff --git a/apps/contacts/l10n/it.php b/apps/contacts/l10n/it.php
index 6ac1677e3c0..b7f30bc034a 100644
--- a/apps/contacts/l10n/it.php
+++ b/apps/contacts/l10n/it.php
@@ -27,8 +27,6 @@
"Pager" => "Cercapersone",
"Contact" => "Contatto",
"This is not your contact." => "Questo non è un tuo contatto.",
-"This card is not RFC compatible." => "Questa card non è compatibile con il protocollo RFC.",
-"This card does not contain a photo." => "Questa card non contiene una foto.",
"Add Contact" => "Aggiungi contatto",
"Addressbooks" => "Rubriche",
"Addressbook" => "Rubrica",
diff --git a/apps/contacts/l10n/ja_JP.php b/apps/contacts/l10n/ja_JP.php
index c8711e963f3..e8417562b86 100644
--- a/apps/contacts/l10n/ja_JP.php
+++ b/apps/contacts/l10n/ja_JP.php
@@ -1,4 +1,15 @@
<?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." => "連絡先の追加に失敗しました。",
+"Error adding addressbook." => "電話帳の追加に失敗しました。",
+"Error activating addressbook." => "電話帳の有効化に失敗しました。",
+"Error deleting contact property." => "連絡先の削除に失敗しました。",
+"Error updating contact property." => "連絡先の更新に失敗しました。",
+"Error updating addressbook." => "電話帳の更新に失敗しました。",
+"Contacts" => "連絡先",
"This is not your addressbook." => "これはあなたの電話帳ではありません。",
"Contact could not be found." => "連絡先を見つける事ができません。",
"Information about vCard is incorrect. Please reload the page." => "vCardの情報に誤りがあります。ページをリロードして下さい。",
@@ -14,11 +25,13 @@
"Fax" => "FAX",
"Video" => "テレビ電話",
"Pager" => "ポケベル",
+"Contact" => "連絡先",
"This is not your contact." => "あなたの連絡先ではありません。",
-"This card is not RFC compatible." => "このカードはRFCに準拠していません。",
-"This card does not contain a photo." => "このカードは写真を含んでおりません。",
"Add Contact" => "連絡先の追加",
+"Addressbooks" => "電話帳",
+"Addressbook" => "電話帳",
"Name" => "氏名",
+"Type" => "種類",
"PO Box" => "私書箱",
"Extended" => "拡張番地",
"Street" => "街路番地",
@@ -27,8 +40,25 @@
"Zipcode" => "郵便番号",
"Country" => "国名",
"Create Contact" => "追加",
+"Choose active Address Books" => "有効な電話帳の選択",
+"New Address Book" => "新規電話帳",
+"CardDav Link" => "CardDAV リンク",
+"Download" => "ダウンロード",
"Edit" => "編集",
"Delete" => "削除",
+"Download contact" => "連絡先のダウンロード",
+"Delete contact" => "連絡先の削除",
+"Add" => "追加",
+"New Addressbook" => "電話帳の新規作成",
+"Edit Addressbook" => "電話帳の編集",
+"Displayname" => "表示名",
+"Active" => "アクティブ",
+"Save" => "保存",
+"Submit" => "送信",
+"Cancel" => "取り消し",
"Birthday" => "生年月日",
-"Phone" => "電話番号"
+"Preferred" => "推奨",
+"Phone" => "電話番号",
+"Update" => "更新",
+"CardDAV syncing address:" => "CardDAV 同期アドレス:"
);
diff --git a/apps/contacts/l10n/lb.php b/apps/contacts/l10n/lb.php
index 4190072171a..e8f17a6fa58 100644
--- a/apps/contacts/l10n/lb.php
+++ b/apps/contacts/l10n/lb.php
@@ -15,8 +15,6 @@
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "Dat do ass net däin Kontakt.",
-"This card is not RFC compatible." => "Déi do Kaart ass net RFC kompatibel.",
-"This card does not contain a photo." => "Déi do Kaart huet keng Foto.",
"Add Contact" => "Kontakt bäisetzen",
"Name" => "Numm",
"PO Box" => "Postleetzuel",
diff --git a/apps/contacts/l10n/nl.php b/apps/contacts/l10n/nl.php
index 0bfa86c8c44..5719330ba3b 100644
--- a/apps/contacts/l10n/nl.php
+++ b/apps/contacts/l10n/nl.php
@@ -15,8 +15,6 @@
"Video" => "Video",
"Pager" => "Pieper",
"This is not your contact." => "Dit is niet uw contactpersoon.",
-"This card is not RFC compatible." => "Deze kaart is niet RFC compatibel.",
-"This card does not contain a photo." => "Deze contact bevat geen foto.",
"Add Contact" => "Contact toevoegen",
"Name" => "Naam",
"Type" => "Type",
diff --git a/apps/contacts/l10n/nn_NO.php b/apps/contacts/l10n/nn_NO.php
index 12d914a805c..d0e3041d245 100644
--- a/apps/contacts/l10n/nn_NO.php
+++ b/apps/contacts/l10n/nn_NO.php
@@ -15,8 +15,6 @@
"Video" => "Video",
"Pager" => "Personsøkjar",
"This is not your contact." => "Dette er ikkje din kontakt.",
-"This card is not RFC compatible." => "Dette kortet er ikkje RFC-kompatibelt",
-"This card does not contain a photo." => "Dette kortet har ingen bilete.",
"Add Contact" => "Legg til kontakt",
"Name" => "Namn",
"PO Box" => "Postboks",
diff --git a/apps/contacts/l10n/pl.php b/apps/contacts/l10n/pl.php
index 72bdf967a4e..ad1e8c7baa4 100644
--- a/apps/contacts/l10n/pl.php
+++ b/apps/contacts/l10n/pl.php
@@ -27,8 +27,6 @@
"Pager" => "Pager",
"Contact" => "Kontakt",
"This is not your contact." => "To nie jest twój kontakt.",
-"This card is not RFC compatible." => "Ta karta nie jest zgodna ze specyfikacją RFC.",
-"This card does not contain a photo." => "Ta karta nie zawiera zdjęć.",
"Add Contact" => "Dodaj kontakt",
"Addressbooks" => "Książki adresowe",
"Addressbook" => "Książka adresowa",
diff --git a/apps/contacts/l10n/pt_BR.php b/apps/contacts/l10n/pt_BR.php
index db9e98d6fe0..9f68e50cf9d 100644
--- a/apps/contacts/l10n/pt_BR.php
+++ b/apps/contacts/l10n/pt_BR.php
@@ -15,8 +15,6 @@
"Video" => "Vídeo",
"Pager" => "Pager",
"This is not your contact." => "Este não é o seu contato.",
-"This card is not RFC compatible." => "Este cartão não é compatível com RFC.",
-"This card does not contain a photo." => "Este cartão não contém uma foto.",
"Add Contact" => "Adicionar Contato",
"Name" => "Nome",
"PO Box" => "Caixa Postal",
diff --git a/apps/contacts/l10n/pt_PT.php b/apps/contacts/l10n/pt_PT.php
index d5916838dbe..68c83f02c51 100644
--- a/apps/contacts/l10n/pt_PT.php
+++ b/apps/contacts/l10n/pt_PT.php
@@ -15,8 +15,6 @@
"Video" => "Vídeo",
"Pager" => "Pager",
"This is not your contact." => "Este não é o seu contacto",
-"This card is not RFC compatible." => "Este cartão não é compativel com RFC",
-"This card does not contain a photo." => "Este cartão não possui foto",
"Add Contact" => "Adicionar Contacto",
"Name" => "Nome",
"PO Box" => "Apartado",
diff --git a/apps/contacts/l10n/ro.php b/apps/contacts/l10n/ro.php
index 4fc10abddb0..47a8b59599c 100644
--- a/apps/contacts/l10n/ro.php
+++ b/apps/contacts/l10n/ro.php
@@ -15,8 +15,6 @@
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "Nu este contactul tău",
-"This card is not RFC compatible." => "Nu este compatibil RFC",
-"This card does not contain a photo." => "Nu conține o fotografie",
"Add Contact" => "Adaugă contact",
"Name" => "Nume",
"Type" => "Tip",
diff --git a/apps/contacts/l10n/ru.php b/apps/contacts/l10n/ru.php
index 5eb765f222e..5e48d5776a3 100644
--- a/apps/contacts/l10n/ru.php
+++ b/apps/contacts/l10n/ru.php
@@ -1,4 +1,15 @@
<?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." => "Ошибка добавления информации к контакту.",
+"Error adding addressbook." => "Ошибка добавления адресной книги.",
+"Error activating addressbook." => "Ошибка активации адресной книги.",
+"Error deleting contact property." => "Ошибка удаления информации из контакта.",
+"Error updating contact property." => "Ошибка обновления информации контакта.",
+"Error updating addressbook." => "Ошибка обновления адресной книги.",
+"Contacts" => "Контакты",
"This is not your addressbook." => "Это не ваша адресная книга.",
"Contact could not be found." => "Контакт не найден.",
"Information about vCard is incorrect. Please reload the page." => "Информация о vCard некорректна. Пожалуйста, обновите страницу.",
@@ -14,11 +25,13 @@
"Fax" => "Факс",
"Video" => "Видео",
"Pager" => "Пейджер",
+"Contact" => "Контакт",
"This is not your contact." => "Это не контакт.",
-"This card is not RFC compatible." => "Эта карточка не соответствует RFC.",
-"This card does not contain a photo." => "Эта карточка не содержит фотографии.",
"Add Contact" => "Добавить Контакт",
+"Addressbooks" => "Адресные книги",
+"Addressbook" => "Адресная книга",
"Name" => "Имя",
+"Type" => "Тип",
"PO Box" => "АО",
"Extended" => "Расширенный",
"Street" => "Улица",
@@ -27,8 +40,25 @@
"Zipcode" => "Почтовый индекс",
"Country" => "Страна",
"Create Contact" => "Создать Контакт",
+"Choose active Address Books" => "Выберите активные адресные книги",
+"New Address Book" => "Новая адресная книга",
+"CardDav Link" => "Ссылка CardDAV",
+"Download" => "Скачать",
"Edit" => "Редактировать",
"Delete" => "Удалить",
+"Download contact" => "Скачать контакт",
+"Delete contact" => "Удалить контакт",
+"Add" => "Добавить",
+"New Addressbook" => "Новая адресная книга",
+"Edit Addressbook" => "Править адресную книгу",
+"Displayname" => "Отображаемое имя",
+"Active" => "Активно",
+"Save" => "Сохранить",
+"Submit" => "Отправить",
+"Cancel" => "Отменить",
"Birthday" => "День рождения",
-"Phone" => "Телефон"
+"Preferred" => "Предпочитаемый",
+"Phone" => "Телефон",
+"Update" => "Обновить",
+"CardDAV syncing address:" => "Адрес синхронизации CardDAV:"
);
diff --git a/apps/contacts/l10n/sk_SK.php b/apps/contacts/l10n/sk_SK.php
index 16876cc59b2..a28907aac8a 100644
--- a/apps/contacts/l10n/sk_SK.php
+++ b/apps/contacts/l10n/sk_SK.php
@@ -1,4 +1,9 @@
<?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.",
+"Error activating addressbook." => "Chyba aktivovania adresára.",
+"Error updating addressbook." => "Chyba aktualizácie adresára.",
+"Contacts" => "Kontakty",
"This is not your addressbook." => "Toto nie je váš adresár.",
"Contact could not be found." => "Kontakt nebol nájdený.",
"Information about vCard is incorrect. Please reload the page." => "Informácie o vCard sú neplatné. Prosím obnovte stránku.",
@@ -14,11 +19,13 @@
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
+"Contact" => "Kontakt",
"This is not your contact." => "Toto nie je váš kontakt.",
-"This card is not RFC compatible." => "Táto karta nie je kompatibilná s RFC.",
-"This card does not contain a photo." => "Táto karta neobsahuje fotografiu.",
"Add Contact" => "Pridať Kontakt.",
+"Addressbooks" => "Adresáre",
+"Addressbook" => "Adresár",
"Name" => "Meno",
+"Type" => "Typ",
"PO Box" => "PO Box",
"Extended" => "Rozšírené",
"Street" => "Ulica",
@@ -27,8 +34,25 @@
"Zipcode" => "PSČ",
"Country" => "Krajina",
"Create Contact" => "Vytvoriť Kontakt.",
+"Choose active Address Books" => "Zvoliť aktívny adresár",
+"New Address Book" => "Nový adresár",
+"CardDav Link" => "CardDav odkaz",
+"Download" => "Stiahnuť",
"Edit" => "Upraviť",
"Delete" => "Odstrániť",
+"Download contact" => "Stiahnuť kontakt",
+"Delete contact" => "Odstrániť kontakt",
+"Add" => "Pridať",
+"New Addressbook" => "Nový Adresár",
+"Edit Addressbook" => "Upraviť Adresár",
+"Displayname" => "Zobrazené meno",
+"Active" => "Aktívny",
+"Save" => "Uložiť",
+"Submit" => "Odoslať",
+"Cancel" => "Zrušiť",
"Birthday" => "Narodeniny",
-"Phone" => "Telefón"
+"Preferred" => "Uprednostňované",
+"Phone" => "Telefón",
+"Update" => "Aktualizovať",
+"CardDAV syncing address:" => "Synchronizačná adresa CardDAV:"
);
diff --git a/apps/contacts/l10n/sl.php b/apps/contacts/l10n/sl.php
index 2c81567eae0..79039c36d63 100644
--- a/apps/contacts/l10n/sl.php
+++ b/apps/contacts/l10n/sl.php
@@ -15,8 +15,6 @@
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "To ni vaš kontakt",
-"This card is not RFC compatible." => "Ta karta ni RFC kopatibilna.",
-"This card does not contain a photo." => "Ta karta ne vsebuje slike.",
"Add Contact" => "Dodaj Kontakt",
"Name" => "Ime",
"PO Box" => "PO Box",
diff --git a/apps/contacts/l10n/sr.php b/apps/contacts/l10n/sr.php
index d09bac430f2..6404fb44b18 100644
--- a/apps/contacts/l10n/sr.php
+++ b/apps/contacts/l10n/sr.php
@@ -17,8 +17,6 @@
"Pager" => "Пејџер",
"Contact" => "Контакт",
"This is not your contact." => "Ово није ваш контакт.",
-"This card is not RFC compatible." => "Ова карта није сагласна са РФЦ-ом.",
-"This card does not contain a photo." => "Ова карта не садржи фотографију.",
"Add Contact" => "Додај контакт",
"Addressbooks" => "Адресар",
"Addressbook" => "Адресар",
diff --git a/apps/contacts/l10n/sr@latin.php b/apps/contacts/l10n/sr@latin.php
index 1ae38e32922..bfd43896455 100644
--- a/apps/contacts/l10n/sr@latin.php
+++ b/apps/contacts/l10n/sr@latin.php
@@ -15,8 +15,6 @@
"Video" => "Video",
"Pager" => "Pejdžer",
"This is not your contact." => "Ovo nije vaš kontakt.",
-"This card is not RFC compatible." => "Ova karta nije saglasna sa RFC-om.",
-"This card does not contain a photo." => "Ova karta ne sadrži fotografiju.",
"Add Contact" => "Dodaj kontakt",
"Name" => "Ime",
"PO Box" => "Poštanski broj",
diff --git a/apps/contacts/l10n/sv.php b/apps/contacts/l10n/sv.php
index f62ca30b5f2..c4935983f22 100644
--- a/apps/contacts/l10n/sv.php
+++ b/apps/contacts/l10n/sv.php
@@ -15,8 +15,6 @@
"Video" => "Video",
"Pager" => "Personsökare",
"This is not your contact." => "Det här är inte din kontakt.",
-"This card is not RFC compatible." => "Detta kort är inte RFC-kompatibelt.",
-"This card does not contain a photo." => "Detta kort innehåller inte något foto.",
"Add Contact" => "Lägg till kontakt",
"Name" => "Namn",
"PO Box" => "Postbox",
diff --git a/apps/contacts/l10n/th_TH.php b/apps/contacts/l10n/th_TH.php
new file mode 100644
index 00000000000..06e103bc320
--- /dev/null
+++ b/apps/contacts/l10n/th_TH.php
@@ -0,0 +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." => "เกิดข้อผิดพลาดในการเพิ่มรายละเอียดการติดต่อ",
+"Error adding addressbook." => "เกิดข้อผิดพลาดในการเพิ่มสมุดบันทึกที่อยู่ใหม่",
+"Error activating addressbook." => "เกิดข้อผิดพลาดในการเปิดใช้งานสมุดบันทึกที่อยู่",
+"Error deleting contact property." => "เกิดข้อผิดพลาดในการลบรายละเอียดการติดต่อ",
+"Error updating contact property." => "เกิดข้อผิดพลาดในการอัพเดทข้อมูลการติดต่อ",
+"Error updating addressbook." => "เกิดข้อผิดพลาดในการอัพเดทสมุดบันทึกที่อยู่",
+"Contacts" => "ข้อมูลการติดต่อ",
+"This is not your addressbook." => "นี่ไม่ใช่สมุดบันทึกที่อยู่ของคุณ",
+"Contact could not be found." => "ไม่พบข้อมูลการติดต่อ",
+"Information about vCard is incorrect. Please reload the page." => "ข้อมูลเกี่ยวกับ vCard ไม่ถูกต้อง กรุณาโหลดหน้าเวปใหม่อีกครั้ง",
+"Address" => "ที่อยู่",
+"Telephone" => "โทรศัพท์",
+"Email" => "อีเมล์",
+"Organization" => "หน่วยงาน",
+"Work" => "ที่ทำงาน",
+"Home" => "บ้าน",
+"Mobile" => "มือถือ",
+"Text" => "ข้อความ",
+"Voice" => "เสียงพูด",
+"Fax" => "โทรสาร",
+"Video" => "วีดีโอ",
+"Pager" => "เพจเจอร์",
+"Contact" => "ข้อมูลการติดต่อ",
+"This is not your contact." => "นี่ไม่ใช่ข้อมูลการติดต่อของคุณ",
+"Add Contact" => "เพิ่มรายชื่อผู้ติดต่อใหม่",
+"Addressbooks" => "สมุดบันทึกที่อยู่",
+"Addressbook" => "สมุดบันทึกที่อยู่",
+"Name" => "ชื่อ",
+"Type" => "ประเภท",
+"PO Box" => "ตู้ ปณ.",
+"Extended" => "เพิ่ม",
+"Street" => "ถนน",
+"City" => "เมือง",
+"Region" => "ภูมิภาค",
+"Zipcode" => "รหัสไปรษณีย์",
+"Country" => "ประเทศ",
+"Create Contact" => "สร้างข้อมูลการติดต่อใหม่",
+"Choose active Address Books" => "เลือกสมุดบันทึกข้อมูลติดต่อที่ต้องการใช้งาน",
+"New Address Book" => "สร้างสมุดบันทึกข้อมูลการติดต่อใหม่",
+"CardDav Link" => "ลิงค์ CardDav",
+"Download" => "ดาวน์โหลด",
+"Edit" => "แก้ไข",
+"Delete" => "ลบ",
+"Download contact" => "ดาวน์โหลดข้อมูลการติดต่อ",
+"Delete contact" => "ลบข้อมูลการติดต่อ",
+"Add" => "เพิ่ม",
+"New Addressbook" => "สร้างสมุดบันทึกที่อยู่ใหม่",
+"Edit Addressbook" => "แก้ไขสมุดบันทึกที่อยู่",
+"Displayname" => "ชื่อที่ต้องการให้แสดง",
+"Active" => "เปิดใช้",
+"Save" => "บันทึก",
+"Submit" => "ส่งข้อมูล",
+"Cancel" => "ยกเลิก",
+"Birthday" => "วันเกิด",
+"Preferred" => "พิเศษ",
+"Phone" => "โทรศัพท์",
+"Update" => "อัพเดท",
+"CardDAV syncing address:" => "ที่อยู่ในการเชื่อมข้อมูลกับระบบบันทึกที่อยู่ CardDAV:"
+);
diff --git a/apps/contacts/l10n/tr.php b/apps/contacts/l10n/tr.php
index 285adac8d6a..75a48180bdb 100644
--- a/apps/contacts/l10n/tr.php
+++ b/apps/contacts/l10n/tr.php
@@ -15,8 +15,6 @@
"Video" => "Video",
"Pager" => "Sayfalayıcı",
"This is not your contact." => "Bu sizin kişiniz değil.",
-"This card is not RFC compatible." => "Bu kart RFC uyumlu değil.",
-"This card does not contain a photo." => "Bu kart resim içermiyor.",
"Add Contact" => "Kişi Ekle",
"Name" => "Ad",
"PO Box" => "Posta Kutusu",
diff --git a/apps/contacts/l10n/zh_CN.php b/apps/contacts/l10n/zh_CN.php
index 829f1b0e073..1904eff65c3 100644
--- a/apps/contacts/l10n/zh_CN.php
+++ b/apps/contacts/l10n/zh_CN.php
@@ -1,4 +1,15 @@
<?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." => "添加联系人属性错误。",
+"Error adding addressbook." => "添加地址簿错误。",
+"Error activating addressbook." => "激活地址簿错误。",
+"Error deleting contact property." => "删除联系人属性错误。",
+"Error updating contact property." => "更新联系人属性错误。",
+"Error updating addressbook." => "更新地址簿错误",
+"Contacts" => "联系人",
"This is not your addressbook." => "这不是您的地址簿。",
"Contact could not be found." => "无法找到联系人。",
"Information about vCard is incorrect. Please reload the page." => "vCard 的信息不正确。请重新加载页面。",
@@ -14,11 +25,13 @@
"Fax" => "传真",
"Video" => "视频",
"Pager" => "传呼机",
+"Contact" => "联系人",
"This is not your contact." => "这不是您的联系人。",
-"This card is not RFC compatible." => "这张名片和RFC 标准不兼容。",
-"This card does not contain a photo." => "这张名片不包含照片。",
"Add Contact" => "添加联系人",
+"Addressbooks" => "地址簿",
+"Addressbook" => "地址簿",
"Name" => "名称",
+"Type" => "类型",
"PO Box" => "邮箱",
"Extended" => "扩展",
"Street" => "街道",
@@ -27,8 +40,25 @@
"Zipcode" => "邮编",
"Country" => "国家",
"Create Contact" => "创建联系人",
+"Choose active Address Books" => "选择激活地址簿",
+"New Address Book" => "新建地址簿",
+"CardDav Link" => "CardDav 链接",
+"Download" => "下载",
"Edit" => "编辑",
"Delete" => "删除",
+"Download contact" => "下载联系人",
+"Delete contact" => "删除联系人",
+"Add" => "添加",
+"New Addressbook" => "新建地址簿",
+"Edit Addressbook" => "编辑地址簿",
+"Displayname" => "显示名称",
+"Active" => "激活",
+"Save" => "保存",
+"Submit" => "提交",
+"Cancel" => "取消",
"Birthday" => "生日",
-"Phone" => "电话"
+"Preferred" => "偏好",
+"Phone" => "电话",
+"Update" => "更新",
+"CardDAV syncing address:" => "CardDAV 同步地址:"
);
diff --git a/apps/contacts/lib/app.php b/apps/contacts/lib/app.php
index 00a830d5e5f..bc1e4974b30 100644
--- a/apps/contacts/lib/app.php
+++ b/apps/contacts/lib/app.php
@@ -18,16 +18,26 @@ class OC_Contacts_App{
* @param int $id of contact
* @param Sabre_VObject_Component $vcard to render
*/
- public static function renderDetails($id, $vcard){
+ public static function renderDetails($id, $vcard, $new=false){
$property_types = self::getAddPropertyOptions();
$adr_types = self::getTypesOfProperty('ADR');
$phone_types = self::getTypesOfProperty('TEL');
+ $upload_max_filesize = OC_Helper::computerFileSize(ini_get('upload_max_filesize'));
+ $post_max_size = OC_Helper::computerFileSize(ini_get('post_max_size'));
+ $maxUploadFilesize = min($upload_max_filesize, $post_max_size);
+
+ $freeSpace=OC_Filesystem::free_space('/');
+ $freeSpace=max($freeSpace,0);
+ $maxUploadFilesize = min($maxUploadFilesize ,$freeSpace);
$details = OC_Contacts_VCard::structureContact($vcard);
$name = $details['FN'][0]['value'];
- $tmpl = new OC_Template('contacts','part.details');
+ $t = $new ? 'part.contact' : 'part.details';
+ $tmpl = new OC_Template('contacts',$t);
$tmpl->assign('details',$details);
$tmpl->assign('id',$id);
+ $tmpl->assign( 'uploadMaxFilesize', $maxUploadFilesize);
+ $tmpl->assign( 'uploadMaxHumanFilesize', OC_Helper::humanFileSize($maxUploadFilesize));
$tmpl->assign('property_types',$property_types);
$tmpl->assign('adr_types',$adr_types);
$tmpl->assign('phone_types',$phone_types);
diff --git a/apps/contacts/lib/vcard.php b/apps/contacts/lib/vcard.php
index 04b59a040fb..ceac2dcfad2 100644
--- a/apps/contacts/lib/vcard.php
+++ b/apps/contacts/lib/vcard.php
@@ -159,15 +159,27 @@ class OC_Contacts_VCard{
*/
public static function addFromDAVData($id,$uri,$data){
$fn = null;
+ $email = null;
$card = OC_VObject::parse($data);
if(!is_null($card)){
foreach($card->children as $property){
if($property->name == 'FN'){
$fn = $property->value;
- break;
+ }
+ if($property->name == 'EMAIL' && is_null($email)){
+ $email = $property->value;
}
}
}
+ if(!$fn) {
+ if($email) {
+ $fn = $email;
+ } else {
+ $fn = 'Unknown';
+ }
+ $card->addProperty('EMAIL', $email);
+ $data = $card->serialize();
+ }
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*contacts_cards (addressbookid,fullname,carddata,uri,lastmodified) VALUES(?,?,?,?,?)' );
$result = $stmt->execute(array($id,$fn,$data,$uri,time()));
@@ -311,7 +323,7 @@ class OC_Contacts_VCard{
*/
public static function structureProperty($property){
$value = $property->value;
- $value = htmlspecialchars($value);
+ //$value = htmlspecialchars($value);
if($property->name == 'ADR' || $property->name == 'N'){
$value = OC_VObject::unescapeSemicolons($value);
}
diff --git a/apps/contacts/photo.php b/apps/contacts/photo.php
index 60dd81140bf..478ef829cae 100644
--- a/apps/contacts/photo.php
+++ b/apps/contacts/photo.php
@@ -26,7 +26,9 @@ OC_Util::checkLoggedIn();
OC_Util::checkAppEnabled('contacts');
$id = $_GET['id'];
-
+if(isset($GET['refresh'])) {
+ header("Cache-Control: no-cache, no-store, must-revalidate");
+}
$l10n = new OC_L10N('contacts');
$card = OC_Contacts_VCard::find( $id );
@@ -42,28 +44,45 @@ if( $addressbook === false || $addressbook['userid'] != OC_USER::getUser()){
}
$content = OC_VObject::parse($card['carddata']);
-
+$image = new OC_Image();
// invalid vcard
if( is_null($content)){
- echo $l10n->t('This card is not RFC compatible.');
+ $image->loadFromFile('img/person_large.png');
+ header('Content-Type: '.$image->mimeType());
+ $image();
+ //echo $l10n->t('This card is not RFC compatible.');
exit();
-}
-// Photo :-)
-foreach($content->children as $child){
- if($child->name == 'PHOTO'){
- $mime = 'image/jpeg';
- foreach($child->parameters as $parameter){
- if( $parameter->name == 'TYPE' ){
- $mime = $parameter->value;
+} else {
+ // Photo :-)
+ foreach($content->children as $child){
+ if($child->name == 'PHOTO'){
+ $mime = 'image/jpeg';
+ foreach($child->parameters as $parameter){
+ if( $parameter->name == 'TYPE' ){
+ $mime = $parameter->value;
+ }
+ }
+ if($image->loadFromBase64($child->value)) {
+ header('Content-Type: '.$mime);
+ $image();
+ exit();
+ } else {
+ $image->loadFromFile('img/person_large.png');
+ header('Content-Type: '.$image->mimeType());
+ $image();
}
+ //$photo = base64_decode($child->value);
+ //header('Content-Type: '.$mime);
+ //header('Content-Length: ' . strlen($photo));
+ //echo $photo;
+ //exit();
}
- $photo = base64_decode($child->value);
- header('Content-Type: '.$mime);
- header('Content-Length: ' . strlen($photo));
- echo $photo;
- exit();
}
}
+$image->loadFromFile('img/person_large.png');
+header('Content-Type: '.$image->mimeType());
+$image();
+/*
// Logo :-/
foreach($content->children as $child){
if($child->name == 'PHOTO'){
@@ -80,6 +99,6 @@ foreach($content->children as $child){
exit();
}
}
-
+*/
// Not found :-(
-echo $l10n->t('This card does not contain a photo.');
+//echo $l10n->t('This card does not contain a photo.');
diff --git a/apps/contacts/templates/part.addcardform.php b/apps/contacts/templates/part.addcardform.php
index 53b32188ddf..11457ff2697 100644
--- a/apps/contacts/templates/part.addcardform.php
+++ b/apps/contacts/templates/part.addcardform.php
@@ -94,7 +94,7 @@
</dd>
<dt>
<label class="label" for="adr_zipcode"><?php echo $l->t('Zipcode'); ?></label>
- </dtl>
+ </dt>
<dd>
<input type="text" id="adr_zipcode" name="value[ADR][5]" value="">
</dd>
diff --git a/apps/contacts/templates/part.chooseaddressbook.php b/apps/contacts/templates/part.chooseaddressbook.php
index ba008837f0e..90894220ef8 100644
--- a/apps/contacts/templates/part.chooseaddressbook.php
+++ b/apps/contacts/templates/part.chooseaddressbook.php
@@ -12,8 +12,8 @@ for($i = 0; $i < count($option_addressbooks); $i++){
}
?>
<tr>
- <td colspan="5">
- <a href="#" onclick="Contacts.UI.Addressbooks.newAddressbook(this);"><?php echo $l->t('New Address Book') ?></a>
+ <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>
diff --git a/apps/contacts/templates/part.contacts.php b/apps/contacts/templates/part.contacts.php
index 8d89e9c7ad1..a6ac0f1096a 100644
--- a/apps/contacts/templates/part.contacts.php
+++ b/apps/contacts/templates/part.contacts.php
@@ -1,3 +1,12 @@
-<?php foreach( $_['contacts'] as $contact ): ?>
- <li book-id="<?php echo $contact['addressbookid']; ?>" data-id="<?php echo $contact['id']; ?>"><a href="index.php?id=<?php echo $contact['id']; ?>"><?php echo $contact['fullname']; ?></a> </li>
+<?php foreach( $_['contacts'] as $contact ):
+ $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]';
+ }
+ }
+?>
+ <li book-id="<?php echo $contact['addressbookid']; ?>" data-id="<?php echo $contact['id']; ?>"><a href="index.php?id=<?php echo $contact['id']; ?>"><?php echo $display; ?></a></li>
<?php endforeach; ?>
diff --git a/apps/contacts/thumbnail.php b/apps/contacts/thumbnail.php
index e49098ce820..36d395171a9 100644
--- a/apps/contacts/thumbnail.php
+++ b/apps/contacts/thumbnail.php
@@ -22,23 +22,29 @@
// Init owncloud
require_once('../../lib/base.php');
-OC_Util::checkLoggedIn();
+OC_JSON::checkLoggedIn();
+//OC_Util::checkLoggedIn();
OC_Util::checkAppEnabled('contacts');
-if(!function_exists('imagecreatefromjpeg')) {
- OC_Log::write('contacts','thumbnail.php. GD module not installed',OC_Log::DEBUG);
- header('Content-Type: image/png');
- // TODO: Check if it works to read the file and echo the content.
- return 'img/person.png';
-}
-
function getStandardImage(){
- $src_img = imagecreatefrompng('img/person.png');
- header('Content-Type: image/png');
- imagepng($src_img);
- imagedestroy($src_img);
+ $date = new DateTime('now');
+ $date->add(new DateInterval('P10D'));
+ header('Expires: '.$date->format(DateTime::RFC850));
+ header('Cache-Control: cache');
+ header('Pragma: cache');
+ header('Location: '.OC_Helper::imagePath('contacts', 'person.png'));
+ exit();
+// $src_img = imagecreatefrompng('img/person.png');
+// header('Content-Type: image/png');
+// imagepng($src_img);
+// imagedestroy($src_img);
}
+if(!function_exists('imagecreatefromjpeg')) {
+ OC_Log::write('contacts','thumbnail.php. GD module not installed',OC_Log::DEBUG);
+ getStandardImage();
+ exit();
+}
$id = $_GET['id'];
@@ -69,18 +75,14 @@ if( is_null($content)){
$thumbnail_size = 23;
-// Finf the photo from VCard.
+// Find the photo from VCard.
foreach($content->children as $child){
if($child->name == 'PHOTO'){
- foreach($child->parameters as $parameter){
- if( $parameter->name == 'TYPE' ){
- $mime = $parameter->value;
- }
- }
$image = new OC_Image();
if($image->loadFromBase64($child->value)) {
if($image->centerCrop()) {
if($image->resize($thumbnail_size)) {
+ header('ETag: '.md5($child->value));
if(!$image()) {
OC_Log::write('contacts','thumbnail.php. Couldn\'t display thumbnail for ID '.$id,OC_Log::ERROR);
getStandardImage();