From be9aacaa5296dfca63fb3a01c2dc52538d1546aa Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Sat, 17 Nov 2012 12:31:31 -0500
Subject: [PATCH] Bring back lost localization for the about page
---
program/include/rcube_addressbook.php | 43 ++++++++++++++++---------------------------
1 files changed, 16 insertions(+), 27 deletions(-)
diff --git a/program/include/rcube_addressbook.php b/program/include/rcube_addressbook.php
index b56b58a..b5fb8cf 100644
--- a/program/include/rcube_addressbook.php
+++ b/program/include/rcube_addressbook.php
@@ -17,16 +17,14 @@
+-----------------------------------------------------------------------+
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
-
- $Id$
-
*/
/**
* Abstract skeleton of an address book/repository
*
- * @package Addressbook
+ * @package Framework
+ * @subpackage Addressbook
*/
abstract class rcube_addressbook
{
@@ -211,11 +209,14 @@
*/
public function validate(&$save_data, $autofix = false)
{
+ $rcmail = rcmail::get_instance();
+
// check validity of email addresses
foreach ($this->get_col_values('email', $save_data, true) as $email) {
if (strlen($email)) {
- if (!check_email(rcube_idn_to_ascii($email))) {
- $this->set_error(self::ERROR_VALIDATE, rcube_label(array('name' => 'emailformaterror', 'vars' => array('email' => $email))));
+ if (!rcube_utils::check_email(rcube_utils::idn_to_ascii($email))) {
+ $error = $rcmail->gettext(array('name' => 'emailformaterror', 'vars' => array('email' => $email)));
+ $this->set_error(self::ERROR_VALIDATE, $error);
return false;
}
}
@@ -422,7 +423,7 @@
function get_col_values($col, $data, $flat = false)
{
$out = array();
- foreach ($data as $c => $values) {
+ foreach ((array)$data as $c => $values) {
if ($c === $col || strpos($c, $col.':') === 0) {
if ($flat) {
$out = array_merge($out, (array)$values);
@@ -432,6 +433,11 @@
$out[$type] = array_merge((array)$out[$type], (array)$values);
}
}
+ }
+
+ // remove duplicates
+ if ($flat && !empty($out)) {
+ $out = array_unique($out);
}
return $out;
@@ -444,29 +450,12 @@
*
* @param string Input string (UTF-8)
* @return string Normalized string
+ * @deprecated since 0.9-beta
*/
protected static function normalize_string($str)
{
- // split by words
- $arr = explode(" ", preg_replace(
- array('/[\s;\+\-\/]+/i', '/(\d)[-.\s]+(\d)/', '/\s\w{1,3}\s/'),
- array(' ', '\\1\\2', ' '),
- $str));
-
- foreach ($arr as $i => $part) {
- if (utf8_encode(utf8_decode($part)) == $part) { // is latin-1 ?
- $arr[$i] = utf8_encode(strtr(strtolower(strtr(utf8_decode($part),
- '��������������������������������������������������',
- 'ccaaaaeeeeiiiaeooouuuyooaiounnaaaaaeeeiiioooouuuyy')),
- array('�' => 'ss', 'ae' => 'a', 'oe' => 'o', 'ue' => 'u')));
- }
- else
- $arr[$i] = mb_strtolower($part);
- }
-
- return join(" ", $arr);
+ return rcube_utils::normalize_string($str);
}
-
/**
* Compose a valid display name from the given structured contact data
@@ -482,7 +471,7 @@
$fn = $contact['name'];
if (!$fn) // default display name composition according to vcard standard
- $fn = join(' ', array_filter(array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix'])));
+ $fn = trim(join(' ', array_filter(array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix']))));
// use email address part for name
$email = is_array($contact['email']) ? $contact['email'][0] : $contact['email'];
--
Gitblit v1.9.1