diff --git a/res/layout-xlarge/raw_contact_editor_view.xml b/res/layout-xlarge/raw_contact_editor_view.xml
index 044a5ea..3c3b9d0 100644
--- a/res/layout-xlarge/raw_contact_editor_view.xml
+++ b/res/layout-xlarge/raw_contact_editor_view.xml
@@ -67,7 +67,7 @@
                     android:layout_height="1px"
                     android:background="@color/contact_detail_header_divider_color" />
 
-                <com.android.contacts.editor.TextFieldsEditorView
+                <com.android.contacts.editor.StructuredNameEditorView
                     android:id="@+id/edit_name"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -77,13 +77,29 @@
                     android:layout_marginTop="6dip"
                     android:layout_marginBottom="4dip" />
 
-                <ViewStub
-                    android:id="@+id/aggregation_suggestion_stub"
-                    android:inflatedId="@+id/aggregation_suggestion"
-                    android:layout="@layout/aggregation_suggestions"
+                <com.android.contacts.editor.PhoneticNameEditorView
+                    android:id="@+id/edit_phonetic_name"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:visibility="visible" />
+                    android:paddingRight="?android:attr/scrollbarSize"
+                    android:layout_marginLeft="52dip"
+                    android:layout_marginRight="48dip"
+                    android:layout_marginTop="6dip"
+                    android:layout_marginBottom="4dip" />
+
+                <FrameLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="52dip"
+                    android:layout_marginRight="48dip">
+                    <ViewStub
+                        android:id="@+id/aggregation_suggestion_stub"
+                        android:inflatedId="@+id/aggregation_suggestion"
+                        android:layout="@layout/aggregation_suggestions"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:visibility="visible" />
+                </FrameLayout>
             </LinearLayout>
         </com.android.contacts.widget.InterpolatingLayout>
 
diff --git a/res/layout/list_separator.xml b/res/layout/list_separator.xml
index 1257935..9f562cf 100644
--- a/res/layout/list_separator.xml
+++ b/res/layout/list_separator.xml
@@ -17,6 +17,5 @@
 <!-- Layout used for list separators. -->
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
     style="?android:attr/listSeparatorTextViewStyle"
-    android:textColor="@*android:color/dim_foreground_dark"
     android:gravity="left|center_vertical"
 />
diff --git a/res/layout/raw_contact_editor_view.xml b/res/layout/raw_contact_editor_view.xml
index 62d904f..ac30a6b 100644
--- a/res/layout/raw_contact_editor_view.xml
+++ b/res/layout/raw_contact_editor_view.xml
@@ -96,12 +96,19 @@
 
         </FrameLayout>
 
-        <com.android.contacts.editor.TextFieldsEditorView
+        <com.android.contacts.editor.StructuredNameEditorView
             android:id="@+id/edit_name"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:paddingRight="?android:attr/scrollbarSize"
-            android:layout_below="@id/stub_photo"
+            android:layout_marginTop="6dip"
+            android:layout_marginBottom="4dip" />
+
+        <com.android.contacts.editor.PhoneticNameEditorView
+            android:id="@+id/edit_phonetic_name"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingRight="?android:attr/scrollbarSize"
             android:layout_marginTop="6dip"
             android:layout_marginBottom="4dip" />
 
diff --git a/res/layout/social_widget.xml b/res/layout/social_widget.xml
index fb02bb7..ddcd995 100644
--- a/res/layout/social_widget.xml
+++ b/res/layout/social_widget.xml
@@ -14,75 +14,78 @@
      limitations under the License.
 -->
 
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="96dip"
     android:background="#00000000"
-    android:paddingLeft="12dip"
     android:paddingTop="1dip"
-    android:paddingRight="12dip"
-    android:paddingBottom="20dip"
->
-    <FrameLayout
-        android:layout_width="70dip"
-        android:layout_height="70dip"
-        android:layout_marginTop="1dip"
-        android:layout_marginLeft="1dip"
-        >
-        <ImageView
-            android:id="@+id/image"
-            android:padding="4dip"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
-        <ImageButton
-            android:id="@+id/border"
-            android:background="@drawable/frame_thumbnail_contact_widget_holo"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent" />
-    </FrameLayout>
-    <RelativeLayout
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:background="@drawable/bg_status_contact_widget"
-        android:layout_marginTop="4dip"
-        android:layout_marginRight="4dip"
-        android:layout_marginBottom="7dip"
-        android:layout_marginLeft="0dip"
-        android:paddingLeft="47dip"
-        android:paddingRight="8dip"
-        android:paddingTop="3dip"
-        android:paddingBottom="6dip">
-
-        <TextView
-            android:id="@+id/name_and_snippet"
-            android:layout_width="match_parent"
+    android:paddingBottom="20dip">
+    <LinearLayout
+        android:id="@+id/widget_container"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+        <FrameLayout
+            android:layout_width="70dip"
+            android:layout_height="70dip"
+            android:layout_marginTop="1dip"
+            android:layout_marginLeft="13dip">
+            <ImageView
+                android:id="@+id/image"
+                android:padding="4dip"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+            <ImageButton
+                android:id="@+id/border"
+                android:background="@drawable/frame_thumbnail_contact_widget_holo"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+        </FrameLayout>
+        <RelativeLayout
+            android:id="@+id/name_and_snippet_container"
+            android:layout_width="0dip"
             android:layout_height="match_parent"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentTop="true"
-            android:maxLines="3"
-            android:lineSpacingExtra="2sp"
-            android:textColor="#FFFFFFFF"
-            android:textSize="@dimen/widget_text_size_snippet" />
+            android:layout_weight="1"
+            android:background="@drawable/bg_status_contact_widget"
+            android:layout_marginTop="4dip"
+            android:layout_marginRight="16dip"
+            android:layout_marginBottom="7dip"
+            android:layout_marginLeft="0dip"
+            android:paddingLeft="47dip"
+            android:paddingRight="8dip"
+            android:paddingTop="3dip"
+            android:paddingBottom="6dip">
 
-        <TextView
-            android:id="@+id/name"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:gravity="center"
-            android:textColor="#FFFFFFFF"
-            android:textSize="@dimen/widget_text_size_name" />
+            <TextView
+                android:id="@+id/name_and_snippet"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentTop="true"
+                android:maxLines="3"
+                android:lineSpacingExtra="2sp"
+                android:textColor="#FFFFFFFF"
+                android:textSize="@dimen/widget_text_size_snippet" />
 
-        <TextView
-            android:id="@+id/status_date"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentRight="true"
-            android:layout_alignParentBottom="true"
-            android:background="@drawable/statusbox_attribute_holo"
-            android:textSize="13sp"
-            android:textColor="#FF444444"
-            android:visibility="gone" />
-    </RelativeLayout>
-</LinearLayout>
+            <TextView
+                android:id="@+id/name"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:textColor="#FFFFFFFF"
+                android:textSize="@dimen/widget_text_size_name" />
+
+            <TextView
+                android:id="@+id/status_date"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:layout_alignParentBottom="true"
+                android:background="@drawable/statusbox_attribute_holo"
+                android:textSize="13sp"
+                android:textColor="#FF444444"
+                android:visibility="gone" />
+        </RelativeLayout>
+    </LinearLayout>
+</FrameLayout>
\ No newline at end of file
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 5cf4fc4..dcca0f1 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"صورة جهة الاتصال"</string>
     <string name="description_minus_button" msgid="387136707700230172">"علامة الطرح"</string>
     <string name="description_plus_button" msgid="515164827856229880">"علامة زائد"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"وحدة تخزين USB غير متوفرة"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"وحدة التخزين غير متوفرة."</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"لا بطاقة SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"لم يتم اكتشاف وحدة تخزين USB"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"لم يتم اكتشاف أية وحدة تخزين."</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"لم يتم اكتشاف بطاقة SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"البحث عن vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"استيراد من بطاقة SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"استيراد من وحدة تخزين USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"استيراد من وحدة التخزين"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"استيراد من بطاقة SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"تصدير إلى وحدة تخزين USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"تصدير إلى وحدة التخزين"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"تصدير إلى بطاقة SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"مشاركة جهات الاتصال المرئية"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"استيراد ملف vCard واحد"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"استيراد ملفات vCard متعددة"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"استيراد جميع ملفات vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"البحث عن بيانات vCard في وحدة تخزين USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"جارٍ البحث عن بيانات vCard في وحدة التخزين."</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"البحث عن بيانات vCard على بطاقة SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"أخفق فحص وحدة تخزين USB"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"أخفق فحص وحدة التخزين."</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"أخفق المسح الضوئي لبطاقة SD"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"أخفق فحص وحدة تخزين USB (السبب: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"أخفق فحص وحدة التخزين (السبب: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")."</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"أخفق المسح الضوئي لبطاقة SD (السبب: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"خطأ I/O"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"الذاكرة لا تكفي (ربما يكون الملف كبير جدًا)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"أخفق تحليل vCard بسبب غير متوقع"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"التنسيق غير معتمد."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"أخفق استيراد vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"لم يتم العثور على ملف vCard على وحدة تخزين USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"لم يتم العثور على أي ملف vCard في وحدة التخزين."</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"لم يتم العثور على ملف vCard على بطاقة SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"أخفق جمع معلومات وصفية عن ملفات vCard المحددة"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"أخفق استيراد ملف أو أكثر (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"أخفق تصدير بيانات جهة الاتصال"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"أخفق تصدير بيانات جهة الاتصال."\n"سبب الإخفاق: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"ليس هناك جهة اتصال قابلة للتصدير"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"هناك ملفات vCard كثيرة جدًا في وحدة تخزين USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"هناك عدد أكبر مما يجب من ملفات vCard في وحدة التخزين."</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"هناك ملفات vCard كثيرة جدًا على بطاقة SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"اسم الملف المطلوب طويل جدًا (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"تم الانتهاء من تصدير <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"الاسم الصوتي الممنوح"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"الاسم الصوتي الأوسط"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"اسم الأسرة الصوتي"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"الاسم"</string>
     <string name="account_type_format" msgid="718948015590343010">"جهة اتصال <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"من <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"استخدام هذه الصورة"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 44638b0..6f62119 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"снимка на контакта"</string>
     <string name="description_minus_button" msgid="387136707700230172">"минус"</string>
     <string name="description_plus_button" msgid="515164827856229880">"плюс"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Не е налице USB хранилище"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Няма хранилище"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Няма SD карта"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Няма USB хранилище"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Не бе открито хранилище"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Не е открита SD карта"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Търсене на vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Импортиране от SIM карта"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Импорт. от USB хранилище"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Импорт. от хранилището"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Импортиране от SD карта"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Експорт. в USB хранилище"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Експорт. в хранилището"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Експортиране в SD карта"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Споделяне на видимите контакти"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Импортиране на един vCard файл"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Импортиране на няколко vCard файла"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Импортиране на всички vCard файлове"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Търсят се данни за vCard в USB хранилището"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Търсят се данни за vCard в хранилището"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Търсене на vCard данни в SD картата"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Сканирането на USB хранилището не бе успешно"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Сканирането на хранилището не бе успешно"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Неуспешно сканиране на SD карта"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Сканирането на USB хранилището не бе успешно (Причина: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Сканирането на хранилището не бе успешно (Причина: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Неуспешно сканиране на SD карта ( Причина: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O грешка"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Няма достатъчно памет (файлът може да е твърде голям)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Неуспешен анализ на vCard по неизвестна причина"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Форматът не се поддържа."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Импортирането на vCard не бе успешно"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"В USB устройството за съхранение не бе намерен vCard файл"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"В хранилището не бе намерен vCard файл"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"На SD картата не бе намерен vCard файл"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Събирането на метаинформация от дадените vCard файлове не бе успешно."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Неуспешно импортиране на един или повече файлове (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Неуспешно експортиране на данни за контакти"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Неуспешно експортиране на данни за контакти."\n"Причина: „<xliff:g id="FAIL_REASON">%s</xliff:g>“"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Няма контакт за експортиране"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"В USB хранилището има твърде много vCard файлове"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Твърде много vCard файлове в хранилището"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Твърде много vCard файлове на SD картата"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Изисканото име на файла е твърде дълго („<xliff:g id="FILENAME">%s</xliff:g>“)"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Експортирането на <xliff:g id="FILENAME">%s</xliff:g> завърши"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Собствено име, както се произнася"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Презиме, както се произнася"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Фамилия, както се произнася"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Име, както се произнася"</string>
     <string name="account_type_format" msgid="718948015590343010">"Контакт от <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"от <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Използване на тази снимка"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 57e4af1..31de36e 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto del contacte"</string>
     <string name="description_minus_button" msgid="387136707700230172">"menys"</string>
     <string name="description_plus_button" msgid="515164827856229880">"més"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Emmag. USB no disp."</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Emmagatzematge no dispon."</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"No hi ha cap targeta SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Cap emmagatzematge USB detectat"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"No s\'ha detectat cap emmagatzematge"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"No s\'ha detectat cap targeta SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"S\'està cercant la vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importa des de la targeta SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importa des de l\'emmagatzematge USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importa de l\'emmagatzematge"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importa des de la targeta SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exporta a l\'emmagatzematge USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exporta a emmagatzematge"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exporta a la targeta SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Comparteix els contactes visibles"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importa un fitxer vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importa diversos fitxers vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importa tots els fitxers vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"S\'estan cercant dades de vCard a l\'emmagatzematge USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"S\'estan cercant dades de vCard a l\'emmagatzematge"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"S\'estan cercant les dades de vCard a la targeta SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"S\'ha produït un error en escanejar l\'emmagatzematge USB"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"S\'ha produït un error en examinar l\'emmagatzematge"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"No s\'ha pogut explorar la targeta SD"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"S\'ha produït un error en escanejar l\'emmagatzematge USB (motiu: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"S\'ha produït un error en examinar l\'emmagatzematge (Motiu: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"No s\'ha pogut explorar la targeta SD (motiu: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Error d\'E/S"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"La memòria és insuficient (és possible que el fitxer sigui massa gran)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"No s\'ha pogut analitzar la vCard per un motiu inesperat"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"No s\'admet aquest format."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"No s\'ha pogut importar la vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"No s\'ha trobat cap fitxer vCard a l\'emmagatzematge USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"No s\'ha trobat cap fitxer vCard a l\'emmagatzematge"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"No s\'ha trobat cap fitxer vCard a la targeta SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"S\'ha produït un error en aplegar metainformació dels fitxers vCard especificats."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"No s\'ha pogut importar un o més fitxers (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"No s\'han pogut exportar les dades de contacte"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"No s\'han pogut exportar les dades de contacte."\n"Motiu de l\'error: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"No hi ha cap contacte que es pugui exportar"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Massa fitxers vCard a l\'emmagatzematge USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Hi ha massa fitxers vCard a l\'emmagatzematge"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Hi ha massa fitxers vCard a la targeta SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"El nom de fitxer obligatori és massa llarg (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Exportació de <xliff:g id="FILENAME">%s</xliff:g> finalitzada"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Nom fonètic"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Primer cognom fonètic"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Cognoms fonètics"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nom fonètic"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contacte de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilitza aquesta foto"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 18ebfd5..b4ec252 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"fotografie kontaktu"</string>
     <string name="description_minus_button" msgid="387136707700230172">"mínus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Úložiště USB nedostupné"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Úložiště je nedostupné"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Žádná karta SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Úložiště USB nenalezeno"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Nebylo nalezeno žádné úložiště"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Nebyla zjištěna žádná karta SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Vyhledávání karty vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importovat z karty SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importovat z úložiště USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importovat z úložiště"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importovat z karty SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Export do úložiště USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exportovat do úložiště"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportovat na kartu SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Sdílet viditelné kontakty"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importovat jeden soubor vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importovat několik souborů vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importovat všechny soubory vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Vyhledávání dat karty vCard v úložišti USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Vyhledávání dat karty vCard v úložišti"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Vyhledávání dat karty vCard na kartě SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Vyhledávání v úložišti USB se nezdařilo"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Vyhledávání v úložišti se nezdařilo"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Vyhledávání na kartě SD se nezdařilo"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Vyhledávání v úložišti USB se nezdařilo (Důvod: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Vyhledávání v úložišti se nezdařilo (Důvod: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Vyhledávání na kartě SD se nezdařilo. (Důvod: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Chyba V/V"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Není k dispozici dostatek paměti (soubor může být příliš velký)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Analýza karty vCard se z neznámého důvodu nezdařila."</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Formát není podporován."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Import karty vCard se nezdařil"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"V úložišti USB nebyl nalezen žádný soubor vCard"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"V úložišti nebyl nalezen žádný soubor vCard"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Na kartě SD nebyl nalezen žádný soubor vCard"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Shromáždění metainformací zadaných souborů vCard se nezdařilo."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Import jednoho nebo více souborů se nezdařil (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Export dat kontaktů se nezdařil"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Export dat kontaktů se nezdařil."\n"Příčina chyby: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Žádný kontakt nelze exportovat"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"V úložišti USB je příliš mnoho souborů vCard"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"V úložišti je příliš mnoho souborů vCard."</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Na kartě SD je příliš mnoho souborů vCard"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Požadovaný název souboru (<xliff:g id="FILENAME">%s</xliff:g>) je příliš dlouhý"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Export souboru <xliff:g id="FILENAME">%s</xliff:g> byl dokončen."</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Křestní jméno (foneticky)"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Druhé jméno (foneticky)"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Příjmení (foneticky)"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Jméno (foneticky)"</string>
     <string name="account_type_format" msgid="718948015590343010">"Kontakt ze zdroje <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"z účtu <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Použít tuto fotografii"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 7cc317c..92d2477 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"kontaktpersonfoto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-lager utilgængeligt"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Lager ikke tilgængeligt"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Der er intet SD-kort"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Intet USB-lager blev fundet"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Intet lager fundet"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Der blev ikke fundet noget SD-kort"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Søger efter vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importer fra SIM-kort"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importer fra USB-lager"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importer fra lager"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importer fra SD-kort"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Eksporter til USB-lager"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Eksporter til lager"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Eksporter til SD-kort"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Del synlige kontaktpersoner"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importer en VCard-fil"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importer flere VCard-filer"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importer alle VCard-filer"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Søger efter vCard-data i USB-lager"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Søger efter vCard-data i lager"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Søger efter vCard-kort på SD-kortet"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Scanningen af USB-lager mislykkedes"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Scanning af lageret mislykkedes"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Scanningen af SD-kortet mislykkedes"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Scanningen af USB-lager mislykkedes (årsag: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Scanning af lager mislykkedes (Årsag: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Scanningen af SD-kortet mislykkedes: (Årsag: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O-fejl"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Der er ikke nok hukommelse (filen er muligvis for stor)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"vCard kunne ikke parses pga. en uventet årsag"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Formatet understøttes ikke."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"vCard kunne ikke importeres"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Der blev ikke fundet nogen vCard-fil i USB-lageret"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Der blev ikke fundet nogen vCard-fil i lageret"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Der blev ikke fundet nogen vCard-fil på SD-kortet"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Metaoplysninger om angivne vCard-filer kunne ikke hentes."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"En eller flere filer blev ikke importeret (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Eksport af kontaktdata mislykkedes"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Eksport af kontaktpersondata mislykkedes."\n"Årsag til fejl: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Der er ingen kontakter, der kan eksporteres"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Der er for mange vCard-filer i USB-lager"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Der er for mange vCard-filer i lageret"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Der er for mange vCard-data på SD-kortet"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Det krævede filnavn er for langt (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Eksport af <xliff:g id="FILENAME">%s</xliff:g> afsluttet"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Fonetisk fornavn"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetisk mellemnavn"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Fonetisk efternavn"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetisk navn"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontaktperson"</string>
     <string name="from_account_format" msgid="687567483928582084">"fra<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Brug dette billede"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index dbe97b9..1f8cec6 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"Kontaktbild"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-Speicher nicht verfügbar"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Kein Speicher verfügbar"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Keine SD-Karte"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Keinen USB-Speicher gefunden"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Kein Speicher gefunden"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Keine SD-Karte gefunden"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"vCard wird gesucht."</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Von SIM-Karte importieren"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Aus USB-Speicher import."</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Aus Speicher importieren"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Von SD-Karte importieren"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"In USB-Speicher exportieren"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"In Speicher exportieren"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Auf SD-Karte exportieren"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Sichtbare Kontakte weitergeben"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Eine VCard-Datei importieren"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Mehrere VCard-Dateien importieren"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Alle VCard-Dateien importieren"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Suche nach vCard-Daten in USB-Speicher"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Suche nach vCard-Daten im Speicher..."</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Suche nach einer vCard-Information auf der SD-Karte"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Scannen des USB-Speichers fehlgeschlagen"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Scannen des Speichers fehlgeschlagen"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Fehler beim Lesen der SD-Karte"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Scannen des USB-Speichers fehlgeschlagen. Grund: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Scannen des USB-Speichers fehlgeschlagen. Grund: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Fehler beim Lesen der SD-Karte. Grund: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"E/A-Fehler"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Zu wenig Speicherplatz (Datei ist eventuell zu groß)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Die vCard konnte aus einem unbekannten Grund nicht geparst werden."</string>
-    <string name="fail_reason_not_supported" msgid="294499264620201243">"Format wird nicht unterstützt."</string>
+    <string name="fail_reason_not_supported" msgid="294499264620201243">"Das Format wird nicht unterstützt."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"vCard kann nicht importiert werden."</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Im USB-Speicher wurde keine vCard-Datei gefunden."</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Im Speicher wurde keine vCard-Datei gefunden."</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Auf der SD-Karte wurde keine vCard-Datei gefunden."</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Metainformationen konnten nicht von den angegebenen vCards abgerufen werden."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Fehler beim Import einer oder mehrerer Dateien (%s)"</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Fehler beim Exportieren von Kontaktdaten"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Fehler beim Exportieren der Kontaktdaten."\n"Fehlerursache: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Es ist kein exportierbarer Kontakt vorhanden"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Zu viele vCard-Dateien im USB-Speicher"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Zu viele vCard-Dateien im Speicher"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Zu viele vCard-Dateien auf der SD-Karte"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Erforderlicher Dateiname ist zu lang (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Export von <xliff:g id="FILENAME">%s</xliff:g> abgeschlossen"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Phonetischer Vorname"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Phonetischer zweiter Vorname"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Phonetischer Nachname"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Phonetischer Name"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-Kontakt"</string>
     <string name="from_account_format" msgid="687567483928582084">"von <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Dieses Foto verwenden"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index a54dd00..ce14e4d 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"φωτογραφία επαφής"</string>
     <string name="description_minus_button" msgid="387136707700230172">"μείον"</string>
     <string name="description_plus_button" msgid="515164827856229880">"συν"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Διαθέσ. αποθηκ. χώρος USB"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Μη διαθέσιμος χώρος αποθ."</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Δεν υπάρχει κάρτα SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Χωρίς εντοπ. αποθ. χώρου USB"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Δεν εντοπίστηκε χώρος αποθ."</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Δεν ανιχνεύθηκε κάρτα SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Αναζήτηση κάρτας vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Εισαγωγή από κάρτα SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Εισ. από αποθ. χώρο USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Εισαγωγή από τον χώρο αποθ."</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Εισαγωγή από κάρτα SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Εξαγ. σε αποθ. χώρο USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Εξαγωγή στον χώρο αποθ."</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Εξαγωγή σε κάρτα SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Κοινή χρήση ορατών επαφών"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Εισαγωγή ενός αρχείου VCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Εισαγωγή πολλαπλών αρχείων vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Εισαγωγή όλων των αρχείων vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Αναζήτηση δεδομένων vCard στον αποθηκευτικό χώρο USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Αναζήτηση δεδομένων vCard στον χώρο αποθήκευσης"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Αναζήτηση για δεδομένα vCard στην κάρτα SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Η σάρωση του αποθηκευτικού χώρου USB απέτυχε"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Η σάρωση του χώρου αποθήκευσης απέτυχε"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Η σάρωση της κάρτας SD απέτυχε"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Η σάρωση του αποθηκευτικού χώρου USB απέτυχε (Αιτία: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Η σάρωση του αποθηκευτικού χώρου απέτυχε (Αιτία: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Η σάρωση της κάρτας SD απέτυχε (Αιτία:\"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Σφάλμα I/O"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Η μνήμη είναι ανεπαρκής (το αρχείο μπορεί να είναι πολύ μεγάλο)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Η ανάλυση της κάρτας vCard απέτυχε εξαιτίας μη αναμενόμενου συμβάντος"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Η μορφή δεν υποστηρίζεται."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Αποτυχία εισαγωγής vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Δεν βρέθηκαν αρχεία vCard στον αποθηκευτικό σας χώρο USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Δεν βρέθηκαν αρχεία vCard στον χώρο αποθήκευσης"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Δεν βρέθηκε αρχείο VCard στην κάρτα SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Η συλλογή μετα-πληροφοριών του δεδομένου αρχείου(ων) vCard απέτυχε."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Η εισαγωγή ενός ή περισσοτέρων αρχείων απέτυχε (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Αποτυχία εξαγωγής δεδομένων επαφής"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Αποτυχία εξαγωγής δεδομένων επαφής."\n"Αιτία αποτυχίας: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Δεν υπάρχει επαφή με δυνατότητα εξαγωγής"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Υπερβολικά μεγάλος όγκος αρχείων VCard στον αποθηκευτικό χώρο USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Υπερβολικά πολλά αρχεία vCard στον χώρο αποθήκευσης"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Υπερβολικά μεγάλος όγκος αρχείων VCard στην κάρτα SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Το απαιτούμενο όνομα αρχείου είναι υπερβολικά μεγάλο (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Η εξαγωγή ολοκληρώθηκε<xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Φωνητική μορφή ονόματος"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Φωνητική γραφή ονόματος πατρός"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Φωνητική γραφή επιθέτου"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Όνομα σε φωνητική γραφή"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> επαφή"</string>
     <string name="from_account_format" msgid="687567483928582084">"από <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Χρήση αυτής της φωτογραφίας"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 2a19c3c..551be6d 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"contact photo"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB storage unavailable"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Storage unavailable"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"No SD card"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"No USB storage detected"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"No storage detected"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"No SD card detected"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Searching for vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Import from SIM card"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Import from USB storage"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Import from storage"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Import from SD card"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Export to USB storage"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Export to storage"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Export to SD card"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Share visible contacts"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Import one vCard file"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Import multiple vCard files"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Import all vCard files"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Searching for vCard data in USB storage"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Searching for vCard data in storage"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Searching for vCard data on SD card"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Scanning USB storage failed"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Scanning storage failed"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Scanning SD card failed"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Scanning USB storage failed (Reason: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Scanning USB storage failed (Reason: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Scanning SD card failed (Reason: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O Error"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Memory is insufficient (the file may be too large)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Failed to parse vCard for unexpected reason"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"The format is not supported."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Failed to import vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"No vCard file found in the USB storage"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"No vCard file found in the storage"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"No vCard file found on the SD card"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Failed to collect meta information of given vCard file(s)."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"One or more files failed to be imported (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Failed to export contact data"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Failed to export contact data."\n"Reason for failure: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"There is no exportable contact"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Too many vCard files in the USB storage"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Too many vCard files in the storage"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Too many vCard files on the SD card"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Required filename is too long (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Finished exporting <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Phonetic given name"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Phonetic middle name"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Phonetic family name"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Phonetic name"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> contact"</string>
     <string name="from_account_format" msgid="687567483928582084">"from <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Use this photo"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index af20f5a..1dfa06c 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto de contacto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"menos"</string>
     <string name="description_plus_button" msgid="515164827856229880">"más"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Almacenamiento USB no disponible"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"No se dispone de espacio de almacenamiento."</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"No hay tarjeta SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"No se detectó el almacenamiento USB"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"No se detectó almacenamiento alguno."</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"No se ha detectado ninguna tarjeta SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Buscando vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importar de la tarjeta SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importar desde almacenamiento USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importar desde el almacenamiento"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importar de la tarjeta SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportar a almacenamiento USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exportar al almacenamiento"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportar a la tarjeta SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Compartir contactos visibles"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importar un archivo de vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importar múltiples archivos de vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importar todos los archivos de vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Buscando datos de vCard en el almacenamiento USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Buscando datos de vCard en el almacenamiento"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Buscando datos de vCard en la tarjeta SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"No se pudo explorar el almacenamiento USB"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"No se pudo explorar el almacenamiento."</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"No se ha podido explorar la tarjeta SD"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"No se pudo explorar el almacenamiento USB (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"No se pudo explorar el almacenamiento (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")."</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"No se ha podido explorar la tarjeta SD. (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Error de E/S"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Memoria insuficiente (es probable que el archivo sea muy grande)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"No se ha podido analizar vCard debido a un motivo inesperado"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"El formato no es compatible."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"No se pudo importar vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"No se encontró ningún archivo vCard en el almacenamiento USB."</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"No se encontró ningún archivo de vCard en el almacenamiento."</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"No se ha encontrado un archivo de vCard en la Tarjeta SD."</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Error al recopilar metadatos de un archivo específico de la vCard."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"No se pudieron importar uno o más archivos (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"No se han podido exportar los datos de contacto"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"No se han podido exportar los datos de contacto."\n"Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"No hay ningún contacto exportable"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Demasiados archivos de vCard en el almacenamiento USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Demasiados archivos de vCard en el almacenamiento"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Demasiados archivos de vCard en la tarjeta SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"El nombre de archivo requerido es demasiado largo (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Finalizó la exportación de <xliff:g id="FILENAME">%s</xliff:g>."</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Nombre fonético"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Segundo nombre fonético"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Apellido fonético"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nombre fonético"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contacto de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Usar esta foto"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 08e8a62..c9dcac8 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto de contacto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"menos"</string>
     <string name="description_plus_button" msgid="515164827856229880">"más"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB no disponible"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Almacenamiento no disponible"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Falta la tarjeta SD."</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"USB no detectado"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Sin almacenamiento detectado"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"No se ha detectado ninguna tarjeta SD."</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Buscando vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importar contactos desde la tarjeta SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importar de USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importar de almacenamiento"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importar contactos desde la tarjeta SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportar a USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exportar a almacenamiento"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportar contactos a la tarjeta SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Compartir contactos visibles"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importar un archivo de vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importar varios archivos de vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importar todos los archivos de vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Buscando datos de vCard en USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Buscando datos de vCard en almacenamiento"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Buscando datos de vCard en la tarjeta SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Error al analizar USB"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Error al analizar almacenamiento"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Error al buscar en la tarjeta SD"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Error al analizar USB (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Error al analizar almacenamiento (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Error al buscar en la tarjeta SD (motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Error de E/S"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Memoria insuficiente (el archivo puede ser demasiado grande)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"No se ha podido analizar el archivo de vCard debido a un error inesperado."</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"No se admite este formato."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Se ha producido un error al importar vCard."</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"No se ha encontrado el archivo de vCard en el almacenamiento USB."</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"No se han encontrado archivos de vCard en el almacenamiento."</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"No se ha encontrado ningún archivo de vCard en la tarjeta SD."</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Error al recopilar metainformación de los archivos vCard"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"No ha sido posible importar uno o varios archivos (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Error al exportar los datos del contacto"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Se ha producido un error al exportar los datos del contacto."\n"Motivo del error: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"No hay contactos que exportar."</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Hay demasiados archivos de vCard en el almacenamiento USB."</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Hay demasiados archivos de vCard en el almacenamiento."</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Hay demasiados archivos de vCard en la tarjeta SD."</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"El nombre de archivo necesario es demasiado largo (\"<xliff:g id="FILENAME">%s</xliff:g>\")."</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Exportación de <xliff:g id="FILENAME">%s</xliff:g> finalizada"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Nombre fonético"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Segundo nombre fonético"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Apellido fonético"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Transcripción fonética del nombre"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contacto de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilizar esta foto"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 1df4355..627d3eb 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"عکس مخاطب"</string>
     <string name="description_minus_button" msgid="387136707700230172">"منها"</string>
     <string name="description_plus_button" msgid="515164827856229880">"به اضافه"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"حافظه USB در دسترس نیست"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"حافظه در دسترس نیست"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"کارت SD موجود نیست"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"حافظه USB یافت نشد"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"حافظه ای شناسایی نشد"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"هیچ کارت SD شناسایی نشد"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"جستجوی کارت ویزیت"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"وارد کردن از سیم کارت"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"وارد کردن از حافظه USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"وارد کردن از حافظه"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"وارد کردن از کارت SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"صادر کردن به حافظه USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"صادر کردن به حافظه"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"صدور به کارت SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"اشتراک گذاری مخاطبین قابل مشاهده"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"وارد کردن یک فایل کارت ویزیت"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"وارد کردن چند فایل کارت ویزیت"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"وارد کردن همه فایل های کارت ویزیت"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"جستجوی داده کارت ویزیت در حافظه USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"جستجوی داده کارت ویزیت در حافظه"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"جستجوی داده های کارت ویزیت در کارت SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"اسکن حافظه USB ناموفق بود"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"اسکن حافظه انجام نشد"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"اسکن کارت SD انجام نشد"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"اسکن حافظه USB ناموفق بود (دلیل: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"اسکن حافظه ناموفق بود (دلیل: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"اسکن کارت SD انجام نشد (دلیل: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"خطای ورودی/خروجی"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"حافظه کافی نیست (ممکن است فایل بسیار بزرگ باشد)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"تجزیه کارت ویزیت به دلیل پیش بینی نشده انجام نشد"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"قالب پشتیبانی نمی شود."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"vCard وارد نشد"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"فایل کارت ویزیتی در دستگاه ذخیره USB یافت نشد"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"فایل کارت ویزیت در حافظه یافت نشد"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"فایل کارت ویزیتی در کارت SD یافت نشد"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"جمع آوری فوق اطلاعات فایل(های) کارت ویزیت موجود ناموفق بود."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"یک یا چند فایل وارد نشدند (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"صدور اطلاعات مخاطب انجام نشد"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"صدور اطلاعات مخاطب انجام نشد."\n"دلیل خطا: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"هیچ مخاطب قابل صدوری موجود نیست"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"تعداد فایل های کارت ویزیت در حافظه USB بسیار زیاد است"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"تعداد فایل های کارت ویزیت در حافظه بسیار زیاد است"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"فایل های کارت ویزیت بسیار زیادی در کارت SD وجود دارد"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"نام فایل ضروری خیلی طولانی است (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"صادر کردن <xliff:g id="FILENAME">%s</xliff:g> پایان یافت"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"تلفظ نام"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"تلفظ نام میانی"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"تلفظ آوایی نام خانوادگی"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"تلفظ نام"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> مخاطب"</string>
     <string name="from_account_format" msgid="687567483928582084">"از <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"استفاده از این عکس"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 6f7253b..6a9586c 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"yhteystiedon valokuva"</string>
     <string name="description_minus_button" msgid="387136707700230172">"miinus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-tila ei käytettävissä"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Tallennustila ei käytettävissä"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Ei SD-korttia"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Ei USB-tallennustilaa"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Tallennustilaa ei havaittu"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"SD-korttia ei havaittu"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Etsitään vCardia"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Tuo SIM-kortilta"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Tuo USB-tilasta"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Tuo tallennustilasta"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Tuo SD-kortilta"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Vie USB-tilaan"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Vie tallennustilaan"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Vie SD-kortille"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Jaa näkyvät yhteystiedot"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Tuo yksi vCard-tiedosto"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Tuo useita vCard-tiedostoja"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Tuo kaikki vCard-tiedostot"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Haetaan vCard-tietoja USB-tallennustilasta"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Etsitään vCard-tietoja tallennustilasta"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Etsitään vCard-tietoja SD-kortilta"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"USB-tallennustilan lukeminen epäonnistui"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Tallennustilan lukeminen epäonnistui"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"SD-kortin lukeminen epäonnistui"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"USB-tallennustilan lukeminen epäonnistui (syy: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Tallennustilan lukeminen epäonnistui (Syy: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"SD-kortin lukeminen epäonnistui (Syy: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O-virhe"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Muisti ei riitä (tiedosto voi olla liian suuri)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"vCardin jäsennys epäonnistui tuntemattomasta syystä"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Muotoa ei tueta."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"vCard-tietojen tuonti epäonnistui"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"USB-tallennustilasta ei löydy vCard-tiedostoa"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Tallennustilasta ei löydy vCard-tiedostoja"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"SD-kortilta ei löydy vCard-tiedostoa"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Annettujen vCard-tiedostojen sisällönkuvaustietojen noutaminen epäonnistui."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Ainakin yhden tiedoston tuominen epäonnistui (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Yhteystietojen vieminen epäonnistui"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Yhteystietojen vieminen epäonnistui."\n"Virheen syy: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Ei vietäviä yhteystietoja"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Liikaa vCard-tiedostoja USB-tallennustilassa"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Tallennustilassa on liian monta vCard-tiedostoa"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD-kortilla on liian monta vCard-tiedostoa"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Tarvittava tiedostonimi on liian pitkä (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Kohteen <xliff:g id="FILENAME">%s</xliff:g> vienti valmis"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Etunimen ääntämistapa"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Toisen nimen ääntämistapa"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Sukunimen ääntämistapa"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nimen ääntämistapa"</string>
     <string name="account_type_format" msgid="718948015590343010">"Tilin <xliff:g id="SOURCE">%1$s</xliff:g> yhteystieto"</string>
     <string name="from_account_format" msgid="687567483928582084">"tilistä <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Käytä valokuvaa"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index b4694a6..707119a 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -161,12 +161,12 @@
     <string name="simContacts_title" msgid="27341688347689769">"Contacts de carte SIM"</string>
     <string name="noContactsHelpTextWithSyncForCreateShortcut" msgid="801504710275614594">"Vous n\'avez aucun contact à afficher. Si vous venez d\'ajouter un compte, la synchronisation des contacts peut prendre quelques minutes."</string>
     <string name="noContactsHelpTextForCreateShortcut" msgid="3081286388667108335">"Vous n\'avez aucun contact à afficher."</string>
-    <!-- syntax error in translation for noContactsHelpText (6450346791169710787) org.xmlpull.v1.XmlPullParserException: expected: /b read: font (position:END_TAG </font>@1:560 in java.io.StringReader@2e8f4fb3)  -->
-    <!-- syntax error in translation for noContactsHelpText (7633826236417884130) org.xmlpull.v1.XmlPullParserException: expected: /b read: font (position:END_TAG </font>@1:567 in java.io.StringReader@42b988a6)  -->
+    <!-- syntax error in translation for noContactsHelpText (6450346791169710787) org.xmlpull.v1.XmlPullParserException: expected: /b read: font (position:END_TAG </font>@1:560 in java.io.StringReader@2666e815)  -->
+    <!-- syntax error in translation for noContactsHelpText (7633826236417884130) org.xmlpull.v1.XmlPullParserException: expected: /b read: font (position:END_TAG </font>@1:567 in java.io.StringReader@2e0ece65)  -->
     <string name="noContactsHelpTextWithSync" product="tablet" msgid="2364665535969139880">"Vous n\'avez aucun contact à afficher (si vous venez d\'ajouter un compte, la synchronisation des contacts peut prendre quelques minutes)."\n\n"Pour ajouter des contacts, appuyez sur "<font fgcolor="#ffffffff"><b>"Menu"</b></font>", puis sur :"\n" "\n<li><font fgcolor="#ffffffff"><b>"Comptes"</b></font>" pour ajouter ou configurer un compte dont vous pourrez synchroniser les contacts vers la tablette ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Options d\'affichage"</b></font>" pour modifier les paramètres de visibilité des contacts ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Nouveau contact"</b></font>" pour créer un contact ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/Exporter"</b></font>" pour importer des contacts depuis votre carte SIM ou SD."\n</li></string>
     <string name="noContactsHelpTextWithSync" product="default" msgid="3017521127042216243">"Vous n\'avez aucun contact à afficher (si vous venez d\'ajouter un compte, la synchronisation des contacts peut prendre quelques minutes)."\n\n"Pour ajouter des contacts, appuyez sur "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" et sélectionnez :"\n" "\n<li><font fgcolor="#ffffffff"><b>"Comptes"</b></font>" pour ajouter ou configurer un compte dont vous pourrez synchroniser les contacts sur le téléphone ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Options d\'affichage"</b></font>" pour modifier le paramètre de visibilité des contacts ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Nouveau contact"</b></font>" pour créer un contact ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/Exporter"</b></font>" pour importer des contacts depuis votre carte SIM ou SD."\n</li></string>
-    <!-- syntax error in translation for noContactsNoSimHelpText (6031363021287849874) org.xmlpull.v1.XmlPullParserException: expected: /b read: font (position:END_TAG </font>@1:565 in java.io.StringReader@22ba6c83)  -->
-    <!-- syntax error in translation for noContactsNoSimHelpText (467658807711582876) org.xmlpull.v1.XmlPullParserException: expected: /b read: font (position:END_TAG </font>@1:571 in java.io.StringReader@7d2a1e44)  -->
+    <!-- syntax error in translation for noContactsNoSimHelpText (6031363021287849874) org.xmlpull.v1.XmlPullParserException: expected: /b read: font (position:END_TAG </font>@1:565 in java.io.StringReader@4e106082)  -->
+    <!-- syntax error in translation for noContactsNoSimHelpText (467658807711582876) org.xmlpull.v1.XmlPullParserException: expected: /b read: font (position:END_TAG </font>@1:571 in java.io.StringReader@15301ed8)  -->
     <string name="noContactsNoSimHelpTextWithSync" product="tablet" msgid="6222739731808897565">"Vous n\'avez aucun contact à afficher (si vous venez d\'ajouter un compte, la synchronisation des contacts peut prendre quelques minutes)."\n\n"Pour ajouter des contacts, appuyez sur "<font fgcolor="#ffffffff"><b>"Menu"</b></font>", puis sur :"\n" "\n<li><font fgcolor="#ffffffff"><b>"Comptes"</b></font>" pour ajouter ou configurer un compte dont vous pourrez synchroniser les contacts vers la tablette ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Options d\'affichage"</b></font>" pour modifier les paramètres de visibilité des contacts ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Nouveau contact"</b></font>" pour créer un contact ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/Exporter"</b></font>" pour importer des contacts depuis votre carte SD."\n</li></string>
     <string name="noContactsNoSimHelpTextWithSync" product="default" msgid="9040060730467973050">"Vous n\'avez aucun contact à afficher (si vous venez d\'ajouter un compte, la synchronisation des contacts peut prendre quelques minutes)."\n\n"Pour ajouter des contacts, appuyez sur "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" et sélectionnez :"\n" "\n<li><font fgcolor="#ffffffff"><b>"Comptes"</b></font>" pour ajouter ou configurer un compte dont vous pourrez synchroniser les contacts sur le téléphone ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Options d\'affichage"</b></font>" pour modifier le paramètre de visibilité des contacts ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Nouveau contact"</b></font>" pour créer un contact ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/Exporter"</b></font>" pour importer des contacts depuis votre carte SD."\n</li></string>
     <string name="noFavoritesHelpText" msgid="3744655776704833277">"Vous ne disposez d\'aucun favoris."\n\n"Pour ajouter un contact à la liste de favoris :"\n\n"        "<li>"Appuyez sur l\'onglet "<b>"Contacts"</b>"."\n</li>" "\n<li>"Appuyez sur le contact à ajouter à vos favoris."\n</li>" "\n<li>"Appuyez sur l\'étoile en regard du nom du contact."\n</li></string>
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"photo du contact"</string>
     <string name="description_minus_button" msgid="387136707700230172">"moins"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Mémoire de stockage USB non disponible"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Mémoire non disponible"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Aucune carte SD trouvée"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Mémoire de stockage USB non détectée"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Aucune mémoire stockage détectée"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Aucune carte SD n\'a été détectée."</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Recherche des données VCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importer à partir de la carte SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importer depuis mémoire USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importer depuis mémoire"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importer à partir de la carte SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exporter vers mémoire USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exporter vers la mémoire"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exporter vers la carte SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Partager les contacts visibles"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importer un fichier vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importer plusieurs fichiers vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importer tous les fichiers vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Recherche de données VCard sur la mémoire de stockage USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Recherche de données vCard sur la mémoire de stockage"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Recherche de données VCard sur la carte SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Impossible d\'analyser la mémoire de stockage USB"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Échec de la recherche dans la mémoire de stockage"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Échec de l\'analyse de la carte SD"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Impossible d\'analyser la mémoire de stockage USB (Raison : \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Échec de la recherche dans la mémoire de stockage (Raison : \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Échec de l\'analyse de la carte SD (Raison : \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Erreur d\'E/S"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Mémoire insuffisante (fichier probablement trop volumineux)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Échec de l\'analyse des données VCard pour une raison inattendue"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Le format n\'est pas compatible."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Échec de l\'importation du fichier vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Aucun fichier vCard n\'a été trouvé sur la mémoire de stockage USB."</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Aucun fichier vCard trouvé sur la mémoire de stockage"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Aucun fichier vCard trouvé sur la carte SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Échec de la collecte des métadonnées contenues dans le(s) fichier(s) vCard"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Échec de l\'importation d\'un ou de plusieurs fichiers (%s)"</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Échec lors de l\'exportation des données du contact"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Échec lors de l\'exportation des données du contact."\n"Motif : \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Aucun contact exportable"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"La mémoire de stockage USB contient trop de fichiers VCard."</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"La mémoire de stockage contient trop de fichiers vCard."</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"La carte SD contient trop de fichiers VCard."</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Le nom de fichier requis est trop long (\"<xliff:g id="FILENAME">%s</xliff:g>\")."</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Fichier vCard <xliff:g id="FILENAME">%s</xliff:g> exporté"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Phonétique du prénom"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Phonétique 2e prénom"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Phonétique du nom de famille"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nom phonétique"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contact <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utiliser cette photo"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index c92d9e4..3f06446 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"fotografija kontakta"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Memorija USB nedostupna"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Prostor za pohranu nedostupan"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Nema SD kartice"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Memorija USB nije otkrivena"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Pohrana nije otkrivena"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Nije pronađena SD kartica"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Traženje kartice vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Uvezi sa SIM kartice"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Uvoz s USB memorije"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Uvoz iz pohrane"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Uvezi sa SD kartice"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Izvoz na USB memoriju"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Izvoz u pohranu"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Izvoz na SD karticu"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Dijeli vidljive kontakte"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Uvezi jednu vCard datoteku"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Uvoz više vCard datoteka"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Uvezi sve vCard datoteke"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Traženje vCard podataka u USB memoriji"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Traženje podataka kartice vCard u pohrani"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Traženje vCard podataka na SD kartici"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Skeniranje memorije USB nije uspjelo"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Skeniranje pohrane nije uspjelo"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Skeniranje SD kartice nije uspjelo"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Skeniranje memorije USB nije uspjelo (razlog: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Skeniranje pohrane nije uspjelo (razlog: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Skeniranje SD kartice nije uspjelo (Razlog: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O pogreška"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Memorija je premala (datoteka je možda prevelika)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Analiza kartice vCard nije uspjela zbog neočekivanog razloga"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Format nije podržan."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Neuspješan uvoz vCarda"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"U USB pohrani nije pronađena vCard datoteka"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Datoteka kartice vCard nije pronađena u pohrani"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Na SD kartici nije pronađena datoteka vCard"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Neuspješno prikupljanje meta informacija danih datoteka vCard."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Uvoz jedne ili više datoteka nije uspio (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Izvoz podataka o kontaktu nije uspio."</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Izvoz podataka o kontaktu nije uspio."\n"Razlog neuspjeha: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Nema kontakta koji je moguće izvesti"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Previše datoteka vCard u USB memoriji"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Previše datoteka kartice vCard u pohrani"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Previše vCard datoteka na SD kartici"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Obavezan naziv datoteke je predug (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Završetak izvoza <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Fonetsko ime"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetsko srednje ime"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Fonetsko prezime"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Ime fonetski"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
     <string name="from_account_format" msgid="687567483928582084">"s lokacije <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Upotrijebi ovu fotografiju"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index cafb9cd..abe737f 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"fotó a névjegyhez"</string>
     <string name="description_minus_button" msgid="387136707700230172">"mínusz"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plusz"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Az USB-tár nem érhető el"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"A tárhely nem érhető el"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Hiányzó SD-kártya"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Nem észlelhető USB-tár"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Nem észlelhető tárhely"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Az SD-kártya nem észlelhető"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"vCard keresése"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importálás a SIM-kártyáról"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importálás USB-tárról"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importálás a tárhelyről"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importálás az SD-kártyáról"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportálás USB-tárra"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exportálás a tárhelyre"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportálás SD-kártyára"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Látható névjegyek megosztása"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Egyetlen vCard fájl importálása"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Több vCard fájl importálása"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Az összes vCard fájl importálása"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"vCard-adatok keresése az USB-táron"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"vCard-adatok keresése a tárhelyen"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"vCard-adatok keresése az SD-kártyán"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Az USB-tár beolvasása sikertelen volt"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Nem sikerült beolvasni a tárhelyet"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Az SD-kártya beolvasása sikertelen"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Az USB-tár beolvasása sikertelen volt (A hiba oka: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Nem sikerült beolvasni a tárhelyet (a hiba oka: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Az SD-kártya beolvasása nem sikerült (oka: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O hiba"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Nincs elég memória (lehet, hogy túl nagy a fájl)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Váratlan ok miatt nem sikerült a vCard szintaktikai elemzése"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"A formátum nem támogatott."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Nem sikerült a vCard importálása"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Nem található vCard fájl az USB-táron"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Nem található vCard fájl a tárhelyen"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Nem található vCard fájl az SD-kártyán"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Nem sikerült begyűjteni a vCard fájl(ok) metaadatait."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Egy vagy több fájlt nem sikerült importálni (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Nem sikerült exportálni a névjegyadatokat"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Nem sikerült exportálni a névjegyadatokat."\n"A hiba oka: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Nincs exportálható névjegy"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Túl sok vCard-fájl van az USB-táron"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Túl sok vCard fájl van a tárhelyen"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Túl sok vCard fájl van az SD-kártyán"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"A fájlnév túl hosszú (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"A(z) <xliff:g id="FILENAME">%s</xliff:g> exportálása befejeződött"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Utónév fonetikusan"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Második utónév fonetikusan"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Vezetéknév fonetikusan"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Név fonetikusan"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> névjegy"</string>
     <string name="from_account_format" msgid="687567483928582084">"<xliff:g id="SOURCE">%1$s</xliff:g> fiókból"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Fotó felhasználása"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 3002611..c031cac 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto kenalan"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Penyimpanan USB tidak tersedia"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Penyimpanan tidak tersedia"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Tidak ada kartu SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Tidak ada penyimpanan USB yang terdeteksi"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Penyimpanan tidak terdeteksi"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Tidak ada kartu SD yang terdeteksi"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Menelusuri vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Impor dari kartu SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Mengimpor dari penyimpanan USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Impor dari penyimpanan"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Impor dari kartu SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Ekspor ke penyimpanan USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Ekspor ke penyimpanan"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Ekspor ke kartu SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Bagikan kenalan yang terlihat"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Impor satu berkas vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Impor beberapa berkas vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Impor semua berkas vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Menelusuri data vCard dalam penyimpanan USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Menelusuri data vCard dalam penyimpanan"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Menelusuri data vCard pada kartu SD."</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Memindai penyimpanan USB gagal"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Gagal memindai penyimpanan"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Kartu SD gagal dipindai"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Memindai penyimpanan USB gagal (Alasan: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Gagal memindai penyimpanan (Alasan: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Kartu SD gagal dipindai (Alasan: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Galat I/O"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Memori tidak memadai (berkas mungkin terlalu besar)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Gagal melakukan parse pada vCard karena alasan yang tidak diharapkan"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Format tidak didukung."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Gagal mengimpor vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Tidak ada berkas vCard yang ditemukan pada penyimpanan USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Tidak ditemukan berkas vCard dalam penyimpanan"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Tidak ada berkas vCard yang ditemukan pada kartu SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Gagal mengumpulkan informasi meta dari berkas vCard yang diberikan."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Satu berkas atau lebih gagal diimpor (%s)"</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Gagal mengekspor data kenalan"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Gagal mengekspor data kenalan."\n"Alasan kegagalan: \"<xliff:g id="FAIL_REASON">%s</xliff:g>:"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Tidak ada kenalan yang dapat diekspor"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Terlalu banyak berkas vCard dalam penyimpanan USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Terlalu banyak berkas vCard dalam penyimpanan"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Terlalu banyak berkas vCard pada kartu SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Nama berkas yang diperlukan terlalu panjang (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Selesai mengekspor <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Nama depan fonetik"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Nama tengah fonetik"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Nama keluarga fonetik"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nama fonetik"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kenalan"</string>
     <string name="from_account_format" msgid="687567483928582084">"dari <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Gunakan foto ini"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index a9009ee..8568daf 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto contatto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"meno"</string>
     <string name="description_plus_button" msgid="515164827856229880">"più"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Archivio USB non disponibile"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Archivio non disponibile"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Nessuna scheda SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Nessun archivio USB rilevato"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Nessun archivio rilevato"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Nessuna scheda SD rilevata"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Ricerca vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importa da scheda SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importa da archivio USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importa da archivio"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importa da scheda SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Esporta in archivio USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Esporta in archivio"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Esporta su scheda SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Condividi contatti visibili"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importa un file vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importa più file vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importa tutti i file vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Ricerca di dati vCard nell\'archivio USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Ricerca di dati vCard nell\'archivio"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Ricerca dati vCard su scheda SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Scansione dell\'archivio USB non riuscita"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Scansione dell\'archivio non riuscita"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Analisi scheda SD non riuscita"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Scansione dell\'archivio USB non riuscita (motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Scansione dell\'archivio non riuscita (motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Analisi scheda SD non riuscita (motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Errore I/O"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Memoria insufficiente (il file potrebbe essere di dimensioni eccessive)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Impossibile analizzare la vCard per motivi imprevisti"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Il formato non è supportato."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Importazione vCard non riuscita"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Nessun file vCard trovato nell\'archivio USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Nessun file vCard trovato nell\'archivio"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Nessun file vCard trovato sulla scheda SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Raccolta dei metadati dei file vCard forniti non riuscita."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Impossibile importare uno o più file (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Esportazione dati contatti non riuscita"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Esportazione dati contatti non riuscita."\n"Motivo dell\'errore: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Nessun contatto esportabile"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Troppi file vCard nell\'archivio USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Troppi file vCard nell\'archivio"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Troppi dati vCard sulla scheda SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Il nome file richiesto è troppo lungo (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Esportazione di <xliff:g id="FILENAME">%s</xliff:g> terminata"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Nome fonetico fornito"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Secondo nome fonetico"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Cognome fonetico"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nome fonetico"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contatto da <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"da <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilizza questa foto"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index a642c67..a8fc33e 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"תמונה של איש קשר"</string>
     <string name="description_minus_button" msgid="387136707700230172">"חיסור"</string>
     <string name="description_plus_button" msgid="515164827856229880">"ועוד"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"אמצעי אחסון מסוג USB אינו זמין"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"אמצעי אחסון אינו זמין"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"אין כרטיס SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"לא זוהה אמצעי אחסון מסוג USB"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"לא זוהה אמצעי אחסון"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"לא אותר כרטיס SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"מחפש vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"ייבא מכרטיס SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"ייבא מאמצעי אחסון מסוג USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"ייבא מאמצעי אחסון"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"ייבא מכרטיס SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"ייצא לאמצעי אחסון מסוג USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"ייצא לאמצעי אחסון"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"ייצא לכרטיס SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"שתף אנשי קשר גלויים"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"ייבא קובץ אחד של vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"ייבא קובצי vCard מרובים"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"ייבא את כל קובצי vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"מחפש נתוני vCard באמצעי אחסון מסוג USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"מחפש נתוני vCard באמצעי אחסון"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"מחפש נתוני vCard בכרטיס SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"סריקת אמצעי אחסון מסוג USB נכשלה"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"סריקת אמצעי אחסון נכשלה"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"נכשלה סריקת כרטיס SD"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"סריקת אמצעי אחסון מסוג USB נכשלה (סיבה: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"סריקת אמצעי אחסון נכשלה (סיבה: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"נכשלה סריקת כרטיס SD (סיבה: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"שגיאת קלט/פלט"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"אין מספיק זיכרון (ייתכן שהקובץ גדול מדי)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"נכשל ניתוח vCard עקב סיבה לא צפויה"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"הפורמט אינו נתמך."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"נכשל ייבוא vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"לא נמצא קובץ vCard באמצעי אחסון מסוג USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"לא נמצא קובץ vCard באמצעי האחסון"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"לא נמצא קובץ vCard בכרטיס ה-SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"נכשל איסוף מידע-על מקובצי vCard נתונים."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"נכשל הייבוא של קובץ אחד או יותר (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"נכשל ייצוא הנתונים של איש הקשר"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"נכשל ייצוא הנתונים של איש קשר."\n"הסיבה לכשל: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"אין איש קשר שניתן לייצא"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"קובצי vCard רבים מדי באמצעי אחסון מסוג USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"קובצי vCard רבים מדי באמצעי האחסון"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"קובצי vCard רבים מדי בכרטיס ה-SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"שם הקובץ הדרוש ארוך מדי (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"הייצוא של <xliff:g id="FILENAME">%s</xliff:g> הסתיים"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"שם פרטי פונטי"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"שם אמצעי פונטי"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"שם משפחה פונטי"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"שם פונטי"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>איש קשר"</string>
     <string name="from_account_format" msgid="687567483928582084">"מ-<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"השתמש בתמונה זו"</string>
diff --git a/res/values-ja/donottranslate_config.xml b/res/values-ja/donottranslate_config.xml
index c5d3aea..7f53722 100644
--- a/res/values-ja/donottranslate_config.xml
+++ b/res/values-ja/donottranslate_config.xml
@@ -32,4 +32,7 @@
     
     <!-- If true, the order of name fields in the editor is primary (i.e. given name first) -->
     <bool name="config_editor_field_order_primary">false</bool>
+
+    <!-- If true, phonetic name is included in the contact editor by default -->
+    <bool name="config_editor_include_phonetic_name">true</bool>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 946b813..4f2354a 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"連絡先の写真"</string>
     <string name="description_minus_button" msgid="387136707700230172">"マイナス"</string>
     <string name="description_plus_button" msgid="515164827856229880">"プラス"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USBストレージ使用不可"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"ストレージ使用不可"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"SDカードがありません"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"USBストレージがありません"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"ストレージがありません"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"SDカードを検出できませんでした"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"vCardを検索中"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"SIMカードからインポート"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"USBストレージからインポート"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"ストレージからインポート"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"SDカードからインポート"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"USBストレージにエクスポート"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"ストレージにエクスポート"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"SDカードにエクスポート"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"表示可能な連絡先を共有"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"vCardファイルを1つインポート"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"複数のvCardファイルをインポート"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"すべてのvCardファイルをインポート"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"USBストレージ内でvCardデータを検索中"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"ストレージ内でvCardデータを検索中"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"SDカードのvCardデータを検索しています"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"USBストレージのスキャンエラー"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"ストレージのスキャンエラー"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"SDカードのスキャンに失敗しました"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"USBストレージをスキャンできませんでした（理由: 「<xliff:g id="FAIL_REASON">%s</xliff:g>」）"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"ストレージをスキャンできませんでした（理由: 「<xliff:g id="FAIL_REASON">%s</xliff:g>」）"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"SDカードのスキャンに失敗しました（理由: <xliff:g id="FAIL_REASON">%s</xliff:g>）"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"送受信エラー"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"メモリが不足しています（ファイルが大きすぎる可能性があります）"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"予期しない理由によりvCardの解析に失敗しました"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"このフォーマットはサポートされません。"</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"vCardをインポートできませんでした。"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"USBストレージ内にvCardファイルが見つかりません"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"ストレージ内にvCardファイルが見つかりません"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"SDカード内にvCardファイルが見つかりません"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"指定されたvCardファイルのメタ情報を取得できませんでした。"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"1つ以上のファイルをインポートできませんでした（%s）。"</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"連絡先データのエクスポートに失敗しました"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"連絡先データのエクスポートに失敗しました。"\n"理由: 「<xliff:g id="FAIL_REASON">%s</xliff:g>」"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"エクスポートできる連絡先がありません"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USBストレージ内のvCardファイルが多すぎます"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"ストレージ内のvCardファイルが多すぎます"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SDカードのvCardファイルが多すぎます"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"指定したファイル名が長すぎます（「<xliff:g id="FILENAME">%s</xliff:g>」）"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"<xliff:g id="FILENAME">%s</xliff:g>のエクスポートが終了しました"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"名のよみがな"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"ミドルネームのよみがな"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"姓のよみがな"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"よみがな"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>からの連絡先"</string>
     <string name="from_account_format" msgid="687567483928582084">"<xliff:g id="SOURCE">%1$s</xliff:g>からの連絡先"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"この写真を使用"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 75ec439..ee93888 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"주소록 사진"</string>
     <string name="description_minus_button" msgid="387136707700230172">"빼기"</string>
     <string name="description_plus_button" msgid="515164827856229880">"더하기"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB 저장소 사용 불가능"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"저장장치 없음"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"SD 카드 없음"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"USB 저장소가 없습니다."</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"저장장치가 없습니다."</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"SD 카드가 발견되지 않았습니다."</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"vCard 검색"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"SIM 카드에서 가져오기"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"USB 저장소에서 가져오기"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"저장장치에서 가져오기"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"SD 카드에서 가져오기"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"USB 저장소로 내보내기"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"저장공간으로 내보내기"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"SD 카드로 내보내기"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"표시되는 연락처 모두 공유"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"vCard 파일 한 개 가져오기"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"vCard 파일 여러 개 가져오기"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"모든 vCard 파일 가져오기"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"USB 저장소에서 vCard 데이터 검색 중"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"저장장치에서 vCard 데이터 검색"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"SD 카드의 vCard 데이터 검색"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"USB 저장소 스캔 실패"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"저장장치 스캔 실패"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"SD 카드 스캔 실패"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"USB 저장소 스캔 실패(이유: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"저장장치 스캔 실패(이유: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"SD 카드 스캔 실패(이유: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O 오류"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"메모리가 부족합니다. 파일이 너무 크기 때문일 수 있습니다."</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"예기치 못한 이유로 인해 vCard를 구문분석하지 못했습니다."</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"지원되지 않는 형식입니다."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"vCard를 가져오지 못했습니다."</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"vCard 파일이 USB 저장소에 없습니다."</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"저장공간에 vCard 파일이 없습니다."</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"SD 카드에 VCard 파일이 없습니다."</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"지정한 vCard 파일에 대한 메타 정보를 수집하지 못했습니다."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"하나 이상의 파일을 가져오지 못했습니다(%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"연락처 데이터를 내보내지 못했습니다."</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"연락처 데이터를 내보내지 못했습니다."\n"실패 이유: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\'"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"내보낼 수 있는 연락처가 없습니다."</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USB 저장소에 vCard 파일이 너무 많습니다."</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"저장공간에 vCard 파일이 너무 많습니다."</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD 카드에 vCard 파일이 너무 많습니다."</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"필수 파일 이름이 너무 깁니다(\'<xliff:g id="FILENAME">%s</xliff:g>\')."</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"<xliff:g id="FILENAME">%s</xliff:g> 내보내기 완료됨"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"이름(소리나는 대로)"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"중간 이름(소리나는 대로)"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"성(소리나는 대로)"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"이름(소리나는 대로)"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> 연락처"</string>
     <string name="from_account_format" msgid="687567483928582084">"출처: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"사진 사용"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index c9a115a..7eb3506 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"adresato nuotrauka"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plius"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB atmintinė nepasiekiama"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Saugykla neprieinama"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Nėra SD kortelės"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Neaptikta jokia USB atmintinė"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Neaptikta jokių saugyklų"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"SD kortelė neaptikta"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Ieškoma „vCard“ kortelės"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importuoti iš SIM kortelės"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Import. iš USB atmintinės"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importuoti iš saugyklos"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importuoti iš SD kortelės"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Eksport. į USB atmintinę"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Eksportuoti į saugyklą"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Eksportuoti į SD kortelę"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Bendrinti matomus adresatus"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importuoti vieną „vCard“ failą"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importuoti kelis „vCard“ failus"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importuoti visus „VCard“ kortelės failus"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Ieškoma el. vizitinės kortelės duomenų USB atmintinėje"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Ieškoma el. vizitinės kortelės duomenų USB atmintinėje"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"SD kortelėje ieškoma „vCard“ duomenų"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Nepavyko nuskaityti USB atmintinės"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Nepavyko nuskaityti saugyklos"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"SD kortelės nuskaitymas nepavyko"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Nepavyko nuskaityti USB atmintinės (Priežastis: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Nepavyko nuskaityti saugyklos (priežastis: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"SD kortelės nuskaitymas nepavyko (priežastis: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Įvesties / išvesties klaida"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Nepakanka atminties (failas gali būti per didelis)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Dėl netikėtos priežasties nepavyko išanalizuoti „vCard“"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Formatas nepalaikomas."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Nepavyko import. el. vizitinės kortelės"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"USB atmintinėje nerasta jokių el. vizitinių kortelių failų"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Saugykloje nerasta el. vizitinės kortelės failų"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"SD kortelėje nerasta jokių el. vizitinių kortelių failų"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Nepavyko surinkti nurodyto (-ų) el. vizitinės kortelės failo (-ų) metainformacijos."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Nepavyko importuoti vieno ar daugiau failų (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Nepavyko eksportuoti adresatų duomenų"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Nepavyko eksportuoti adresato duomenų."\n"Trikties priežastis: „<xliff:g id="FAIL_REASON">%s</xliff:g>“"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Nėra eksportuojamo adresato"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Per daug el. vizitinės kortelės failų USB atmintinėje"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Per daug el. vizitinės kortelės failų saugykloje"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Per daug „vCard“ failų SD kortelėje"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Reikalingo failo pavadinimas per ilgas („<xliff:g id="FILENAME">%s</xliff:g>“)"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Baigta eksportuoti <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Suteiktas fonetinis vardas"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetinis antrasis vardas"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Fonetinė pavardė"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetinis vardas"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> adresatas"</string>
     <string name="from_account_format" msgid="687567483928582084">"nuo <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Naudoti šią nuotrauką"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index fe2c3b5..31f4cee 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"kontaktpersonas fotoattēls"</string>
     <string name="description_minus_button" msgid="387136707700230172">"mīnuss"</string>
     <string name="description_plus_button" msgid="515164827856229880">"pluss"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB atmiņa nav pieejama"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"USB atmiņa nav pieejama"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Nav SD kartes"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Nav noteikta USB atmiņa"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Nav atrasta neviena USB. atm."</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"SD karte nav noteikta."</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"vCard faila meklēšana"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importēt no SIM kartes"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Import. no USB atmiņas"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importēt no USB atmiņas"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importēt no SD kartes"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Eksport. uz USB atmiņu"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Eksportēt uz USB atmiņu"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Eksportēt uz SD karti"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Kopīgot redzamās kontaktpersonas"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importēt vienu vCard failu"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importēt vairākus vCard failus"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importēt visus vCard failus"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Notiek vCard datu meklēšana USB atmiņā"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Notiek vCard datu meklēšana USB atmiņā."</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Notiek vCard datu meklēšana SD kartē"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"USB atmiņas skenēšana neizdevās"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Neizdevās skenēt USB atmiņu"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Neizdevās skenēt SD karti."</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"USB atmiņas skenēšana neizdevās (iemesls: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"USB atmiņas skenēšana neizdevās (iemesls: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"SD kartes skenēšana neizdevās (cēlonis: “<xliff:g id="FAIL_REASON">%s</xliff:g>”)."</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Ievades/izvades kļūda"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Atmiņā nepietiek vietas (iespējams, fails ir pārāk liels)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Neparedzēta iemesla dēļ neizdevās parsēt vCard failu."</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Šis formāts nav atbalstīts."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"vCard importēšana neizdevās."</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"USB atmiņā nav atrasts neviens vCard fails."</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"USB atmiņā nav atrasts neviens vCard fails."</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"SD kartē nav atrasts neviens vCard fails."</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Neizdevās iegūt meta informāciju par konkrēto(-ajiem) vCard failu(-iem)."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Neizdevās importēt vienu vai vairākus failus (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Neizdevās eksportēt kontaktpersonas datus."</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Neizdevās eksportēt kontaktpersonu datus."\n"Kļūmes cēlonis: “<xliff:g id="FAIL_REASON">%s</xliff:g>”"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Nav eksportējamu kontaktpersonas datu."</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USB atmiņā ir pārāk daudz vCard failu."</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"USB atmiņā ir pārāk daudz vCard failu."</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD kartē ir pārāk daudz vCard failu."</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Faila nosaukums ir pārāk garš (“<xliff:g id="FILENAME">%s</xliff:g>”)."</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Faila <xliff:g id="FILENAME">%s</xliff:g> eksportēšana ir pabeigta"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Vārda izruna"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Otrā vārda izruna"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Uzvārda izruna"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Vārda izruna"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontaktpersona"</string>
     <string name="from_account_format" msgid="687567483928582084">"no <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Izmantot šo fotoattēlu"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 0401786..dcf8a0a 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -161,12 +161,12 @@
     <string name="simContacts_title" msgid="27341688347689769">"Kontakter på SIM-kort"</string>
     <string name="noContactsHelpTextWithSyncForCreateShortcut" msgid="801504710275614594">"Du har ingen kontakter å vise. (Hvis du nettopp har lagt til en konto, kan det ta noen minutter å synkronisere kontaktene.)"</string>
     <string name="noContactsHelpTextForCreateShortcut" msgid="3081286388667108335">"Du har ingen kontakter å vise."</string>
-    <!-- syntax error in translation for noContactsHelpText (6450346791169710787) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:292 in java.io.StringReader@6c6e70c7)  -->
-    <!-- syntax error in translation for noContactsHelpText (7633826236417884130) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:293 in java.io.StringReader@46ae506e)  -->
+    <!-- syntax error in translation for noContactsHelpText (6450346791169710787) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:292 in java.io.StringReader@1aa8c488)  -->
+    <!-- syntax error in translation for noContactsHelpText (7633826236417884130) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:293 in java.io.StringReader@3dfeca64)  -->
     <string name="noContactsHelpTextWithSync" product="tablet" msgid="2364665535969139880">"Du har ingen kontakter å vise. (Hvis du nylig la til en konto, kan det ta noen minutter å synkronisere kontaktene.)"\n\n"Slik legger du til kontakter: Trykk på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>", og trykk deretter på:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Kontoer"</b></font>" for å legge til eller konfigurere en konto med kontakter som kan synkroniseres til nettbrettet"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativer"</b></font>" for å endre hvilke kontakter som vises"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for å opprette en ny kontakt fra grunnen av"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/Eksporter"</b></font>" for å importere kontakter fra SIM- eller SD-kort"\n</li></string>
     <string name="noContactsHelpTextWithSync" product="default" msgid="3017521127042216243">"Du har ingen kontakter å vise. (Hvis du nylig la til en konto, kan det ta noen minutter å synkronisere kontaktene.)"\n\n"Slik legger du til kontakter: Trykk på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>" og trykk deretter på: "\n" "\n<li><font fgcolor="#ffffffff"><b>"Kontoer "</b></font>" for å legge til eller konfigurere en konto med kontakter som kan synkroniseres til telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativer"</b></font>" for å endre hvilke kontakter som vises"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for å opprette en ny kontakt"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importér/Eksportér"</b></font>" for å importere kontakter fra SIM- eller SD-kort"\n</li></string>
-    <!-- syntax error in translation for noContactsNoSimHelpText (6031363021287849874) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:297 in java.io.StringReader@5e228a02)  -->
-    <!-- syntax error in translation for noContactsNoSimHelpText (467658807711582876) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:297 in java.io.StringReader@22ba6c83)  -->
+    <!-- syntax error in translation for noContactsNoSimHelpText (6031363021287849874) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:297 in java.io.StringReader@22998b08)  -->
+    <!-- syntax error in translation for noContactsNoSimHelpText (467658807711582876) org.xmlpull.v1.XmlPullParserException: expected: /li read: font (position:END_TAG </font>@1:297 in java.io.StringReader@e76cbf7)  -->
     <string name="noContactsNoSimHelpTextWithSync" product="tablet" msgid="6222739731808897565">"Du har ingen kontakter å vise. (Hvis du nylig la til en konto, kan det ta noen minutter å synkronisere kontaktene.)"\n\n"Slik legger du til kontakter: Trykk på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>", og trykk deretter på: "\n" "\n<li><font fgcolor="#ffffffff"><b>"Kontoer"</b></font>" for å legge til eller konfigurere en konto med kontakter som kan synkroniseres til nettbrettet"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativer"</b></font>" for å endre hvilke kontakter som vises"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for å opprette en ny kontakt fra grunnen av"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/eksporter"</b></font>" for å importere kontakter fra SD-kortet"\n</li></string>
     <string name="noContactsNoSimHelpTextWithSync" product="default" msgid="9040060730467973050">"Du har ingen kontakter å vise. (Hvis du nylig la til en konto, kan det ta noen minutter å synkronisere kontaktene.)"\n\n"Slik legger du til kontakter: Trykk på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>" og trykk deretter på: "\n" "\n<li><font fgcolor="#ffffffff"><b>"Kontoer "</b></font>" for å legge til eller konfigurere en konto med kontakter som kan synkroniseres til telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativer"</b></font>" for å endre hvilke kontakter som vises"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for å opprette en ny kontakt"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importér/eksportér"</b></font>" for å importere kontakter fra SD-kortet"\n</li></string>
     <string name="noFavoritesHelpText" msgid="3744655776704833277">"Du har ingen favoritter."\n\n"Slik legger du til en kontakt i favorittlisten:"\n\n" "<li>"Trykk på fanen "<b>"Kontakter"</b>" "\n</li>" "\n<li>"Trykk på kontakten du vil legge til i favoritter"\n</li>" "\n<li>"Trykk på stjernen ved siden av kontaktnavnet"\n</li></string>
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"kontaktens bilde"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minusknapp"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plussknapp"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-lagring utilgj."</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Lagring utilgjengelig"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Mangler minnekort"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Finner ikke USB-lagring"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Ingen lagring oppdaget"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Fant ikke noe minnekort"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Leter etter VCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importér fra SIM-kort"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importér fra USB-lagr."</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importér fra lagring"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importér fra minnekort"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Eksportér til USB-lagr."</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Eksportér til lagring"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Eksportér til minnekort"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Del synlige kontakter"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importer én VCard-fil"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importer flere vCard-filer"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importer alle vCard-filer"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Søker etter vCard-data i USB-lagring"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Søker etter vCard-data i lagring"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Leter etter VCard-data på minnekort"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Skanning av USB-lagring mislyktes"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Skanning av lagring mislyktes"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Kunne ikke scanne minnekort"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Skanning av USB-lagring mislyktes (årsak: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Skanning av lagring mislyktes (årsak: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Kunne ikke skanne minnekort (grunn: «<xliff:g id="FAIL_REASON">%s</xliff:g>»)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Inn/ut-feil (årsak: «FAIL_REASON»)"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Ikke tilstrekkelig minne (filen kan være for stor)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Kan ikke analysere VCard av uventet årsak"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Formatet støttes ikke."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Kunne ikke importere vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Finner ingen vCard-fil i USB-lagring"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Finner ingen vCard-fil på lagringsenheten"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Fant ingen vCard-fil på SD-kortet"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Kan ikke hente inn metainformasjon for de(n) aktuelle vCard-filen(e)."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Importeringen av én eller flere filer mislyktes (%s)"</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Kunne ikke eksportere kontaktlisten"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Eksport av kontaktdata mislyktes"\n"Årsak til feil: «<xliff:g id="FAIL_REASON">%s</xliff:g>»"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Det finnes ingen eksporterbar kontakt."</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"For mange vCard-filer på USB-lagring"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"For mange vCard-filer på lagringsenheten"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"For mange VCard-datafiler på minnekortet"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"For langt filnavn kreves («<xliff:g id="FILENAME">%s</xliff:g>»)"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Eksport av <xliff:g id="FILENAME">%s</xliff:g> er fullført"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Fonetisk fornavn"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetisk mellomnavn"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Fonetisk etternavn"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetisk navn"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-kontakt"</string>
     <string name="from_account_format" msgid="687567483928582084">"fra <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Bruk dette bildet"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index d538d34..cc70f61 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"contactfoto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"min"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-opslag niet beschikb."</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Opslag niet beschikbaar"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Geen SD-kaart"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Geen USB-opslag gevonden"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Geen opslag gedetecteerd"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Geen SD-kaart gedetecteerd"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Zoeken naar vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importeren van SIM-kaart"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Import. uit USB-opslag"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importeren uit opslag"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importeren van SD-kaart"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Export. naar USB-opslag"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exporteren naar opslag"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exporteren naar SD-kaart"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Zichtbare contacten delen"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Eén vCard-bestand importeren"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Meerdere vCard-bestanden importeren"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Alle vCard-bestanden importeren"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Zoeken naar vCard-gegevens in USB-opslag"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Zoeken naar vCard-gegevens in opslag"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Zoeken naar vCard-gegevens op SD-kaart"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Scannen van USB-opslag is mislukt"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Scannen van opslag is mislukt"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Scannen van SD-kaart is mislukt"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Scannen van USB-opslag is mislukt (reden: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Scannen van USB-opslag is mislukt (reden: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Scannen van SD-kaart is mislukt: (Reden: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O-fout"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Onvoldoende geheugen (het bestand is mogelijk te groot)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Parseren van vCard is mislukt om onbekende reden"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"De indeling wordt niet ondersteund."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Kan vCard niet importeren"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Geen vCard-bestand gevonden in USB-opslag"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Geen vCard-bestand gevonden in opslag"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Geen vCard-bestand gevonden op SD-kaart"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Verzamelen van metagegevens van betreffende vCard-bestanden is mislukt."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Een of meer bestanden kunnen niet worden geïmporteerd (%s)"</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Exporteren van contactgegevens mislukt"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Exporteren van contactgegevens mislukt."\n"Reden voor de fout: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\'"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Er is geen contact dat geëxporteerd kan worden"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Te veel vCard-bestanden in de USB-opslag"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Te veel vCard-bestanden in opslag"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Te veel vCard-gegevens op de SD-kaart"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Vereiste bestandsnaam is te lang (\'<xliff:g id="FILENAME">%s</xliff:g>\')"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Exporteren van <xliff:g id="FILENAME">%s</xliff:g> voltooid"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Fonetische roepnaam"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetische tweede voornaam"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Fonetische achternaam"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetisch gespelde naam"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> contact"</string>
     <string name="from_account_format" msgid="687567483928582084">"van <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Deze foto gebruiken"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 40aa3b2..98cc2e8 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"zdjęcie kontaktu"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Nośnik USB niedostępny"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Nośnik nie jest dostępny"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Brak karty SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Nie wykryto nośnika USB"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Nie wykryto nośnika"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Nie wykryto karty SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Wyszukiwanie danych vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importuj z karty SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importuj z nośnika USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importuj z nośnika"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importuj z karty SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Eksportuj na nośnik USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Eksportuj na nośnik"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Eksportuj na kartę SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Udostępnij widoczne kontakty"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importuj jeden plik vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importuj wiele plików vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importuj wszystkie pliki vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Wyszukiwanie danych vCard na nośniku USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Wyszukiwanie danych vCard na nośniku"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Wyszukiwanie danych vCard na karcie SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Skanowanie nośnika USB nie powiodło się"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Skanowanie nośnika nie powiodło się"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Skanowanie karty SD nie powiodło się"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Skanowanie nośnika USB nie powiodło się (przyczyna: „<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Skanowanie nośnika nie powiodło się (przyczyna: „<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Skanowanie karty SD nie powiodło się (przyczyna: „<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Błąd wejścia/wyjścia"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Niewystarczająca ilość pamięci (plik może być zbyt duży)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Nie można zanalizować pliku vCard z nieoczekiwanego powodu"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Ten format nie jest obsługiwany."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Nie można zaimportować karty vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Na nośniku USB nie znaleziono żadnego pliku vCard"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Na nośniku nie znaleziono żadnego pliku vCard"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Na karcie SD nie znaleziono żadnego pliku vCard"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Nie można zebrać metainformacji z podanych plików vCard."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Nie można zaimportować co najmniej jednego pliku (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Nie można wyeksportować danych kontaktu"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Nie można wyeksportować danych kontaktu."\n"Przyczyna niepowodzenia: „<xliff:g id="FAIL_REASON">%s</xliff:g>”."</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Brak kontaktów, które można wyeksportować"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Zbyt wiele plików vCard na nośniku USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Zbyt wiele plików vCard na nośniku"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Zbyt dużo plików vCard na karcie SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Wymagana nazwa pliku jest zbyt długa („<xliff:g id="FILENAME">%s</xliff:g>”)"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Zakończono eksportowanie pliku <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Imię (fonetycznie)"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Drugie imię (fonetycznie)"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Nazwisko (fonetycznie)"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nazwisko (fonetycznie)"</string>
     <string name="account_type_format" msgid="718948015590343010">"Kontakt <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"z <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Użyj tego zdjęcia"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 4d1a10c..556e529 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"fotografia do contacto"</string>
     <string name="description_minus_button" msgid="387136707700230172">"menos"</string>
     <string name="description_plus_button" msgid="515164827856229880">"mais"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Armaz. USB não disponível"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Armazen. indisponível"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Nenhum cartão SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Armaz. USB não detectado"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Não há armazenamento detectado"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Não foi detectado nenhum cartão SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"A procurar vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importar do cartão SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importar do armaz. USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importar do armazenamento"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importar do cartão SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportar para armaz. USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exportar para o armazen."</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportar para cartão SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Partilhar contactos visíveis"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importar um ficheiro VCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importar vários ficheiros vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importar todos os ficheiros VCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"A pesquisar dados do vCard no armazenamento USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"A pesquisar dados do vCard no armazenamento"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Procurar dados do vCard no cartão SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Falha ao analisar armazenamento USB"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Falha ao digitalizar armazenamento"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Falha na análise do cartão SD"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Falha ao analisar armazenamento USB (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Falha ao analisar o armazenamento (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Falha na análise do cartão SD (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Erro de E/S"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"A memória não é suficiente (o ficheiro pode ser demasiado grande)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Falha na análise do vCard por motivo inesperado"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"O formato não é suportado."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Falha ao importar vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Não foi encontrado nenhum ficheiro vCard no armazenamento USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Não foi encontrado nenhum ficheiro vCard no armazenamento"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Não foi encontrado nenhum ficheiro vCard no cartão SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"A recolha de meta informações de ficheiro(s) vCard específicado(s) falhou."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"A importação de um ou vários ficheiros falhou (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Falha ao exportar dados de contacto"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Falha na exportação de dados de contacto."\n"Motivo da falha: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Não existe um contacto exportável"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Existem demasiados ficheiros vCard no armazenamento USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Existem demasiados ficheiros vCard no armazenamento"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Demasiados ficheiros vCard no cartão SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Nome de ficheiro demasiado longo (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"A exportação do <xliff:g id="FILENAME">%s</xliff:g> terminou"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Fonética do segundo nome"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonética do primeiro apelido"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Fonética do segundo apelido"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nome fonético"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contacto de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilizar esta fotografia"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 809adb6..6a573f7 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto do contato"</string>
     <string name="description_minus_button" msgid="387136707700230172">"menos"</string>
     <string name="description_plus_button" msgid="515164827856229880">"mais"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Armaz. USB não disponível"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Armazenamento não disponível"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Nenhum cartão SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Nenhum armaz. USB detectado"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Nenhum armazenamento detectado"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Nenhum cartão SD detectado"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Pesquisando vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importar do cartão SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importar do armaz. USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importar do armazenamento"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importar do cartão SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportar para armaz. USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exportar para o armazenamento"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportar para cartão SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Compartilhar contatos visíveis"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importar um arquivo do vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importar vários arquivos do vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importar todos os arquivos do vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Procurando dados do vCard no armazenamento USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Procurando dados do vCard no armazenamento"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Procurando dados do vCard no cartão SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Falha na verificação do armazenamento USB"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Falha na verificação do armazenamento"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Falha na verificação do cartão SD"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Falha na verificação do armazenamento USB (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Falha na verificação do armazenamento (Motivo: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Falha na verificação do cartão SD (Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Erro E/S"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Memória insuficiente (o arquivo talvez seja muito grande)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Falha ao analisar o vCard por razão inesperada"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"O formato não é suportado."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Falha ao importar vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Nenhum arquivo de vCard encontrado no armazenamento USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Nenhum arquivo de vCard encontrado no armazenamento"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Nenhum arquivo de vCard encontrado no cartão SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Falha ao coletar metainformações dos arquivos de vCard fornecidos."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Falha na importação de um ou mais arquivos (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Falha ao exportar dados do contato"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Falha ao exportar dados dos contatos."\n"Motivo da falha: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Não há contatos exportáveis"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Muitos arquivos do vCard no armazenamento USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Muitos arquivos de vCard no armazenamento"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Muitos arquivos do vCard no cartão SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"O nome de arquivo exigido é muito longo (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Exportação concluída <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Nome fonético"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Nome do meio fonético"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Sobrenome fonético"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nome fonético"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contato de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Usar esta foto"</string>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index c2ea934..7892abb 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -212,25 +212,25 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"foto dal contact"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <!-- outdated translation 5911758680339949273 -->     <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Nagina carta SD"</string>
+    <!-- outdated translation 5911758680339949273 -->     <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Nagina carta SD"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Nagina carta SD"</string>
-    <!-- outdated translation 6019391476490445358 -->     <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Betg chattà ina carta SD."</string>
+    <!-- outdated translation 6019391476490445358 -->     <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Betg chattà ina carta SD."</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Betg chattà ina carta SD."</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Tschertgar datas vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importar da la carta SIM"</string>
-    <!-- outdated translation 8550360976693202816 -->     <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importar da la carta SD"</string>
+    <!-- outdated translation 8550360976693202816 -->     <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importar da la carta SD"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importar da la carta SD"</string>
-    <!-- outdated translation 2597105442616166277 -->     <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportar sin la carta SD"</string>
+    <!-- outdated translation 2597105442616166277 -->     <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exportar sin la carta SD"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportar sin la carta SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Cundivider ils contacts visibels"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importar ina datoteca vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importar pliras datotecas vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importar tut las datotecas vCard"</string>
-    <!-- outdated translation 6917522333561434546 -->     <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Tschertgar datas vCard sin la carta SD"</string>
+    <!-- outdated translation 6917522333561434546 -->     <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Tschertgar datas vCard sin la carta SD"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Tschertgar datas vCard sin la carta SD"</string>
-    <!-- outdated translation 3506782007953167180 -->     <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Errur cun leger la carta SD"</string>
+    <!-- outdated translation 3506782007953167180 -->     <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Errur cun leger la carta SD"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Errur cun leger la carta SD"</string>
-    <!-- no translation found for scanning_sdcard_failed_message (5645544323676912703) -->
+    <!-- no translation found for scanning_sdcard_failed_message (4106156155205860626) -->
     <skip />
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Errur cun leger la carta SD. Il motiv: «<xliff:g id="FAIL_REASON">%s</xliff:g>»"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Errur I/O"</string>
@@ -240,7 +240,7 @@
     <skip />
     <!-- no translation found for vcard_import_failed (7718330063493653085) -->
     <skip />
-    <!-- no translation found for import_failure_no_vcard_file (8809370398968655782) -->
+    <!-- no translation found for import_failure_no_vcard_file (6339234836196984924) -->
     <skip />
     <!-- no translation found for import_failure_no_vcard_file (1730986357514922756) -->
     <skip />
@@ -276,7 +276,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Errur cun exportar las datas da contact"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Errur cun exportar las datas da contact. "\n"Il motiv: «<xliff:g id="FAIL_REASON">%s</xliff:g>»"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Nagin contact exportabel"</string>
-    <!-- outdated translation 7084146295639672658 -->     <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"La carta SD cuntegna memia bleras datotecas vCard"</string>
+    <!-- outdated translation 7084146295639672658 -->     <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"La carta SD cuntegna memia bleras datotecas vCard"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"La carta SD cuntegna memia bleras datotecas vCard"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Il num da datoteca necessari è memia lung («<xliff:g id="FILENAME">%s</xliff:g>»)"</string>
     <!-- no translation found for exporting_vcard_finished_title (4259736138838583213) -->
@@ -425,6 +425,8 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Prenum fonetic"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Segund prenum fonetic"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Num da famiglia fonetic"</string>
+    <!-- no translation found for name_phonetic (4259595234312430484) -->
+    <skip />
     <string name="account_type_format" msgid="718948015590343010">"Contact <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"da <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilisar quest foto"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 6cf3923..b52a70c 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"fotografia persoanei din agendă"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Stoc. USB nu este disp."</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Stocare indisponibilă"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Niciun card SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Stocare USB nedetectată"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Nicio stocare detectată"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Niciun card SD detectat"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Se caută date în format vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importaţi de pe cardul SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Import. din stocarea USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importaţi din stocare"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importaţi de pe cardul SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportaţi în stocarea USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exportaţi în stocare"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportaţi pe cardul SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Distribuiţi persoanele vizibile din agendă"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importaţi un fişier vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importaţi fişiere multiple vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importaţi toate fişierele vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Se caută date vCard în spaţiul de stocare USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Se caută date vCard în spaţiul de stocare"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Se caută date vCard pe cardul SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Scanarea stocării USB a eşuat"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Scanarea stocării nu a reuşit"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Scanarea cardului SD a eşuat"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Scanarea stocării USB a eşuat (Motiv: „<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Scanarea stocării nu a reuşit (Motiv: „<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Scanarea cardului SD eşuată (Motiv: „<xliff:g id="FAIL_REASON">%s</xliff:g>”)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Eroare I/E"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Memoria este insuficientă (probabil fişierul este prea mare)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Analiza vCard a eşuat dintr-un motiv necunoscut"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Formatul nu este acceptat."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Nu a reuşit să importe vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Niciun fişier vCard găsit în stocarea USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Nu a fost găsit niciun fişier vCard în spaţiul de stocare"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Niciun fişier vCard găsit pe cardul SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Colectarea metainformaţiilor pentru fişierele vCard indicate a eşuat."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Unul sau mai multe fişiere nu s-au putut importa (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Exportul datelor persoanei din agendă a eşuat"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Exportul datelor din agendă a eşuat."\n" Motivul erorii: „<xliff:g id="FAIL_REASON">%s</xliff:g>”"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Nicio persoană în agendă exportabilă"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Prea multe fişiere vCard pe spaţiul de stocare USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Prea multe fişiere vCard în spaţiul de stocare"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Prea multe fişiere de tip vCard pe cardul SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Numele de fişier este prea lung („<xliff:g id="FILENAME">%s</xliff:g>”)"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"S-a finalizat exportul <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Prenume fonetic"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Numele mijlociu fonetic"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Numele de familie fonetic"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nume fonetic"</string>
     <string name="account_type_format" msgid="718948015590343010">"Persoana din agendă din <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"din <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Utilizaţi această fotografie"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index be33afd..4dade70 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"фотография контакта"</string>
     <string name="description_minus_button" msgid="387136707700230172">"минус"</string>
     <string name="description_plus_button" msgid="515164827856229880">"плюс"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-накопитель недоступен"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Накопитель недоступен"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Нет SD-карты"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"USB-накопитель не найден"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Накопитель не найден"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"SD-карта не обнаружена"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Поиск vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Импортировать с SIM-карты"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Импорт с USB-накопителя"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Импорт из накопителя"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Импортировать с SD-карты"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Экспорт на USB-накопитель"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Экспорт на накопитель"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Экспортировать на SD-карту"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Передать видимые контакты"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Импорт одного файла VCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Импорт нескольких файлов vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Импорт всех файлов VCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Поиск данных vCard на USB-накопителе"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Поиск данных vCard на накопителе..."</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Поиск данных vCard на SD-карте"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Не удалось просканировать USB-накопитель"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Не удалось просканировать накопитель"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Не удалось сканировать SD-карту."</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Не удалось просканировать USB-накопитель (<xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Не удалось просканировать накопитель (<xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Не удалось просканировать SD-карту (причина: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Ошибка ввода-вывода"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Недостаточно памяти (возможно, файл слишком велик)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Не удалось обработать vCard по неизвестной причине."</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Формат не поддерживается."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Не удалось импортировать vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"На USB-накопителе отсутствуют файлы vCard"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"На накопителе отсутствуют файлы vCard"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"На SD-карте не найдены файлы VCard"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Не удалось собрать метаинформацию файлов VCard."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Не удалось импортировать один или несколько файлов (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Не удалось экспортировать данные контакта."</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Не удалось экспортировать данные контакта."\n"Причина: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Нет контактов, которые можно экспортировать."</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Слишком много файлов vCard на USB-накопителе"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Слишком много файлов vCard на накопителе"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Слишком много файлов VCard на SD-карте."</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Название файла слишком длинное (<xliff:g id="FILENAME">%s</xliff:g>)."</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Экспорт <xliff:g id="FILENAME">%s</xliff:g> завершен"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Имя (транскрипция)"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Отчество (транскрипция)"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Фамилия (транскрипция)"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Транскрипция имени"</string>
     <string name="account_type_format" msgid="718948015590343010">"Контакт <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"из <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Использовать эту фотографию"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index e6b448b..6a78891 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"fotografia kontaktu"</string>
     <string name="description_minus_button" msgid="387136707700230172">"mínus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Ukl. priestor USB nedostup."</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Uklad. pr. je nedostupný"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Žiadna karta SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Nebol rozpoznaný ukl. priestor USB"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Ukladací priestor sa nenašiel"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Nebola zistená žiadna karta SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Vyhľadávanie karty vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importovať z karty SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Import z ukl. priestoru USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Import z ukl. priestoru"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importovať z karty SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Export do ukl. priestoru USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Export do uklad. priest."</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportovať na kartu SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Zdieľať viditeľné kontakty"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importovať jeden súbor vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importovať niekoľko súborov vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importovať všetky súbory vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Vyhľadávanie údajov karty vCard v ukladacom priestore USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Vyhľadávanie údajov karty vCard v ukladacom priestore"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Prebieha hľadanie údajov karty vCard na karte SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Vyhľadávanie v ukladacom priestore USB zlyhalo"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Skenovanie ukladacieho priestoru zlyhalo"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Vyhľadávanie na karte SD zlyhalo"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Vyhľadávanie v ukladacom priestore USB zlyhalo (Dôvod: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Vyhľadávanie v ukladacom priestore zlyhalo (Dôvod: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Vyhľadávanie na karte SD zlyhalo. (Dôvod: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Chyba I/O"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Nie je k dispozícii dostatok pamäte (súbor môže byť príliš veľký)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Analýza karty vCard z neznámeho dôvodu zlyhala."</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Formát nie je podporovaný."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Importovanie vizitky vCard zlyhalo"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"V ukladacom priestore USB nebola nájdená žiadna karta vCard"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"V ukladacom priestore sa nenašiel žiadny súbor vCard"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Na karte SD nebol nájdený žiadny súbor vCard"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Zhromaždenie metainformácií zadaných súborov vCard zlyhalo."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Import jedného alebo viacerých súborov zlyhal (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Export údajov kontaktov zlyhal"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Export údajov kontaktov zlyhal."\n"Príčina chyby: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Nedá sa exportovať nijaký kontakt"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"V ukladacom priestore USB je príliš veľa súborov vCard"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"V ukladacom priestore je príliš veľa súborov vCard"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Na karte SD sa nachádza príliš veľa súborov vCard"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Požadovaný názov súboru (<xliff:g id="FILENAME">%s</xliff:g>) je príliš dlhý"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Export vizitky <xliff:g id="FILENAME">%s</xliff:g> bol dokončený"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Krstné meno (foneticky)"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Druhé meno (foneticky)"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Priezvisko (foneticky)"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Meno (foneticky)"</string>
     <string name="account_type_format" msgid="718948015590343010">"Kontakt <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"z miesta: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Použiť túto fotografiu"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index d9c429c..0bb51c4 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"fotografija stika"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Pomnilnik USB ni na voljo"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Pomnilnik ni na voljo"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Ni kartice SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Pomnilnik USB ni zaznan"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Ni pomnilnika"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Kartica SD ni bila zaznana"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Iskanje vizitke vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Uvozi s kartice SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Uvozi iz pomnilnika USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Uvoz iz pomnilnika"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Uvozi s kartice SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Izvozi v pomnilnik USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Izvoz v pomnilnik"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Izvozi na kartico SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Vidne stike deli z drugimi"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Uvozi eno datoteko z vizitko vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Uvozi več datotek z vizitko vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Uvozi vse datoteke vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Iskanje podatkov vCard v pomnilniku USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Iskanje podatkov vCard v pomnilniku"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Iskanje podatkov vCard na kartici SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Pregledovanje pomnilnika USB ni uspelo"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Pregled pomnilnika ni uspel"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Pregledovanje kartice SD ni bilo uspešno"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Pregledovanje pomnilnika USB ni uspelo (Vzrok: »<xliff:g id="FAIL_REASON">%s</xliff:g>«)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Pregled pomnilnika ni uspel (Vzrok: »<xliff:g id="FAIL_REASON">%s</xliff:g>«)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Pregledovanje kartice SD ni bilo uspešno (Razlog: »<xliff:g id="FAIL_REASON">%s</xliff:g>«)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Vhodno/izhodna napaka"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Ni dovolj pomnilnika (morda je datoteka prevelika)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Iz neznanega razloga razčlenjevanje vizitke vCard ni bilo uspešno"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Oblika zapisa ni podprta."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Uvoz kartice vCard ni uspel"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Na disku USB ni datotek vCard"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"V pomnilniku ni datotek vCard"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Na kartici SD ni datotek vCard"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Metapodatkov datotek(e) vCard ni bilo mogoče zbrati."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Ene ali več datotek ni bilo mogoče uvoziti (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Podatkov o stiku ni bilo mogoče izvoziti"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Izvoz podatkov o stiku ni bil uspešen."\n"Razlog: »<xliff:g id="FAIL_REASON">%s</xliff:g>«"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Ni stikov za izvoz"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Preveč datotek vCard v pomnilniku USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"V pomnilniku je preveč datotek vCard"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Preveč datotek vCard na kartici SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Zahtevano ime datoteke je predolgo (<xliff:g id="FILENAME">%s</xliff:g>)"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Končan izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Ime – fonetično"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Drugo ime – fonetično"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Priimek – fonetično"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Ime – fonetično"</string>
     <string name="account_type_format" msgid="718948015590343010">"Stik <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"od <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Uporabi to fotografijo"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index d33f8f0..614548e 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"фотографија контакта"</string>
     <string name="description_minus_button" msgid="387136707700230172">"минус"</string>
     <string name="description_plus_button" msgid="515164827856229880">"плус"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB меморија је недоступна"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Меморија је недоступна"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Нема SD картице"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Није откривена USB меморија"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Није откривена меморија"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Није изабрана ниједна SD картица"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Претрага дигиталне визиткарте"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Увези са SIM картице"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Увоз из USB меморије"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Увези из меморије"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Увези са SD картице"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Извези у USB меморију"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Извези у меморију"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Извези на SD картицу"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Дели видљиве контакте"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Увези једну датотеку дигиталне визиткарте"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Увези више датотека дигиталних визиткарата"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Увези све датотеке дигиталних визиткарата"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Тражење података дигиталне визиткарте у USB меморији"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Тражење vCard података у меморији"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"У току је претрага података о дигиталним визиткартама на SD картици"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Неуспешно скенирање USB меморије"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Скенирање меморије није успело"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Скенирање SD картице није успело"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Неуспешно скенирање USB меморије (Разлог: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Скенирање меморије није успело (разлог: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Скенирање SD картице није успело (разлог: „<xliff:g id="FAIL_REASON">%s</xliff:g>“)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O грешка"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Нема довољно меморије (датотека је можда превелика)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Рашчлањивање дигиталне визиткарте није успело из неочекиваног разлога"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Формат није подржан."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Увоз vCard датотеке није успео"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"У USB меморији није пронађена ниједна vCard датотека"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"У меморији није пронађена ниједна vCard датотека"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"На SD картици није пронађена ниједна vCard датотека"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Неуспешно прикупљање мета података за дате датотеке дигиталне визиткарте."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Увоз неких датотека није успео (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Извоз података о контактима није успео"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Извоз података о контактима није успео."\n"Разлог неуспеха: „<xliff:g id="FAIL_REASON">%s</xliff:g>“"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Нема контаката за извоз"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Превише датотека дигиталне визиткарте у USB меморији"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Превише је vCard датотека у меморији"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD картица садржи превише датотека дигиталних визиткарата"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Захтевани назив датотеке је предугачак („<xliff:g id="FILENAME">%s</xliff:g>“)"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Извоз датотеке <xliff:g id="FILENAME">%s</xliff:g> је завршен"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Име – фонетски"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Средње име – фонетски"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Презиме – фонетски"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Име – фонетски"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> контакт"</string>
     <string name="from_account_format" msgid="687567483928582084">"са <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Користи ову фотографију"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index b13bd3f..dbe0f1b 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"kontaktbild"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB-enhet ej tillgänglig"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Lagring otillgänglig"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Inget SD-kort"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Ingen USB-enhet hittades"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Ingen lagringsenhet hittades"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Inget SD-kort hittades"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Söker efter vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Importera från SIM-kort"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Importera från USB-enhet"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Importera från lagring"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Importera från SD-kort"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Exportera till USB-enhet"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Exportera till lagring"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Exportera till SD-kort"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Dela synliga kontakter"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Importera en vCard-fil"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Importera flera vCard-filer"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Importera alla vCard-filer"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Söker efter vCard-data på USB-lagringsenhet"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Sökning efter vCard-data på lagringsenheten pågår"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Söker efter vCard-data på SD-kort"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Det gick inte att söka igenom USB-lagringsenheten"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Det gick inte att söka igenom lagringsenheten"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Det gick inte att läsa SD-kort"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Det gick inte att söka igenom USB-lagringsenheten (orsak: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Det gick inte att söka igenom lagringsenheten (orsak: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Det gick inte att skanna SD-kortet (orsak: <xliff:g id="FAIL_REASON">%s</xliff:g>)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O-fel"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Det finns för lite minne (filen kan vara för stor)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Det gick inte att analysera vCard av okänd anledning"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Formatet stöds inte."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Det gick inte att importera vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Det finns ingen vCard-fil på USB-lagringsenheten"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Det finns ingen vCard-fil på lagringsenheten"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Det finns ingen vCard-fil på SD-kortet"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Det går inte att samla in metainformation för den eller de givna vCard-filerna."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"En eller flera filer kunde inte importeras: (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Det gick inte att exportera kontaktdata"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Det gick inte att exportera kontaktdata."\n"Orsak: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Det finns ingen kontakt som kan exporteras"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"För många vCard-filer på USB-lagringsenheten"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"För många vCard-filer på lagringsenheten"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"För många vCard-filer på SD-kortet"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Det obligatoriska filnamnet är för långt (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"<xliff:g id="FILENAME">%s</xliff:g> har exporterats"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Fonetiskt förnamn"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetiskt mellannamn"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Fonetiskt efternamn"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetiskt namn"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-kontakt"</string>
     <string name="from_account_format" msgid="687567483928582084">"från <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Använd det här fotot"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index f2081a5..d545369 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"ภาพของรายชื่อ"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"ที่เก็บข้อมูล USB ใช้งานไม่ได้"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"ไม่มีที่เก็บข้อมูล"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"ไม่มีการ์ด SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"ไม่พบที่เก็บข้อมูล USB"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"ไม่พบที่เก็บข้อมูล"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"ไม่พบการ์ด SD"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"กำลังค้นหา vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"นำเข้าจากซิมการ์ด"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"นำเข้าจากที่เก็บข้อมูล USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"นำเข้าจากที่เก็บข้อมูล"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"นำเข้าจากการ์ด SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"ส่งออกไปยังที่เก็บข้อมูล USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"ส่งออกไปยังที่เก็บข้อมูล"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"ส่งออกไปยังการ์ด SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"แบ่งปันสมุดโทรศัพท์ที่มองเห็น"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"นำเข้าไฟล์ vCard หนึ่งไฟล์"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"นำเข้าไฟล์ vCard หลายไฟล์"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"นำเข้าไฟล์ vCard ทั้งหมด"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"กำลังค้นหาข้อมูล vCard ในที่เก็บข้อมูล USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"กำลังค้นหาข้อมูล vCard ในที่เก็บข้อมูล"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"กำลังค้นหาข้อมูล vCard บนการ์ด SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"การสแกนที่เก็บข้อมูล USB ล้มเหลว"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"การสแกนที่เก็บข้อมูลล้มเหลว"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"การสแกนการ์ด SD ล้มเหลว"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"การสแกนที่เก็บข้อมูล USB ล้มเหลว (เหตุผล: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"การสแกนที่เก็บข้อมูลล้มเหลว (เหตุผล: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"การสแกนการ์ด SD ล้มเหลว (เหตุผล: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"ข้อผิดพลาด I/O"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"หน่วยความจำไม่เพียงพอ (ไฟล์อาจใหญ่เกินไป)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"แยกวิเคราะห์ vCard ไม่สำเร็จด้วยเหตุผลที่ไม่คาดคิด"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"รูปแบบไม่ได้รับการสนับสนุน"</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"ไม่สามารถนำเข้า vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"ไม่พบไฟล์ vCard ในที่เก็บข้อมูล USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"ไม่พบไฟล์ vCard ในที่เก็บข้อมูล"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"ไม่พบไฟล์ vCard บนการ์ด SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"รวบรวมข้อมูลเมตาของไฟล์ vCard ที่ระบุไม่สำเร็จ"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"นำเข้าไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไปไม่สำเร็จ (%s)"</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"ส่งออกข้อมูลรายชื่อในสมุดโทรศัพท์ไม่สำเร็จ"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"ส่งออกข้อมูลรายชื่อไม่สำเร็จ"\n"เหตุผลที่ล้มเหลว: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"ไม่มีรายชื่อในสมุดโทรศัพท์ที่สามารถส่งออกได้"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"มีไฟล์ vCard มากเกินไปในที่เก็บข้อมูล USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"มีไฟล์ vCard มากเกินไปในที่เก็บข้อมูล"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"มีไฟล์ vCard บนการ์ด SD มากเกินไป"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"ชื่อไฟล์ที่ต้องใช้ยาวเกินไป (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"ส่งออก <xliff:g id="FILENAME">%s</xliff:g> เรียบร้อยแล้ว"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"ชื่อแบบออกเสียง"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"ชื่อกลางแบบออกเสียง"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"นามสกุลแบบออกเสียง"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"ชื่อแบบออกเสียง"</string>
     <string name="account_type_format" msgid="718948015590343010">"รายชื่อในสมุดโทรศัพท์จาก <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"จาก <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"ใช้ภาพนี้"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index bf84159..d8321ce 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"larawan ng contact"</string>
     <string name="description_minus_button" msgid="387136707700230172">"minus"</string>
     <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Di available USB storage"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Hindi available ang imbakan"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Walang SD card"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Walang nakitang imbakan na USB"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Walang natukoy na imbakan"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Walang natukoy na SD card"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Paghahanap ng vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"I-import mula sa SIM card"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Import sa imbakan na USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"I-import mula sa imbakan"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Mag-import mula sa SD card"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Export sa imbakan na USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"I-export sa imbakan"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Mag-export sa SD card"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Magbahagi ng mga nakikitang contact"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Mag-import nang isang vCard file"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Mag-import ng maramihang vCard file"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"I-import ang lahat ng mga vCard file"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Naghahanap ng vCard data sa imbakan na USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Naghahanap para sa data ng vCard sa imbakan"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Naghahanap ng data ng vCard sa SD card"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Nabigo ang pag-scan ng imbakan na USB"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Nabigo ang pag-scan ng imbakan"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Nabigo ang pag-scan sa SD card"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Nabigo ang pag-scan ng imbakan na USB (Dahilan: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Nabigo ang pag-scan ng imbakan (Dahilan: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Nabigo ang pag-scan sa SD card (Dahilan: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Error na I/O"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Hindi sapat ang memorya (maaaring masyadong malaki ang file)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Nabigong i-parse ang vCard para sa di-inaasahang dahilan"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Hindi suportado ang format."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Nabigong i-import ang vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Walang nakitang vCard file sa imabakan ng USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Walang nakitang vCard file sa imbakan"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Walang nakitang vCard file sa SD card"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Nabigong kumolekta ng impormasyon na meta ng ibinigay na (mga) vCard."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Nabigo ang isa o higit pang file upang ma-import (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Nabigong i-export ang data ng contact"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Nabigong i-export ang data ng contact."\n"Dahilan sa pagkabigo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Walang nae-export na contact"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Masyadong maraming vCard file sa imbakan na USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Masyadong maraming vCard file sa imbakan"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Masyadong maraming vCard file sa SD card"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Ang kinakailangang filename ay masyadong mahaba (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Tapos na ang pag-export ng <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Phonetic na pangalan"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Phonetic na gitnang pangalan"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Phonetic na apelyido"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Phonetic na pangalan"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> contact"</string>
     <string name="from_account_format" msgid="687567483928582084">"mula sa <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Gamitin ang larawang ito"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 4ca764b..3857046 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"kişi fotoğrafı"</string>
     <string name="description_minus_button" msgid="387136707700230172">"eksi"</string>
     <string name="description_plus_button" msgid="515164827856229880">"artı"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"USB depl birimi kullnlmyr"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Depolama birimi yok"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"SD kart yok"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"USB deplm birimi algılanmadı"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Hiçbir depl birimi algılanmadı"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Hiçbir SD kart tespit edilmedi"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"vCard aranıyor"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"SIM karttan içe aktar"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"USB depl birmndn içe aktr"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Depl biriminden içe aktar"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"SD karttan içe aktar"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"USB deplm birmn dışa aktr"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Depolama birimine aktar"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"SD karta dışa aktar"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Görülebilir kişileri paylaş"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Bir vCard dosyasını içe aktar"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Birden fazla vCard dosyasını içe aktar"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Tüm vCard dosyalarını içe aktar"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"USB depolama birimindeki vCard verileri aranıyor"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Depolama birimindeki vCard verileri aranıyor"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"SD kartta vCard verileri aranıyor"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"USB depolama birimi taraması başarısız oldu"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Depolama birimi taraması başarısız oldu"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"SD kart taranamadı"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"USB depolama birimi taraması başarısız oldu (Nedeni: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Depolama birimi taraması başarısız oldu (Nedeni: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"SD kart taraması başarısız oldu (Neden: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"G/Ç Hatası"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Bellek yetersiz (dosya çok büyük olabilir)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Beklenmedik bir nedenden dolayı vCard ayrıştırılamadı"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Biçim desteklenmiyor."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"vCard içe aktarılamadı"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"USB depolama biriminde herhangi bir vCard dosyası bulunamadı"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Depolama biriminde hiçbir vCard dosyası bulunamadı"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"SD kartta hiçbir vCard dosyası bulunamadı"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Belirtilen vCard dosyalarının meta bilgileri toplanamıyor."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"İçe aktarılamayan bir veya birden fazla dosya (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Kişi verileri dışa aktarılamadı"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Kişi verileri dışa aktarılamadı."\n"Hata nedeni: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Dışa aktarılabilen hiçbir kişi yok"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USB depolama biriminde çok fazla vCard dosyası var"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Depolama biriminde çok fazla vCard dosyası var"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD kartta çok fazla vCard dosyası var"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Gereken dosya adı çok uzun (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"<xliff:g id="FILENAME">%s</xliff:g> dosyasını dışa aktarma tamamlandı"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Fonetik adı"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetik ikinci ad"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Fonetik soyadı"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetik ad"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kişi"</string>
     <string name="from_account_format" msgid="687567483928582084">"kaynak: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Bu fotoğrafı kullan"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index a71f62a..35576b4 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"фото контакту"</string>
     <string name="description_minus_button" msgid="387136707700230172">"мінус"</string>
     <string name="description_plus_button" msgid="515164827856229880">"плюс"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Носій USB недоступний"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Пам’ять недоступна"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Нема карти SD"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Носій USB не виявлено"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Пам’яті не виявлено"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Карту SD не виявлено"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Пошук даних vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Імортув. з SIM-карти"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Імпортувати з носія USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Імпорт із пам’яті"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Імортув. з карти SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Експортувати на носій USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Експорт у пам’ять"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Експорт. на карту SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Надісл. видимі контакти"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Імпортув. 1 файл vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Імпортув. кілька файлів vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Імпортув. всі файли vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Пошук даних vCard на носії USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Пошук даних vCard у пам’яті"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Пошук даних vCard на карті SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Помилка сканування носія USB"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Помилка сканування пам’яті"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Помилка сканув-ня SD карти"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Помилка сканування носія USB (причина: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Помилка сканування пам’яті (причина: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Помилка сканув. SD карти (Причина: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Помилка I/O"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Недостатньо пам\'яті (можливо, файл завеликий)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Не вдал. проаналіз. vCard через неочік. прич."</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Формат не підтримується."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Помилка імпорту vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"На носії USB не знайдено файлів vCard"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"У пам’яті не знайдено файли vCard"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"На карті SD не знайдено файлів vCard"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Помилка отримання мета-інформації файлів даної vCard."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Не вдалося імпорт. один чи кілька файлів (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Не вдал. експорт. контактні дані"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Не вдал. експорт. контактні дані."\n"Причина помилки: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Немає доступу до експорту конт."</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Забагато файлів vCard на носії USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Забагато файлів vCard у пам’яті"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"На карті SD забагато файлів vCard"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Потрібна назва файлу задовга (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Експорт файлу <xliff:g id="FILENAME">%s</xliff:g> завершено"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Вимова імені"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Вимова по-батькові"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Вимова прізвища"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Вимова імені"</string>
     <string name="account_type_format" msgid="718948015590343010">"Контакт <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"з <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Викор. це фото"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 3e6ecf1..4c78800 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"ảnh của liên hệ"</string>
     <string name="description_minus_button" msgid="387136707700230172">"trừ"</string>
     <string name="description_plus_button" msgid="515164827856229880">"cộng"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"Bộ nhớ USB không khả dụng"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"Bộ nhớ không khả dụng"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"Không có thẻ SD nào"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"Không phát hiện bộ nhớ USB nào"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"Không phát hiện bộ nhớ nào"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"Không phát hiện thẻ SD nào"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"Đang tìm kiếm vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"Nhập từ thẻ SIM"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"Nhập từ bộ nhớ USB"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"Nhập từ bộ nhớ"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"Nhập từ thẻ SD"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"Xuất sang bộ nhớ USB"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"Xuất sang bộ nhớ"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"Xuất sang thẻ SD"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"Chia sẻ liên hệ hiển thị"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"Nhập một tệp vCard"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"Nhập nhiều tệp vCard"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"Nhập tất cả tệp vCard"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"Đang tìm kiếm dữ liệu vCard trong bộ nhớ USB"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"Đang tìm kiếm dữ liệu vCard trong bộ nhớ"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"Đang tìm dữ liệu vCard trên thẻ SD"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"Quét bộ nhớ USB không thành công"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"Quét bộ nhớ không thành công"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"Quét thẻ SD không thành công"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"Quét bộ nhớ USB không thành công (Lý do: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"Quét bộ nhớ không thành công (Lý do: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"Quét thẻ SD không thành công (Lý do: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"Lỗi I/O"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"Bộ nhớ không đủ (tệp có thể quá lớn)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Không thể phân tích cú pháp vCard vì lý do không mong muốn"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"Định dạng không được hỗ trợ."</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"Không thể nhập vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"Không tìm thấy tệp vCard trong bộ lưu trữ USB"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"Không tìm thấy tệp vCard nào trong bộ nhớ"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"Không tìm thấy tệp vCard trên thẻ SD"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"Không thể thu thập siêu thông tin của (các) tệp vCard cho trước."</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Không thể nhập một hoặc nhiều tệp (%s)."</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"Không thể xuất dữ liệu liên hệ"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Không thể xuất dữ liệu liên hệ."\n"Lý do không thành công: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Không có liên hệ có thể xuất nào"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"Quá nhiều tệp vCard trong bộ nhớ USB"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"Quá nhiều tệp vCard trong bộ nhớ"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"Quá nhiều tệp vCard trên thẻ SD"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Tên tệp yêu cầu quá dài (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"Đã xuất xong <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"Tên đúng phát âm"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"Tên đệm đúng phát âm"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"Họ đúng phát âm"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Tên theo phiên âm"</string>
     <string name="account_type_format" msgid="718948015590343010">"Liên hệ <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="from_account_format" msgid="687567483928582084">"từ <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"Sử dụng ảnh này"</string>
diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml
index 6ffbb31..d29eba2 100644
--- a/res/values-xlarge/dimens.xml
+++ b/res/values-xlarge/dimens.xml
@@ -22,4 +22,5 @@
     <dimen name="action_bar_filter_max_width">120dip</dimen>
     <dimen name="action_bar_search_max_width">300dip</dimen>
     <dimen name="action_bar_search_spacing">12dip</dimen>
+    <dimen name="shortcut_icon_size">64dip</dimen>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 1bfed1d..a4aef23 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"联系人照片"</string>
     <string name="description_minus_button" msgid="387136707700230172">"删除"</string>
     <string name="description_plus_button" msgid="515164827856229880">"添加"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"不存在 USB 存储设备"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"存储设备不存在"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"无 SD 卡"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"未检测到 USB 存储设备"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"未检测到存储设备"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"未检测到 SD 卡"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"正在搜索 vCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"从 SIM 卡导入"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"从 USB 存储设备导入"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"从存储设备导入"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"从 SD 卡导入"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"导出到 USB 存储设备"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"导出到存储设备"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"导出到 SD 卡"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"分享可见的联系人"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"导入一个 vCard 文件"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"导入多个 vCard 文件"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"导入所有 vCard 文件"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"正在 USB 存储设备中搜索 vCard 文件"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"正在存储设备中搜索 vCard 文件"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"正在 SD 卡中搜索 vCard 数据"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"扫描 USB 存储设备时失败"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"扫描存储设备时失败"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"扫描 SD 卡失败"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"扫描 USB 存储设备时失败（原因：“<xliff:g id="FAIL_REASON">%s</xliff:g>”）"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"扫描存储设备时失败（原因：“<xliff:g id="FAIL_REASON">%s</xliff:g>”）"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"扫描 SD 卡失败（原因：“<xliff:g id="FAIL_REASON">%s</xliff:g>”）"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O 错误"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"存储器空间不足（文件可能过大）"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"由于意外原因而无法解析 vCard"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"不支持此格式。"</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"未能导入 vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"未在 USB 存储设备中找到 vCard 文件"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"未在存储设备中找到 vCard 文件"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"未在 SD 卡上找到 vCard 文件"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"无法收集指定的 vCard 文件的元信息。"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"一个或多个文件导入失败 (%s)。"</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"导出联系人数据失败"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"导出联系人数据失败。"\n"失败原因：“<xliff:g id="FAIL_REASON">%s</xliff:g>”"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"没有可导出的联系人"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USB 存储设备中的 vCard 文件太多"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"存储设备中的 vCard 文件过多"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD 卡中的 vCard 文件太多"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"所需文件名太长（“<xliff:g id="FILENAME">%s</xliff:g>”）"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"导出 <xliff:g id="FILENAME">%s</xliff:g> 已完成"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"名字拼音"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"中间名拼音"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"姓氏拼音"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"姓名拼音"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> 联系人"</string>
     <string name="from_account_format" msgid="687567483928582084">"来自 <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"使用此照片"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 8268211..3cfddeb 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -208,32 +208,32 @@
     <string name="description_contact_photo" msgid="3387458082667894062">"聯絡人相片"</string>
     <string name="description_minus_button" msgid="387136707700230172">"負號"</string>
     <string name="description_plus_button" msgid="515164827856229880">"加號"</string>
-    <string name="no_sdcard_title" product="nosdcard" msgid="5362631473262100989">"沒有可用的 USB 儲存裝置"</string>
+    <string name="no_sdcard_title" product="nosdcard" msgid="8543619259870877473">"儲存裝置無法使用"</string>
     <string name="no_sdcard_title" product="default" msgid="5911758680339949273">"無 SD 卡"</string>
-    <string name="no_sdcard_message" product="nosdcard" msgid="8045830739790534254">"未偵測到 USB 儲存裝置"</string>
+    <string name="no_sdcard_message" product="nosdcard" msgid="1334170151822669976">"未偵測到儲存裝置"</string>
     <string name="no_sdcard_message" product="default" msgid="6019391476490445358">"未偵測到 SD 卡"</string>
     <string name="searching_vcard_title" msgid="4970508055399376813">"正在搜尋 VCard"</string>
     <string name="import_from_sim" msgid="3859272228033941659">"從 SIM 卡匯入"</string>
-    <string name="import_from_sdcard" product="nosdcard" msgid="8294728696808674154">"從 USB 儲存裝置匯入"</string>
+    <string name="import_from_sdcard" product="nosdcard" msgid="8668347930577565175">"從儲存裝置匯入"</string>
     <string name="import_from_sdcard" product="default" msgid="8550360976693202816">"從 SD 卡匯入"</string>
-    <string name="export_to_sdcard" product="nosdcard" msgid="7201274701382901259">"匯出到 USB 儲存裝置"</string>
+    <string name="export_to_sdcard" product="nosdcard" msgid="6092815580965201089">"匯出到儲存裝置"</string>
     <string name="export_to_sdcard" product="default" msgid="2597105442616166277">"匯出至 SD 卡"</string>
     <string name="share_visible_contacts" msgid="890150378880783797">"分享正常顯示的聯絡人"</string>
     <string name="import_one_vcard_string" msgid="9059163467020328433">"匯入一個 vCard 檔案"</string>
     <string name="import_multiple_vcard_string" msgid="3810226492811062392">"匯入多個 vCard 檔案"</string>
     <string name="import_all_vcard_string" msgid="5518136113853448474">"匯入所有 vCard 檔案"</string>
-    <string name="searching_vcard_message" product="nosdcard" msgid="8214795338181412751">"正在 USB 儲存裝置中搜尋 vCard 資料"</string>
+    <string name="searching_vcard_message" product="nosdcard" msgid="996170203695743981">"正在搜尋儲存裝置中的 vCard 資料"</string>
     <string name="searching_vcard_message" product="default" msgid="6917522333561434546">"在 SD 卡上搜尋 VCard 資料"</string>
-    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="7447077516493667568">"掃描 USB 儲存裝置失敗"</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard" msgid="6957414493948497249">"無法掃描儲存裝置"</string>
     <string name="scanning_sdcard_failed_title" product="default" msgid="3506782007953167180">"無法掃描 SD 卡"</string>
-    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="5645544323676912703">"掃描 USB 儲存裝置失敗 (原因：「<xliff:g id="FAIL_REASON">%s</xliff:g>」)"</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard" msgid="4106156155205860626">"無法掃描儲存裝置 (原因：「<xliff:g id="FAIL_REASON">%s</xliff:g>」)"</string>
     <string name="scanning_sdcard_failed_message" product="default" msgid="3761992500690182922">"無法掃描 SD 卡 (原因：「<xliff:g id="FAIL_REASON">%s</xliff:g>」)"</string>
     <string name="fail_reason_io_error" msgid="5922864781066136340">"I/O 錯誤"</string>
     <string name="fail_reason_low_memory_during_import" msgid="7514918659342886381">"記憶體不足 (檔案可能過大)"</string>
     <string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"因未預期原因，無法剖析 VCard"</string>
     <string name="fail_reason_not_supported" msgid="294499264620201243">"不支援這種格式。"</string>
     <string name="vcard_import_failed" msgid="7718330063493653085">"無法匯入 vCard"</string>
-    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="8809370398968655782">"在 USB 儲存裝置中找不到 vCard 檔案"</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard" msgid="6339234836196984924">"在儲存裝置中找不到 vCard 檔案"</string>
     <string name="import_failure_no_vcard_file" product="default" msgid="1730986357514922756">"在 SD 卡上找不到 vCard 檔案"</string>
     <string name="fail_reason_failed_to_collect_vcard_meta_info" msgid="4154492282316067754">"無法從指定的 vCard 檔案收集中繼資料。"</string>
     <string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"無法匯入一或多個檔案 (%s)。"</string>
@@ -259,7 +259,7 @@
     <string name="exporting_contact_failed_title" msgid="585823094820602526">"無法匯出聯絡人資料"</string>
     <string name="exporting_contact_failed_message" msgid="4151348002470298092">"匯出聯絡人資料失敗。"\n"失敗原因：「<xliff:g id="FAIL_REASON">%s</xliff:g>」"</string>
     <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"沒有可匯出的聯絡人"</string>
-    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="2638638826954895225">"USB 儲存裝置中的 vCard 檔案過多"</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard" msgid="3745507837635270265">"儲存裝置中的 vCard 檔案過多"</string>
     <string name="fail_reason_too_many_vcard" product="default" msgid="7084146295639672658">"SD 卡中的 VCard 檔案過多"</string>
     <string name="fail_reason_too_long_filename" msgid="1915716071321839166">"要求的檔案名稱過長 (「<xliff:g id="FILENAME">%s</xliff:g>」)"</string>
     <string name="exporting_vcard_finished_title" msgid="4259736138838583213">"已完成匯出 <xliff:g id="FILENAME">%s</xliff:g>"</string>
@@ -397,6 +397,7 @@
     <string name="name_phonetic_given" msgid="6853570431394449191">"名字 (拼音)"</string>
     <string name="name_phonetic_middle" msgid="8643721493320405200">"中間名 (拼音)"</string>
     <string name="name_phonetic_family" msgid="462095502140180305">"姓氏 (拼音)"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"姓名拼音"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> 聯絡人"</string>
     <string name="from_account_format" msgid="687567483928582084">"來自 <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="use_photo_as_primary" msgid="8807110122951157246">"使用此相片"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
new file mode 100644
index 0000000..6ebaa1f
--- /dev/null
+++ b/res/values/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+
+    <!-- Amount of memory in bytes allocated for photo cache -->
+    <integer name="config_photo_cache_max_bytes">2000000</integer>
+
+    <!-- Number of decoded photo bitmaps retained in an LRU cache -->
+    <integer name="config_photo_cache_max_bitmaps">48</integer>
+</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 0b2cffd..47150b4 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -73,4 +73,6 @@
     <!-- Spacing on the left the search field in the action bar -->
     <dimen name="action_bar_search_spacing">12dip</dimen>
 
+    <!-- Size of the shortcut icon. 0dip means: use the system default -->    
+    <dimen name="shortcut_icon_size">0dip</dimen>
 </resources>
diff --git a/res/values/donottranslate_config.xml b/res/values/donottranslate_config.xml
index cad2a63..f5efa13 100644
--- a/res/values/donottranslate_config.xml
+++ b/res/values/donottranslate_config.xml
@@ -96,4 +96,7 @@
 
     <!-- If true, the order of name fields in the editor is primary (i.e. given name first) -->
     <bool name="config_editor_field_order_primary">true</bool>
+
+    <!-- If true, phonetic name is included in the contact editor by default -->
+    <bool name="config_editor_include_phonetic_name">false</bool>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d09904a..ff69899 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -680,13 +680,13 @@
     -->
     <string name="description_plus_button">plus</string>
 
-    <!-- Dialog title shown when USB storage does not exist [CHAR LIMIT=25] -->
-    <string name="no_sdcard_title" product="nosdcard">USB storage unavailable</string>
+    <!-- Dialog title shown when (USB) storage does not exist [CHAR LIMIT=25] -->
+    <string name="no_sdcard_title" product="nosdcard">Storage unavailable</string>
     <!-- Dialog title shown when SD Card does not exist -->
     <string name="no_sdcard_title" product="default">No SD card</string>
 
-    <!-- Dialog message shown when USB storage does not exist [CHAR LIMIT=30] -->
-    <string name="no_sdcard_message" product="nosdcard">No USB storage detected</string>
+    <!-- Dialog message shown when (USB) storage does not exist [CHAR LIMIT=30] -->
+    <string name="no_sdcard_message" product="nosdcard">No storage detected</string>
     <!-- Dialog message shown when SDcard does not exist -->
     <string name="no_sdcard_message" product="default">No SD card detected</string>
 
@@ -696,13 +696,13 @@
     <!-- Action string for selecting SIM for importing contacts -->
     <string name="import_from_sim">Import from SIM card</string>
 
-    <!-- Action string for selecting USB storage for importing contacts [CHAR LIMIT=25] -->
-    <string name="import_from_sdcard" product="nosdcard">Import from USB storage</string>
+    <!-- Action string for selecting (USB) storage for importing contacts [CHAR LIMIT=25] -->
+    <string name="import_from_sdcard" product="nosdcard">Import from storage</string>
     <!-- Action string for selecting SD Card for importing contacts -->
     <string name="import_from_sdcard" product="default">Import from SD card</string>
 
-    <!-- Action that exports all contacts to USB storage [CHAR LIMIT=25] -->
-    <string name="export_to_sdcard" product="nosdcard">Export to USB storage</string>
+    <!-- Action that exports all contacts to (USB) storage [CHAR LIMIT=25] -->
+    <string name="export_to_sdcard" product="nosdcard">Export to storage</string>
     <!-- Action that exports all contacts to SD Card -->
     <string name="export_to_sdcard" product="default">Export to SD card</string>
 
@@ -724,19 +724,19 @@
          than one vCard files available in the system. -->
     <string name="import_all_vcard_string">Import all vCard files</string>
 
-    <!-- Dialog message shown when searching VCard data from SD Card [CHAR LIMIT=NONE] -->
-    <string name="searching_vcard_message" product="nosdcard">Searching for vCard data in USB storage</string>
+    <!-- Dialog message shown when searching VCard data from (USB) storage [CHAR LIMIT=NONE] -->
+    <string name="searching_vcard_message" product="nosdcard">Searching for vCard data in storage</string>
     <!-- Dialog message shown when searching VCard data from SD Card -->
     <string name="searching_vcard_message" product="default">Searching for vCard data on SD card</string>
 
     <!-- Dialog title shown when scanning VCard data failed. [CHAR LIMIT=NONE] -->
-    <string name="scanning_sdcard_failed_title" product="nosdcard">Scanning USB storage failed</string>
+    <string name="scanning_sdcard_failed_title" product="nosdcard">Scanning storage failed</string>
     <!-- Dialog title shown when scanning VCard data failed. -->
     <string name="scanning_sdcard_failed_title" product="default">Scanning SD card failed</string>
 
     <!-- Dialog message shown when searching VCard data failed.
          An exact reason for the failure should [CHAR LIMIT=NONE] -->
-    <string name="scanning_sdcard_failed_message" product="nosdcard">Scanning USB storage failed (Reason: \"<xliff:g id="fail_reason">%s</xliff:g>\")</string>
+    <string name="scanning_sdcard_failed_message" product="nosdcard">Scanning storage failed (Reason: \"<xliff:g id="fail_reason">%s</xliff:g>\")</string>
     <!-- Dialog message shown when searching VCard data failed.
          An exact reason for the failure should -->
     <string name="scanning_sdcard_failed_message" product="default">Scanning SD card failed (Reason: \"<xliff:g id="fail_reason">%s</xliff:g>\")</string>
@@ -762,9 +762,9 @@
     <string name="vcard_import_failed">Failed to import vCard</string>
 
     <!-- The failure message shown when the system could not find any vCard file.
-         (with extension ".vcf" in USB storage.)
+         (with extension ".vcf" in (USB) storage.)
          [CHAR LIMIT=128] -->
-    <string name="import_failure_no_vcard_file" product="nosdcard">No vCard file found in the USB storage</string>
+    <string name="import_failure_no_vcard_file" product="nosdcard">No vCard file found in the storage</string>
     <!-- The failure message shown when the system could not find any vCard file.
          (with extension ".vcf" in SDCard.)
          [CHAR LIMIT=128] -->
@@ -864,7 +864,7 @@
 
     <!-- The failed reason shown when vCard exporter could not create a file for the vCard since
          there are too many files relevant to vCard. [CHAR LIMIT=NONE] -->
-    <string name="fail_reason_too_many_vcard" product="nosdcard">Too many vCard files in the USB storage</string>
+    <string name="fail_reason_too_many_vcard" product="nosdcard">Too many vCard files in the storage</string>
     <!-- The failed reason shown when vCard exporter could not create a file for the vCard since
          there are too many files relevant to vCard. -->
     <string name="fail_reason_too_many_vcard" product="default">Too many vCard files on the SD card</string>
@@ -1216,6 +1216,8 @@
     <string name="name_phonetic_middle">Phonetic middle name</string>
     <!-- Field title for the phonetic family name of a contact -->
     <string name="name_phonetic_family">Phonetic family name</string>
+    <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
+    <string name="name_phonetic">Phonetic name</string>
 
     <!-- String describing which account type a contact came from when editing it -->
     <string name="account_type_format"><xliff:g id="source" example="Gmail">%1$s</xliff:g> contact</string>
diff --git a/src/com/android/contacts/CallContactActivity.java b/src/com/android/contacts/CallContactActivity.java
index 38e890d..77bf20c 100644
--- a/src/com/android/contacts/CallContactActivity.java
+++ b/src/com/android/contacts/CallContactActivity.java
@@ -44,7 +44,8 @@
             finish();
         }
 
-        // If we are being invoked with a saved state, rely on Activity to restore it
+        // If this method is being invoked with a saved state, rely on Activity
+        // to restore it
         if (savedInstanceState != null) {
             return;
         }
@@ -57,6 +58,7 @@
         }
     }
 
+    @Override
     public void onDismiss(DialogInterface dialog) {
         if (!isChangingConfigurations()) {
             finish();
diff --git a/src/com/android/contacts/ContactPhotoManager.java b/src/com/android/contacts/ContactPhotoManager.java
new file mode 100644
index 0000000..914b697
--- /dev/null
+++ b/src/com/android/contacts/ContactPhotoManager.java
@@ -0,0 +1,746 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.contacts;
+
+import com.android.contacts.model.AccountTypeManager;
+import com.google.android.collect.Lists;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Handler.Callback;
+import android.os.HandlerThread;
+import android.os.Message;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Contacts.Photo;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Directory;
+import android.util.Log;
+import android.util.LruCache;
+import android.widget.ImageView;
+
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.lang.ref.SoftReference;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Asynchronously loads contact photos and maintains a cache of photos.
+ */
+public abstract class ContactPhotoManager {
+
+    static final String TAG = "ContactPhotoManager";
+
+    public static final String CONTACT_PHOTO_SERVICE = "contactPhotos";
+
+    /**
+     * The resource ID of the image to be used when the photo is unavailable or being
+     * loaded.
+     */
+    protected final int mDefaultResourceId = R.drawable.ic_contact_picture;
+
+    /**
+     * Requests the singleton instance of {@link AccountTypeManager} with data bound from
+     * the available authenticators. This method can safely be called from the UI thread.
+     */
+    public static ContactPhotoManager getInstance(Context context) {
+        ContactPhotoManager service =
+                (ContactPhotoManager) context.getSystemService(CONTACT_PHOTO_SERVICE);
+        if (service == null) {
+            service = createContactPhotoManager(context);
+            Log.e(TAG, "No contact photo service in context: " + context);
+        }
+        return service;
+    }
+
+    public static synchronized ContactPhotoManager createContactPhotoManager(Context context) {
+        return new ContactPhotoManagerImpl(context);
+    }
+
+    /**
+     * Load photo into the supplied image view.  If the photo is already cached,
+     * it is displayed immediately.  Otherwise a request is sent to load the photo
+     * from the database.
+     */
+    public abstract void loadPhoto(ImageView view, long photoId);
+
+    /**
+     * Load photo into the supplied image view.  If the photo is already cached,
+     * it is displayed immediately.  Otherwise a request is sent to load the photo
+     * from the location specified by the URI.
+     */
+    public abstract void loadPhoto(ImageView view, Uri photoUri);
+
+    /**
+     * Temporarily stops loading photos from the database.
+     */
+    public abstract void pause();
+
+    /**
+     * Resumes loading photos from the database.
+     */
+    public abstract void resume();
+
+    /**
+     * Marks all cached photos for reloading.  We can continue using cache but should
+     * also make sure the photos haven't changed in the background and notify the views
+     * if so.
+     */
+    public abstract void refreshCache();
+
+    /**
+     * Initiates a background process that over time will fill up cache with
+     * preload photos.
+     */
+    public abstract void preloadPhotosInBackground();
+}
+
+class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback {
+    private static final String LOADER_THREAD_NAME = "ContactPhotoLoader";
+
+    /**
+     * Type of message sent by the UI thread to itself to indicate that some photos
+     * need to be loaded.
+     */
+    private static final int MESSAGE_REQUEST_LOADING = 1;
+
+    /**
+     * Type of message sent by the loader thread to indicate that some photos have
+     * been loaded.
+     */
+    private static final int MESSAGE_PHOTOS_LOADED = 2;
+
+    private static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+    private static final String[] COLUMNS = new String[] { Photo._ID, Photo.PHOTO };
+
+    /**
+     * Maintains the state of a particular photo.
+     */
+    private static class BitmapHolder {
+        final byte[] bytes;
+
+        volatile boolean fresh;
+        Bitmap bitmap;
+        SoftReference<Bitmap> bitmapRef;
+
+        public BitmapHolder(byte[] bytes) {
+            this.bytes = bytes;
+            this.fresh = true;
+        }
+    }
+
+    private final Context mContext;
+
+    /**
+     * An LRU cache for bitmap holders. The cache contains bytes for photos just
+     * as they come from the database. Each holder has a soft reference to the
+     * actual bitmap.
+     */
+    private final LruCache<Object, BitmapHolder> mBitmapHolderCache;
+
+    /**
+     * Cache size threshold at which bitmaps will not be preloaded.
+     */
+    private final int mBitmapHolderCacheRedZoneBytes;
+
+    /**
+     * Level 2 LRU cache for bitmaps. This is a smaller cache that holds
+     * the most recently used bitmaps to save time on decoding
+     * them from bytes (the bytes are stored in {@link #mBitmapHolderCache}.
+     */
+    private final LruCache<Object, Bitmap> mBitmapCache;
+
+    /**
+     * A map from ImageView to the corresponding photo ID. Please note that this
+     * photo ID may change before the photo loading request is started.
+     */
+    private final ConcurrentHashMap<ImageView, Object> mPendingRequests =
+            new ConcurrentHashMap<ImageView, Object>();
+
+    /**
+     * Handler for messages sent to the UI thread.
+     */
+    private final Handler mMainThreadHandler = new Handler(this);
+
+    /**
+     * Thread responsible for loading photos from the database. Created upon
+     * the first request.
+     */
+    private LoaderThread mLoaderThread;
+
+    /**
+     * A gate to make sure we only send one instance of MESSAGE_PHOTOS_NEEDED at a time.
+     */
+    private boolean mLoadingRequested;
+
+    /**
+     * Flag indicating if the image loading is paused.
+     */
+    private boolean mPaused;
+
+    public ContactPhotoManagerImpl(Context context) {
+        mContext = context;
+
+        Resources resources = context.getResources();
+        mBitmapCache = new LruCache<Object, Bitmap>(
+                resources.getInteger(R.integer.config_photo_cache_max_bitmaps));
+        int maxBytes = resources.getInteger(R.integer.config_photo_cache_max_bytes);
+        mBitmapHolderCache = new LruCache<Object, BitmapHolder>(maxBytes) {
+            @Override protected int sizeOf(Object key, BitmapHolder value) {
+                return value.bytes != null ? value.bytes.length : 0;
+            }
+        };
+        mBitmapHolderCacheRedZoneBytes = (int) (maxBytes * 0.75);
+    }
+
+    @Override
+    public void preloadPhotosInBackground() {
+        ensureLoaderThread();
+        mLoaderThread.requestPreloading();
+    }
+
+    @Override
+    public void loadPhoto(ImageView view, long photoId) {
+        if (photoId == 0) {
+            // No photo is needed
+            view.setImageResource(mDefaultResourceId);
+            mPendingRequests.remove(view);
+        } else {
+            loadPhotoByIdOrUri(view, photoId);
+        }
+    }
+
+    @Override
+    public void loadPhoto(ImageView view, Uri photoUri) {
+        if (photoUri == null) {
+            // No photo is needed
+            view.setImageResource(mDefaultResourceId);
+            mPendingRequests.remove(view);
+        } else {
+            loadPhotoByIdOrUri(view, photoUri);
+        }
+    }
+
+    private void loadPhotoByIdOrUri(ImageView view, Object key) {
+        boolean loaded = loadCachedPhoto(view, key);
+        if (loaded) {
+            mPendingRequests.remove(view);
+        } else {
+            mPendingRequests.put(view, key);
+            if (!mPaused) {
+                // Send a request to start loading photos
+                requestLoading();
+            }
+        }
+    }
+
+    @Override
+    public void refreshCache() {
+        for (BitmapHolder holder : mBitmapHolderCache.snapshot().values()) {
+            holder.fresh = false;
+        }
+    }
+
+    /**
+     * Checks if the photo is present in cache.  If so, sets the photo on the view.
+     *
+     * @return false if the photo needs to be (re)loaded from the provider.
+     */
+    private boolean loadCachedPhoto(ImageView view, Object key) {
+        BitmapHolder holder = mBitmapHolderCache.get(key);
+        if (holder == null) {
+            // The bitmap has not been loaded - should display the placeholder image.
+            view.setImageResource(mDefaultResourceId);
+            return false;
+        }
+
+        if (holder.bytes == null) {
+            view.setImageResource(mDefaultResourceId);
+            return holder.fresh;
+        }
+
+        // Optionally decode bytes into a bitmap
+        inflateBitmap(holder);
+
+        view.setImageBitmap(holder.bitmap);
+
+        // Put the bitmap in the LRU cache
+        mBitmapCache.put(key, holder.bitmap);
+
+        // Soften the reference
+        holder.bitmap = null;
+
+        return holder.fresh;
+    }
+
+    /**
+     * If necessary, decodes bytes stored in the holder to Bitmap.  As long as the
+     * bitmap is held either by {@link #mBitmapCache} or by a soft reference in
+     * the holder, it will not be necessary to decode the bitmap.
+     */
+    private void inflateBitmap(BitmapHolder holder) {
+        byte[] bytes = holder.bytes;
+        if (bytes == null || bytes.length == 0) {
+            return;
+        }
+
+        // Check the soft reference.  If will be retained if the bitmap is also
+        // in the LRU cache, so we don't need to check the LRU cache explicitly.
+        if (holder.bitmapRef != null) {
+            holder.bitmap = holder.bitmapRef.get();
+            if (holder.bitmap != null) {
+                return;
+            }
+        }
+
+        try {
+            Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, null);
+            holder.bitmap = bitmap;
+            holder.bitmapRef = new SoftReference<Bitmap>(bitmap);
+        } catch (OutOfMemoryError e) {
+            // Do nothing - the photo will appear to be missing
+        }
+    }
+
+    public void clear() {
+        mPendingRequests.clear();
+        mBitmapHolderCache.evictAll();
+    }
+
+    @Override
+    public void pause() {
+        mPaused = true;
+    }
+
+    @Override
+    public void resume() {
+        mPaused = false;
+        if (!mPendingRequests.isEmpty()) {
+            requestLoading();
+        }
+    }
+
+    /**
+     * Sends a message to this thread itself to start loading images.  If the current
+     * view contains multiple image views, all of those image views will get a chance
+     * to request their respective photos before any of those requests are executed.
+     * This allows us to load images in bulk.
+     */
+    private void requestLoading() {
+        if (!mLoadingRequested) {
+            mLoadingRequested = true;
+            mMainThreadHandler.sendEmptyMessage(MESSAGE_REQUEST_LOADING);
+        }
+    }
+
+    /**
+     * Processes requests on the main thread.
+     */
+    public boolean handleMessage(Message msg) {
+        switch (msg.what) {
+            case MESSAGE_REQUEST_LOADING: {
+                mLoadingRequested = false;
+                if (!mPaused) {
+                    ensureLoaderThread();
+                    mLoaderThread.requestLoading();
+                }
+                return true;
+            }
+
+            case MESSAGE_PHOTOS_LOADED: {
+                if (!mPaused) {
+                    processLoadedImages();
+                }
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public void ensureLoaderThread() {
+        if (mLoaderThread == null) {
+            mLoaderThread = new LoaderThread(mContext.getContentResolver());
+            mLoaderThread.start();
+        }
+    }
+
+    /**
+     * Goes over pending loading requests and displays loaded photos.  If some of the
+     * photos still haven't been loaded, sends another request for image loading.
+     */
+    private void processLoadedImages() {
+        Iterator<ImageView> iterator = mPendingRequests.keySet().iterator();
+        while (iterator.hasNext()) {
+            ImageView view = iterator.next();
+            Object key = mPendingRequests.get(view);
+            boolean loaded = loadCachedPhoto(view, key);
+            if (loaded) {
+                iterator.remove();
+            }
+        }
+
+        softenCache();
+
+        if (!mPendingRequests.isEmpty()) {
+            requestLoading();
+        }
+    }
+
+    /**
+     * Removes strong references to loaded bitmaps to allow them to be garbage collected
+     * if needed.  Some of the bitmaps will still be retained by {@link #mBitmapCache}.
+     */
+    private void softenCache() {
+        for (BitmapHolder holder : mBitmapHolderCache.snapshot().values()) {
+            holder.bitmap = null;
+        }
+    }
+
+    /**
+     * Stores the supplied bitmap in cache.
+     */
+    private void cacheBitmap(Object key, byte[] bytes, boolean preloading) {
+        BitmapHolder holder = new BitmapHolder(bytes);
+        holder.fresh = true;
+
+        // Unless this image is being preloaded, decode it right away while
+        // we are still on the background thread.
+        if (!preloading) {
+            inflateBitmap(holder);
+        }
+
+        mBitmapHolderCache.put(key, holder);
+    }
+
+    /**
+     * Populates an array of photo IDs that need to be loaded.
+     */
+    private void obtainPhotoIdsAndUrisToLoad(ArrayList<Long> photoIds,
+            ArrayList<String> photoIdsAsStrings, ArrayList<Uri> uris) {
+        photoIds.clear();
+        photoIdsAsStrings.clear();
+        uris.clear();
+
+        /*
+         * Since the call is made from the loader thread, the map could be
+         * changing during the iteration. That's not really a problem:
+         * ConcurrentHashMap will allow those changes to happen without throwing
+         * exceptions. Since we may miss some requests in the situation of
+         * concurrent change, we will need to check the map again once loading
+         * is complete.
+         */
+        Iterator<Object> iterator = mPendingRequests.values().iterator();
+        while (iterator.hasNext()) {
+            Object key = iterator.next();
+            BitmapHolder holder = mBitmapHolderCache.get(key);
+            if (holder == null || !holder.fresh) {
+                if (key instanceof Long) {
+                    photoIds.add((Long)key);
+                    photoIdsAsStrings.add(key.toString());
+                } else {
+                    uris.add((Uri)key);
+                }
+            }
+        }
+    }
+
+    /**
+     * The thread that performs loading of photos from the database.
+     */
+    private class LoaderThread extends HandlerThread implements Callback {
+        private static final int BUFFER_SIZE = 1024*16;
+        private static final int MESSAGE_PRELOAD_PHOTOS = 0;
+        private static final int MESSAGE_LOAD_PHOTOS = 1;
+
+        /**
+         * A pause between preload batches that yields to the UI thread.
+         */
+        private static final int PHOTO_PRELOAD_DELAY = 50;
+
+        /**
+         * Number of photos to preload per batch.
+         */
+        private static final int PRELOAD_BATCH = 25;
+
+        /**
+         * Maximum number of photos to preload.  If the cache size is 2Mb and
+         * the expected average size of a photo is 4kb, then this number should be 2Mb/4kb = 500.
+         */
+        private static final int MAX_PHOTOS_TO_PRELOAD = 500;
+
+        private final ContentResolver mResolver;
+        private final StringBuilder mStringBuilder = new StringBuilder();
+        private final ArrayList<Long> mPhotoIds = Lists.newArrayList();
+        private final ArrayList<String> mPhotoIdsAsStrings = Lists.newArrayList();
+        private final ArrayList<Uri> mPhotoUris = Lists.newArrayList();
+        private ArrayList<Long> mPreloadPhotoIds = Lists.newArrayList();
+
+        private Handler mLoaderThreadHandler;
+        private byte mBuffer[];
+
+        private static final int PRELOAD_STATUS_NOT_STARTED = 0;
+        private static final int PRELOAD_STATUS_IN_PROGRESS = 1;
+        private static final int PRELOAD_STATUS_DONE = 2;
+
+        private int mPreloadStatus = PRELOAD_STATUS_NOT_STARTED;
+
+        public LoaderThread(ContentResolver resolver) {
+            super(LOADER_THREAD_NAME);
+            mResolver = resolver;
+        }
+
+        public void ensureHandler() {
+            if (mLoaderThreadHandler == null) {
+                mLoaderThreadHandler = new Handler(getLooper(), this);
+            }
+        }
+
+        /**
+         * Kicks off preloading of the next batch of photos on the background thread.
+         * Preloading will happen after a delay: we want to yield to the UI thread
+         * as much as possible.
+         * <p>
+         * If preloading is already complete, does nothing.
+         */
+        public void requestPreloading() {
+            if (mPreloadStatus == PRELOAD_STATUS_DONE) {
+                return;
+            }
+
+            ensureHandler();
+            if (mLoaderThreadHandler.hasMessages(MESSAGE_LOAD_PHOTOS)) {
+                return;
+            }
+
+            mLoaderThreadHandler.sendEmptyMessageDelayed(
+                    MESSAGE_PRELOAD_PHOTOS, PHOTO_PRELOAD_DELAY);
+        }
+
+        /**
+         * Sends a message to this thread to load requested photos.  Cancels a preloading
+         * request, if any: we don't want preloading to impede loading of the photos
+         * we need to display now.
+         */
+        public void requestLoading() {
+            ensureHandler();
+            mLoaderThreadHandler.removeMessages(MESSAGE_PRELOAD_PHOTOS);
+            mLoaderThreadHandler.sendEmptyMessage(MESSAGE_LOAD_PHOTOS);
+        }
+
+        /**
+         * Receives the above message, loads photos and then sends a message
+         * to the main thread to process them.
+         */
+        public boolean handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_PRELOAD_PHOTOS:
+                    preloadPhotosInBackground();
+                    break;
+                case MESSAGE_LOAD_PHOTOS:
+                    loadPhotosInBackground();
+                    break;
+            }
+            return true;
+        }
+
+        /**
+         * The first time it is called, figures out which photos need to be preloaded.
+         * Each subsequent call preloads the next batch of photos and requests
+         * another cycle of preloading after a delay.  The whole process ends when
+         * we either run out of photos to preload or fill up cache.
+         */
+        private void preloadPhotosInBackground() {
+            if (mPreloadStatus == PRELOAD_STATUS_DONE) {
+                return;
+            }
+
+            if (mPreloadStatus == PRELOAD_STATUS_NOT_STARTED) {
+                queryPhotosForPreload();
+                if (mPreloadPhotoIds.isEmpty()) {
+                    mPreloadStatus = PRELOAD_STATUS_DONE;
+                } else {
+                    mPreloadStatus = PRELOAD_STATUS_IN_PROGRESS;
+                }
+                requestPreloading();
+                return;
+            }
+
+            if (mBitmapHolderCache.size() > mBitmapHolderCacheRedZoneBytes) {
+                mPreloadStatus = PRELOAD_STATUS_DONE;
+                return;
+            }
+
+            mPhotoIds.clear();
+            mPhotoIdsAsStrings.clear();
+
+            int count = 0;
+            int preloadSize = mPreloadPhotoIds.size();
+            while(preloadSize > 0 && mPhotoIds.size() < PRELOAD_BATCH) {
+                preloadSize--;
+                count++;
+                Long photoId = mPreloadPhotoIds.get(preloadSize);
+                mPhotoIds.add(photoId);
+                mPhotoIdsAsStrings.add(photoId.toString());
+                mPreloadPhotoIds.remove(preloadSize);
+            }
+
+            loadPhotosFromDatabase(false);
+
+            if (preloadSize == 0) {
+                mPreloadStatus = PRELOAD_STATUS_DONE;
+            }
+
+            Log.v(TAG, "Preloaded " + count + " photos. Photos in cache: "
+                    + mBitmapHolderCache.size()
+                    + ". Total size: " + mBitmapHolderCache.size());
+
+            requestPreloading();
+        }
+
+        private void queryPhotosForPreload() {
+            Cursor cursor = null;
+            try {
+                Uri uri = Contacts.CONTENT_URI.buildUpon().appendQueryParameter(
+                        ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(Directory.DEFAULT))
+                        .build();
+                cursor = mResolver.query(uri, new String[] { Contacts.PHOTO_ID },
+                        Contacts.PHOTO_ID + " NOT NULL AND " + Contacts.PHOTO_ID + "!=0",
+                        null,
+                        Contacts.STARRED + " DESC, " + Contacts.LAST_TIME_CONTACTED + " DESC"
+                                + " LIMIT " + MAX_PHOTOS_TO_PRELOAD);
+
+                if (cursor != null) {
+                    while (cursor.moveToNext()) {
+                        // Insert them in reverse order, because we will be taking
+                        // them from the end of the list for loading.
+                        mPreloadPhotoIds.add(0, cursor.getLong(0));
+                    }
+                }
+            } finally {
+                if (cursor != null) {
+                    cursor.close();
+                }
+            }
+        }
+
+        private void loadPhotosInBackground() {
+            obtainPhotoIdsAndUrisToLoad(mPhotoIds, mPhotoIdsAsStrings, mPhotoUris);
+            loadPhotosFromDatabase(true);
+            loadRemotePhotos();
+            requestPreloading();
+        }
+
+        private void loadPhotosFromDatabase(boolean preloading) {
+            int count = mPhotoIds.size();
+            if (count == 0) {
+                return;
+            }
+
+            // Remove loaded photos from the preload queue: we don't want
+            // the preloading process to load them again.
+            if (!preloading && mPreloadStatus == PRELOAD_STATUS_IN_PROGRESS) {
+                for (int i = 0; i < count; i++) {
+                    mPreloadPhotoIds.remove(mPhotoIds.get(i));
+                }
+                if (mPreloadPhotoIds.isEmpty()) {
+                    mPreloadStatus = PRELOAD_STATUS_DONE;
+                }
+            }
+
+            mStringBuilder.setLength(0);
+            mStringBuilder.append(Photo._ID + " IN(");
+            for (int i = 0; i < count; i++) {
+                if (i != 0) {
+                    mStringBuilder.append(',');
+                }
+                mStringBuilder.append('?');
+            }
+            mStringBuilder.append(')');
+
+            Cursor cursor = null;
+            try {
+                cursor = mResolver.query(Data.CONTENT_URI,
+                        COLUMNS,
+                        mStringBuilder.toString(),
+                        mPhotoIdsAsStrings.toArray(EMPTY_STRING_ARRAY),
+                        null);
+
+                if (cursor != null) {
+                    while (cursor.moveToNext()) {
+                        Long id = cursor.getLong(0);
+                        byte[] bytes = cursor.getBlob(1);
+                        cacheBitmap(id, bytes, preloading);
+                        mPhotoIds.remove(id);
+                    }
+                }
+            } finally {
+                if (cursor != null) {
+                    cursor.close();
+                }
+            }
+
+            // Remaining photos were not found in the database - mark the cache accordingly.
+            count = mPhotoIds.size();
+            for (int i = 0; i < count; i++) {
+                cacheBitmap(mPhotoIds.get(i), null, preloading);
+            }
+
+            mMainThreadHandler.sendEmptyMessage(MESSAGE_PHOTOS_LOADED);
+        }
+
+        private void loadRemotePhotos() {
+            int count = mPhotoUris.size();
+            for (int i = 0; i < count; i++) {
+                Uri uri = mPhotoUris.get(i);
+                if (mBuffer == null) {
+                    mBuffer = new byte[BUFFER_SIZE];
+                }
+                try {
+                    InputStream is = mResolver.openInputStream(uri);
+                    if (is != null) {
+                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                        try {
+                            int size;
+                            while ((size = is.read(mBuffer)) != -1) {
+                                baos.write(mBuffer, 0, size);
+                            }
+                        } finally {
+                            is.close();
+                        }
+                        cacheBitmap(uri, baos.toByteArray(), false);
+                        mMainThreadHandler.sendEmptyMessage(MESSAGE_PHOTOS_LOADED);
+                    } else {
+                        Log.v(TAG, "Cannot load photo " + uri);
+                        cacheBitmap(uri, null, false);
+                    }
+                } catch (Exception ex) {
+                    Log.v(TAG, "Cannot load photo " + uri, ex);
+                    cacheBitmap(uri, null, false);
+                }
+            }
+        }
+    }
+}
diff --git a/src/com/android/contacts/ContactSaveService.java b/src/com/android/contacts/ContactSaveService.java
index c07dd68..9b56f5b 100644
--- a/src/com/android/contacts/ContactSaveService.java
+++ b/src/com/android/contacts/ContactSaveService.java
@@ -16,11 +16,14 @@
 
 package com.android.contacts;
 
-import com.android.contacts.R;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.EntityDeltaList;
+import com.android.contacts.model.EntityModifier;
 import com.google.android.collect.Lists;
 import com.google.android.collect.Sets;
 
 import android.accounts.Account;
+import android.app.Activity;
 import android.app.IntentService;
 import android.content.ContentProviderOperation;
 import android.content.ContentProviderOperation.Builder;
@@ -35,6 +38,7 @@
 import android.net.Uri;
 import android.os.Handler;
 import android.os.Looper;
+import android.os.Parcelable;
 import android.os.RemoteException;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.AggregationExceptions;
@@ -48,6 +52,7 @@
 
 import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.LinkedList;
 import java.util.List;
 
 /**
@@ -63,7 +68,9 @@
     public static final String EXTRA_CONTENT_VALUES = "contentValues";
     public static final String EXTRA_CALLBACK_INTENT = "callbackIntent";
 
-    public static final String EXTRA_OPERATIONS = "Operations";
+    public static final String ACTION_SAVE_CONTACT = "saveContact";
+    public static final String EXTRA_CONTACT_STATE = "state";
+    public static final String EXTRA_SAVE_MODE = "saveMode";
 
     public static final String ACTION_CREATE_GROUP = "createGroup";
     public static final String ACTION_RENAME_GROUP = "renameGroup";
@@ -105,9 +112,46 @@
         Data.DATA15
     );
 
+    private static final int PERSIST_TRIES = 3;
+
+    public interface Listener {
+        public void onServiceCompleted(Intent callbackIntent);
+    }
+
+    private static final LinkedList<Listener> sListeners = new LinkedList<Listener>();
+
+    private Handler mMainHandler;
+
     public ContactSaveService() {
         super(TAG);
         setIntentRedelivery(true);
+        mMainHandler = new Handler(Looper.getMainLooper());
+    }
+
+    public static void registerListener(Listener listener) {
+        if (!(listener instanceof Activity)) {
+            throw new ClassCastException("Only activities can be registered to"
+                    + " receive callback from " + ContactSaveService.class.getName());
+        }
+        synchronized (sListeners) {
+            sListeners.addFirst(listener);
+        }
+    }
+
+    public static void unregisterListener(Listener listener) {
+        synchronized (sListeners) {
+            sListeners.remove(listener);
+        }
+    }
+
+    @Override
+    public Object getSystemService(String name) {
+        Object service = super.getSystemService(name);
+        if (service != null) {
+            return service;
+        }
+
+        return getApplicationContext().getSystemService(name);
     }
 
     @Override
@@ -115,6 +159,8 @@
         String action = intent.getAction();
         if (ACTION_NEW_RAW_CONTACT.equals(action)) {
             createRawContact(intent);
+        } else if (ACTION_SAVE_CONTACT.equals(action)) {
+            saveContact(intent);
         } else if (ACTION_CREATE_GROUP.equals(action)) {
             createGroup(intent);
         } else if (ACTION_RENAME_GROUP.equals(action)) {
@@ -156,8 +202,6 @@
         // the callback intent.
         Intent callbackIntent = new Intent(context, callbackActivity);
         callbackIntent.setAction(callbackAction);
-        callbackIntent.setFlags(
-                Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
         serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
         return serviceIntent;
     }
@@ -195,7 +239,120 @@
         Uri rawContactUri = results[0].uri;
         callbackIntent.setData(RawContacts.getContactLookupUri(resolver, rawContactUri));
 
-        startActivity(callbackIntent);
+        deliverCallback(callbackIntent);
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to create a new raw contact
+     * using data presented as a set of ContentValues.
+     */
+    public static Intent createSaveContactIntent(Context context, EntityDeltaList state,
+            String saveModeExtraKey, int saveMode, Class<?> callbackActivity,
+            String callbackAction) {
+        Intent serviceIntent = new Intent(
+                context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_SAVE_CONTACT);
+        serviceIntent.putExtra(EXTRA_CONTACT_STATE, (Parcelable) state);
+
+        // Callback intent will be invoked by the service once the contact is
+        // saved.  The service will put the URI of the new contact as "data" on
+        // the callback intent.
+        Intent callbackIntent = new Intent(context, callbackActivity);
+        callbackIntent.putExtra(saveModeExtraKey, saveMode);
+        callbackIntent.setAction(callbackAction);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
+        return serviceIntent;
+    }
+
+    private void saveContact(Intent intent) {
+        EntityDeltaList state = intent.getParcelableExtra(EXTRA_CONTACT_STATE);
+        Intent callbackIntent = intent.getParcelableExtra(EXTRA_CALLBACK_INTENT);
+
+        // Trim any empty fields, and RawContacts, before persisting
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(this);
+        EntityModifier.trimEmpty(state, accountTypes);
+
+        Uri lookupUri = null;
+
+        final ContentResolver resolver = getContentResolver();
+
+        // Attempt to persist changes
+        int tries = 0;
+        while (tries++ < PERSIST_TRIES) {
+            try {
+                // Build operations and try applying
+                final ArrayList<ContentProviderOperation> diff = state.buildDiff();
+                ContentProviderResult[] results = null;
+                if (!diff.isEmpty()) {
+                    results = resolver.applyBatch(ContactsContract.AUTHORITY, diff);
+                }
+
+                final long rawContactId = getRawContactId(state, diff, results);
+                if (rawContactId == -1) {
+                    throw new IllegalStateException("Could not determine RawContact ID after save");
+                }
+                final Uri rawContactUri = ContentUris.withAppendedId(
+                        RawContacts.CONTENT_URI, rawContactId);
+                lookupUri = RawContacts.getContactLookupUri(resolver, rawContactUri);
+                Log.v(TAG, "Saved contact. New URI: " + lookupUri);
+                break;
+
+            } catch (RemoteException e) {
+                // Something went wrong, bail without success
+                Log.e(TAG, "Problem persisting user edits", e);
+                break;
+
+            } catch (OperationApplicationException e) {
+                // Version consistency failed, re-parent change and try again
+                Log.w(TAG, "Version consistency failed, re-parenting: " + e.toString());
+                final StringBuilder sb = new StringBuilder(RawContacts._ID + " IN(");
+                boolean first = true;
+                final int count = state.size();
+                for (int i = 0; i < count; i++) {
+                    Long rawContactId = state.getRawContactId(i);
+                    if (rawContactId != null && rawContactId != -1) {
+                        if (!first) {
+                            sb.append(',');
+                        }
+                        sb.append(rawContactId);
+                        first = false;
+                    }
+                }
+                sb.append(")");
+
+                if (first) {
+                    throw new IllegalStateException("Version consistency failed for a new contact");
+                }
+
+                final EntityDeltaList newState = EntityDeltaList.fromQuery(resolver,
+                        sb.toString(), null, null);
+                state = EntityDeltaList.mergeAfter(newState, state);
+            }
+        }
+
+        callbackIntent.setData(lookupUri);
+
+        deliverCallback(callbackIntent);
+    }
+
+    private long getRawContactId(EntityDeltaList state,
+            final ArrayList<ContentProviderOperation> diff,
+            final ContentProviderResult[] results) {
+        long rawContactId = state.findRawContactId();
+        if (rawContactId != -1) {
+            return rawContactId;
+        }
+
+        final int diffSize = diff.size();
+        for (int i = 0; i < diffSize; i++) {
+            ContentProviderOperation operation = diff.get(i);
+            if (operation.getType() == ContentProviderOperation.TYPE_INSERT
+                    && operation.getUri().getEncodedPath().contains(
+                            RawContacts.CONTENT_URI.getEncodedPath())) {
+                return ContentUris.parseId(results[i].uri);
+            }
+        }
+        return -1;
     }
 
     /**
@@ -214,8 +371,6 @@
         // of the callback intent.
         Intent callbackIntent = new Intent(context, callbackActivity);
         callbackIntent.setAction(callbackAction);
-        callbackIntent.setFlags(
-                Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
         serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
 
         return serviceIntent;
@@ -243,7 +398,7 @@
         Intent callbackIntent = intent.getParcelableExtra(EXTRA_CALLBACK_INTENT);
         callbackIntent.putExtra(ContactsContract.Intents.Insert.DATA, Lists.newArrayList(values));
 
-        startActivity(callbackIntent);
+        deliverCallback(callbackIntent);
     }
 
     /**
@@ -407,8 +562,6 @@
         // Callback intent will be invoked by the service once the contacts are joined.
         Intent callbackIntent = new Intent(context, callbackActivity);
         callbackIntent.setAction(callbackAction);
-        callbackIntent.setFlags(
-                Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
         serviceIntent.putExtra(ContactSaveService.EXTRA_CALLBACK_INTENT, callbackIntent);
 
         return serviceIntent;
@@ -523,7 +676,7 @@
                     ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactIds[0]));
             callbackIntent.setData(uri);
         }
-        startActivity(callbackIntent);
+        deliverCallback(callbackIntent);
     }
 
     /**
@@ -543,7 +696,7 @@
      * Shows a toast on the UI thread.
      */
     private void showToast(final int message) {
-        new Handler(Looper.getMainLooper()).post(new Runnable() {
+        mMainHandler.post(new Runnable() {
 
             @Override
             public void run() {
@@ -551,4 +704,29 @@
             }
         });
     }
+
+    private void deliverCallback(final Intent callbackIntent) {
+        mMainHandler.post(new Runnable() {
+
+            @Override
+            public void run() {
+                deliverCallbackOnUiThread(callbackIntent);
+            }
+        });
+    }
+
+    void deliverCallbackOnUiThread(final Intent callbackIntent) {
+        // TODO: this assumes that if there are multiple instances of the same
+        // activity registered, the last one registered is the one waiting for
+        // the callback. Validity of this assumption needs to be verified.
+        synchronized (sListeners) {
+            for (Listener listener : sListeners) {
+                if (callbackIntent.getComponent().equals(
+                        ((Activity) listener).getIntent().getComponent())) {
+                    listener.onServiceCompleted(callbackIntent);
+                    return;
+                }
+            }
+        }
+    }
 }
diff --git a/src/com/android/contacts/ContactsActivity.java b/src/com/android/contacts/ContactsActivity.java
index 79ebecb..b78fad2 100644
--- a/src/com/android/contacts/ContactsActivity.java
+++ b/src/com/android/contacts/ContactsActivity.java
@@ -20,12 +20,16 @@
 
 import android.app.Activity;
 import android.content.ContentResolver;
+import android.content.Intent;
 import android.content.SharedPreferences;
+import android.os.Bundle;
 
 /**
  * A common superclass for Contacts activities that handles application-wide services.
  */
-public abstract class ContactsActivity extends Activity {
+public abstract class ContactsActivity extends Activity
+    implements ContactSaveService.Listener
+{
 
     private ContentResolver mContentResolver;
 
@@ -65,4 +69,21 @@
 
         return getApplicationContext().getSystemService(name);
     }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        ContactSaveService.registerListener(this);
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    protected void onDestroy() {
+        ContactSaveService.unregisterListener(this);
+        super.onDestroy();
+    }
+
+    @Override
+    public void onServiceCompleted(Intent callbackIntent) {
+        onNewIntent(callbackIntent);
+    }
 }
diff --git a/src/com/android/contacts/ContactsApplication.java b/src/com/android/contacts/ContactsApplication.java
index 8346c04..c925ec0 100644
--- a/src/com/android/contacts/ContactsApplication.java
+++ b/src/com/android/contacts/ContactsApplication.java
@@ -31,6 +31,7 @@
 
     private static InjectedServices sInjectedServices;
     private AccountTypeManager mAccountTypeManager;
+    private ContactPhotoManager mContactPhotoManager;
 
     /**
      * Overrides the system services with mocks for testing.
@@ -82,6 +83,14 @@
             return mAccountTypeManager;
         }
 
+        if (ContactPhotoManager.CONTACT_PHOTO_SERVICE.equals(name)) {
+            if (mContactPhotoManager == null) {
+                mContactPhotoManager = ContactPhotoManager.createContactPhotoManager(this);
+                mContactPhotoManager.preloadPhotosInBackground();
+            }
+            return mContactPhotoManager;
+        }
+
         return super.getSystemService(name);
     }
 
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index 9943e2d..7ca5921 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -29,7 +29,6 @@
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.View.OnFocusChangeListener;
 import android.widget.SearchView;
 import android.widget.SearchView.OnCloseListener;
 import android.widget.SearchView.OnQueryTextListener;
@@ -38,8 +37,8 @@
 /**
  * Adapter for the action bar at the top of the Contacts activity.
  */
-public class ActionBarAdapter implements OnQueryTextListener, OnCloseListener,
-        ContactListFilterListener, OnFocusChangeListener {
+public class ActionBarAdapter
+        implements OnQueryTextListener, OnCloseListener, ContactListFilterListener {
 
     public interface Listener {
         void onAction();
@@ -95,7 +94,6 @@
 
         mSearchView.setOnQueryTextListener(this);
         mSearchView.setOnCloseListener(this);
-        mSearchView.setOnQueryTextFocusChangeListener(this);
         mSearchView.setQuery(mQueryString, false);
         mSearchView.setQueryHint(mContext.getString(R.string.hint_findContacts));
 
@@ -117,13 +115,6 @@
         mFilterController.addListener(this);
     }
 
-    @Override
-    public void onFocusChange(View v, boolean hasFocus) {
-        if (v == mSearchView && hasFocus) {
-            setSearchMode(true);
-        }
-    }
-
     public boolean isSearchMode() {
         return mSearchMode;
     }
diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java
index 4c2411c..e888bc0 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/ContactBrowserActivity.java
@@ -498,7 +498,7 @@
 
         @Override
         public void onDeleteContactAction(Uri contactUri) {
-            ContactDeletionInteraction.start(ContactBrowserActivity.this, contactUri);
+            ContactDeletionInteraction.start(ContactBrowserActivity.this, contactUri, false);
         }
 
         @Override
@@ -545,7 +545,7 @@
 
         @Override
         public void onDeleteRequested(Uri contactUri) {
-            ContactDeletionInteraction.start(ContactBrowserActivity.this, contactUri);
+            ContactDeletionInteraction.start(ContactBrowserActivity.this, contactUri, false);
         }
 
         @Override
diff --git a/src/com/android/contacts/activities/ContactDetailActivity.java b/src/com/android/contacts/activities/ContactDetailActivity.java
index ca26280..56e8353 100644
--- a/src/com/android/contacts/activities/ContactDetailActivity.java
+++ b/src/com/android/contacts/activities/ContactDetailActivity.java
@@ -94,7 +94,7 @@
 
         @Override
         public void onDeleteRequested(Uri contactUri) {
-            ContactDeletionInteraction.start(ContactDetailActivity.this, contactUri);
+            ContactDeletionInteraction.start(ContactDetailActivity.this, contactUri, true);
         }
 
         @Override
diff --git a/src/com/android/contacts/activities/ContactEditorActivity.java b/src/com/android/contacts/activities/ContactEditorActivity.java
index 00e0ab0..35f7413 100644
--- a/src/com/android/contacts/activities/ContactEditorActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorActivity.java
@@ -50,6 +50,7 @@
     private static final String TAG = "ContactEditorActivity";
 
     public static final String ACTION_JOIN_COMPLETED = "joinCompleted";
+    public static final String ACTION_SAVE_COMPLETED = "saveCompleted";
 
     private ContactEditorFragment mFragment;
     private Button mDoneButton;
@@ -70,6 +71,11 @@
             return;
         }
 
+        if (ACTION_SAVE_COMPLETED.equals(action)) {
+            finish();
+            return;
+        }
+
         setContentView(R.layout.contact_editor_activity);
 
         // This Activity will always fall back to the "top" Contacts screen when touched on the
@@ -113,6 +119,10 @@
         String action = intent.getAction();
         if (Intent.ACTION_EDIT.equals(action)) {
             mFragment.setIntentExtras(intent.getExtras());
+        } else if (ACTION_SAVE_COMPLETED.equals(action)) {
+            mFragment.onSaveCompleted(true,
+                    intent.getIntExtra(ContactEditorFragment.SAVE_MODE_EXTRA_KEY, SaveMode.CLOSE),
+                    intent.getData());
         } else if (ACTION_JOIN_COMPLETED.equals(action)) {
             mFragment.onJoinCompleted(intent.getData());
         }
@@ -195,7 +205,7 @@
 
         @Override
         public void onDeleteRequested(Uri contactUri) {
-            ContactDeletionInteraction.start(ContactEditorActivity.this, contactUri);
+            ContactDeletionInteraction.start(ContactEditorActivity.this, contactUri, true);
         }
 
         @Override
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
index 5dde900..42b3293 100644
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/detail/ContactDetailFragment.java
@@ -60,6 +60,7 @@
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.ServiceManager;
+import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Email;
 import android.provider.ContactsContract.CommonDataKinds.Event;
 import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
@@ -409,7 +410,8 @@
                 if (kind == null) continue;
 
                 final ViewEntry entry = ViewEntry.fromValues(mContext, mimeType, kind, dataId,
-                        entryValues);
+                        entryValues, mContactData.isDirectoryEntry(),
+                        mContactData.getDirectoryId());
 
                 final boolean hasData = !TextUtils.isEmpty(entry.data);
                 Integer superPrimary = entryValues.getAsInteger(Data.IS_SUPER_PRIMARY);
@@ -444,7 +446,6 @@
                         entry.actionIcon = -1;
                     }
 
-
                     // Remember super-primary phone
                     if (isSuperPrimary) mPrimaryPhoneUri = entry.uri;
 
@@ -463,8 +464,9 @@
                         final String imMime = Im.CONTENT_ITEM_TYPE;
                         final DataKind imKind = accountTypes.getKindOrFallback(accountType,
                                 imMime);
-                        final ViewEntry imEntry = ViewEntry.fromValues(mContext,
-                                imMime, imKind, dataId, entryValues);
+                        final ViewEntry imEntry = ViewEntry.fromValues(mContext, imMime, imKind,
+                                dataId, entryValues, mContactData.isDirectoryEntry(),
+                                mContactData.getDirectoryId());
                         buildImActions(imEntry, entryValues);
                         imEntry.applyStatus(status, false);
                         mImEntries.add(imEntry);
@@ -472,7 +474,8 @@
                 } else if (StructuredPostal.CONTENT_ITEM_TYPE.equals(mimeType) && hasData) {
                     // Build postal entries
                     entry.maxLines = 4;
-                    entry.intent = new Intent(Intent.ACTION_VIEW, entry.uri);
+                    entry.intent = new Intent(
+                            Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=" + Uri.encode(entry.data)));
                     mPostalEntries.add(entry);
                 } else if (Im.CONTENT_ITEM_TYPE.equals(mimeType) && hasData) {
                     // Build IM entries
@@ -546,7 +549,8 @@
                     mRelationEntries.add(entry);
                 } else {
                     // Handle showing custom rows
-                    entry.intent = new Intent(Intent.ACTION_VIEW, entry.uri);
+                    entry.intent = new Intent(Intent.ACTION_VIEW);
+                    entry.intent.setDataAndType(entry.uri, entry.mimetype);
 
                     // Use social summary when requested by external source
                     final DataStatus status = mContactData.getStatuses().get(entry.id);
@@ -720,11 +724,15 @@
          * Build new {@link ViewEntry} and populate from the given values.
          */
         public static ViewEntry fromValues(Context context, String mimeType, DataKind kind,
-                long dataId, ContentValues values) {
+                long dataId, ContentValues values, boolean isDirectoryEntry, long directoryId) {
             final ViewEntry entry = new ViewEntry();
             entry.context = context;
             entry.id = dataId;
             entry.uri = ContentUris.withAppendedId(Data.CONTENT_URI, entry.id);
+            if (isDirectoryEntry) {
+                entry.uri = entry.uri.buildUpon().appendQueryParameter(
+                        ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(directoryId)).build();
+            }
             entry.mimetype = mimeType;
             entry.kind = (kind.titleRes == -1 || kind.titleRes == 0) ? ""
                     : context.getString(kind.titleRes);
diff --git a/src/com/android/contacts/editor/AggregationSuggestionView.java b/src/com/android/contacts/editor/AggregationSuggestionView.java
index 5403731..af8e7f8 100644
--- a/src/com/android/contacts/editor/AggregationSuggestionView.java
+++ b/src/com/android/contacts/editor/AggregationSuggestionView.java
@@ -136,7 +136,7 @@
 
     @Override
     public boolean performClick() {
-        if (mListener != null) {
+        if (mListener != null && isEnabled()) {
             if (canEditSuggestedContact()) {
                 mListener.onEditAction(Contacts.getLookupUri(mContactId, mLookupKey));
             } else {
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index b117d77..ae6788b 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -31,8 +31,6 @@
 import com.android.contacts.model.EntityDeltaList;
 import com.android.contacts.model.EntityModifier;
 import com.android.contacts.model.GoogleAccountType;
-import com.android.contacts.util.EmptyService;
-import com.android.contacts.util.WeakAsyncTask;
 
 import android.accounts.Account;
 import android.app.Activity;
@@ -43,9 +41,6 @@
 import android.app.LoaderManager;
 import android.app.LoaderManager.LoaderCallbacks;
 import android.content.ActivityNotFoundException;
-import android.content.ContentProviderOperation;
-import android.content.ContentProviderResult;
-import android.content.ContentResolver;
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.Context;
@@ -54,7 +49,6 @@
 import android.content.Entity;
 import android.content.Intent;
 import android.content.Loader;
-import android.content.OperationApplicationException;
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.Rect;
@@ -62,22 +56,18 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Environment;
-import android.os.RemoteException;
 import android.os.SystemClock;
-import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Email;
 import android.provider.ContactsContract.CommonDataKinds.Event;
 import android.provider.ContactsContract.CommonDataKinds.Note;
 import android.provider.ContactsContract.CommonDataKinds.Organization;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.CommonDataKinds.Website;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Intents;
 import android.provider.ContactsContract.RawContacts;
 import android.provider.MediaStore;
-import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -115,10 +105,12 @@
     private static final String KEY_RAW_CONTACT_ID_REQUESTING_PHOTO = "photorequester";
     private static final String KEY_VIEW_ID_GENERATOR = "viewidgenerator";
     private static final String KEY_CURRENT_PHOTO_FILE = "currentphotofile";
-    private static final String KEY_QUERY_SELECTION = "queryselection";
     private static final String KEY_CONTACT_ID_FOR_JOIN = "contactidforjoin";
     private static final String KEY_SHOW_JOIN_SUGGESTIONS = "showJoinSuggestions";
     private static final String KEY_ENABLED = "enabled";
+    private static final String KEY_STATUS = "status";
+
+    public static final String SAVE_MODE_EXTRA_KEY = "saveMode";
 
     /**
      * An intent extra that forces the editor to add the edited contact
@@ -168,15 +160,23 @@
         public static final int EDITING = 1;
 
         /**
-         * The data is currently being saved. This is used to prevent more auto-saves (they shouldn't
-         * overlap)
+         * The data is currently being saved. This is used to prevent more
+         * auto-saves (they shouldn't overlap)
          */
         public static final int SAVING = 2;
 
         /**
-         * Prevents any more savings (this is used if Save/Close or Revert was executed by the user)
+         * Prevents any more saves. This is used if in the following cases:
+         * - After Save/Close
+         * - After Revert
+         * - After the user has accepted an edit suggestion
          */
         public static final int CLOSING = 3;
+
+        /**
+         * Prevents saving while running a child activity.
+         */
+        public static final int SUB_ACTIVITY = 4;
     }
 
     private static final int REQUEST_CODE_JOIN = 0;
@@ -215,8 +215,6 @@
     private Bundle mIntentExtras;
     private Listener mListener;
 
-    private String mQuerySelection;
-
     private long mContactIdForJoin;
 
     private LinearLayout mContent;
@@ -227,7 +225,6 @@
     private long mLoaderStartTime;
 
     private int mStatus;
-    private boolean mSaveOnStop = true;
 
     private AggregationSuggestionEngine mAggregationSuggestionEngine;
     private long mAggregationSuggestionsRawContactId;
@@ -236,6 +233,7 @@
     private boolean mAutoAddToDefaultGroup;
 
     private boolean mEnabled = true;
+    private boolean mRequestFocus;
 
     public ContactEditorFragment() {
     }
@@ -249,6 +247,7 @@
                     mContent.getChildAt(i).setEnabled(enabled);
                 }
             }
+            setAggregationSuggestionViewEnabled(enabled);
             final Activity activity = getActivity();
             if (activity != null) activity.invalidateOptionsMenu();
         }
@@ -268,7 +267,7 @@
         }
 
         // If anything was left unsaved, save it now but keep the editor open.
-        if (!getActivity().isChangingConfigurations() && mStatus == Status.EDITING && mSaveOnStop) {
+        if (!getActivity().isChangingConfigurations() && mStatus == Status.EDITING) {
             save(SaveMode.RELOAD);
         }
     }
@@ -316,6 +315,8 @@
                     // Load Accounts async so that we can present them
                     selectAccountAndCreateContact();
                 }
+            } else if (ContactEditorActivity.ACTION_SAVE_COMPLETED.equals(mAction)) {
+                // do nothing
             } else throw new IllegalArgumentException("Unknown Action String " + mAction +
                     ". Only support " + Intent.ACTION_EDIT + " or " + Intent.ACTION_INSERT);
         }
@@ -323,7 +324,6 @@
 
     @Override
     public void onStart() {
-        mSaveOnStop = true;
         getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupLoaderListener);
         super.onStart();
     }
@@ -364,11 +364,10 @@
             if (fileName != null) {
                 mCurrentPhotoFile = new File(fileName);
             }
-            mQuerySelection = savedState.getString(KEY_QUERY_SELECTION);
             mContactIdForJoin = savedState.getLong(KEY_CONTACT_ID_FOR_JOIN);
             mAggregationSuggestionsRawContactId = savedState.getLong(KEY_SHOW_JOIN_SUGGESTIONS);
             mEnabled = savedState.getBoolean(KEY_ENABLED);
-            mStatus = Status.EDITING;
+            mStatus = savedState.getInt(KEY_STATUS);
         }
     }
 
@@ -409,22 +408,12 @@
     private void bindEditorsForExistingContact(ContactLoader.Result data) {
         setEnabled(true);
 
-        // Build Filter mQuerySelection
-        final ArrayList<Entity> entities = data.getEntities();
-        final StringBuilder sb = new StringBuilder(RawContacts._ID + " IN(");
-        final int count = entities.size();
-        for (int i = 0; i < count; i++) {
-            if (i > 0) {
-                sb.append(',');
-            }
-            sb.append(entities.get(i).getEntityValues().get(RawContacts._ID));
-        }
-        sb.append(")");
-        mQuerySelection = sb.toString();
-        mState = EntityDeltaList.fromIterator(entities.iterator());
+        mState = EntityDeltaList.fromIterator(data.getEntities().iterator());
         setIntentExtras(mIntentExtras);
         mIntentExtras = null;
 
+        mRequestFocus = true;
+
         bindEditors();
     }
 
@@ -488,6 +477,8 @@
     }
 
     private void bindEditorsForNewContact(Account account, final AccountType accountType) {
+        mStatus = Status.EDITING;
+
         final ContentValues values = new ContentValues();
         if (account != null) {
             values.put(RawContacts.ACCOUNT_NAME, account.name);
@@ -519,6 +510,8 @@
             mState.add(insert);
         }
 
+        mRequestFocus = true;
+
         bindEditors();
     }
 
@@ -562,19 +555,30 @@
                     new PhotoEditorListener(editor, type.readOnly));
             if (editor instanceof RawContactEditorView) {
                 final RawContactEditorView rawContactEditor = (RawContactEditorView) editor;
-                final TextFieldsEditorView nameEditor = rawContactEditor.getNameEditor();
-                nameEditor.setEditorListener(new EditorListener() {
+                EditorListener listener = new EditorListener() {
 
                     @Override
                     public void onRequest(int request) {
-                        onContactNameChange(request, rawContactEditor, nameEditor);
+                        if (request == EditorListener.FIELD_CHANGED) {
+                            acquireAggregationSuggestions(rawContactEditor);
+                        }
                     }
 
                     @Override
                     public void onDeleted(Editor removedEditor) {
                     }
-                });
+                };
 
+                final TextFieldsEditorView nameEditor = rawContactEditor.getNameEditor();
+                if (mRequestFocus) {
+                    nameEditor.requestFocus();
+                    mRequestFocus = false;
+                }
+                nameEditor.setEditorListener(listener);
+
+                final TextFieldsEditorView phoneticNameEditor =
+                        rawContactEditor.getPhoneticNameEditor();
+                phoneticNameEditor.setEditorListener(listener);
                 rawContactEditor.setAutoAddToDefaultGroup(mAutoAddToDefaultGroup);
 
                 if (rawContactId == mAggregationSuggestionsRawContactId) {
@@ -583,6 +587,8 @@
             }
         }
 
+        mRequestFocus = false;
+
         bindGroupMetaData();
 
         // Show editor now that we've loaded state
@@ -592,6 +598,7 @@
         // Activity can be null if we have been detached from the Activity
         final Activity activity = getActivity();
         if (activity != null) activity.invalidateOptionsMenu();
+
     }
 
     private void bindGroupMetaData() {
@@ -671,14 +678,12 @@
 
         // If we just started creating a new contact and haven't added any data, it's too
         // early to do a join
-        if (mState.size() == 1 && mState.get(0).isContactInsert()) {
-            final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
-            EntityModifier.trimEmpty(mState, accountTypes);
-            if (mState.buildDiff().isEmpty()) {
-                Toast.makeText(getActivity(), R.string.toast_join_with_empty_contact,
-                                Toast.LENGTH_LONG).show();
-                return true;
-            }
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
+        if (mState.size() == 1 && mState.get(0).isContactInsert()
+                && !EntityModifier.hasChanges(mState, accountTypes)) {
+            Toast.makeText(getActivity(), R.string.toast_join_with_empty_contact,
+                            Toast.LENGTH_LONG).show();
+            return true;
         }
 
         return save(SaveMode.JOIN);
@@ -739,7 +744,7 @@
 
             // Launch gallery to crop the photo
             final Intent intent = getCropImageIntent(Uri.fromFile(f));
-            mSaveOnStop = false;
+            mStatus = Status.SUB_ACTIVITY;
             startActivityForResult(intent, REQUEST_CODE_PHOTO_PICKED_WITH_DATA);
         } catch (Exception e) {
             Log.e(TAG, "Cannot crop image", e);
@@ -767,29 +772,29 @@
      * finishes the activity.
      */
     public boolean save(int saveMode) {
-        if (!hasValidState()) {
+        if (!hasValidState() || mStatus != Status.EDITING) {
             return false;
         }
 
         // If we are about to close the editor - there is no need to refresh the data
-        if (saveMode == SaveMode.CLOSE) {
+        if (saveMode == SaveMode.CLOSE || saveMode == SaveMode.SPLIT) {
             getLoaderManager().destroyLoader(LOADER_DATA);
         }
 
         mStatus = Status.SAVING;
 
-        // Trim any empty fields, and RawContacts, before persisting
         final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
-        EntityModifier.trimEmpty(mState, accountTypes);
-
-        if (mState.buildDiff().isEmpty()) {
-            onSaveCompleted(true, saveMode, mLookupUri);
+        if (!EntityModifier.hasChanges(mState, accountTypes)) {
+            onSaveCompleted(false, saveMode, mLookupUri);
             return true;
         }
 
-        final PersistTask task = new PersistTask(this, saveMode);
-        task.execute(mState);
+        setEnabled(false);
 
+        Intent intent = ContactSaveService.createSaveContactIntent(getActivity(), mState,
+                SAVE_MODE_EXTRA_KEY, saveMode, getActivity().getClass(),
+                ContactEditorActivity.ACTION_SAVE_COMPLETED);
+        getActivity().startService(intent);
         return true;
     }
 
@@ -822,7 +827,8 @@
     }
 
     private boolean revert() {
-        if (mState == null || mState.buildDiff().isEmpty()) {
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
+        if (mState == null || !EntityModifier.hasChanges(mState, accountTypes)) {
             doRevertAction();
         } else {
             CancelEditDialogFragment.show(this);
@@ -837,11 +843,21 @@
     }
 
     public void onJoinCompleted(Uri uri) {
-        onSaveCompleted(uri != null, SaveMode.RELOAD, uri);
+        onSaveCompleted(false, SaveMode.RELOAD, uri);
     }
 
-    public void onSaveCompleted(boolean success, int saveMode, Uri contactLookupUri) {
-        Log.d(TAG, "onSaveCompleted(" + success + ", " + saveMode + ", " + contactLookupUri);
+    public void onSaveCompleted(boolean hadChanges, int saveMode, Uri contactLookupUri) {
+        boolean success = contactLookupUri != null;
+        Log.d(TAG, "onSaveCompleted(" + saveMode + ", " + contactLookupUri);
+        if (hadChanges) {
+            if (success) {
+                if (saveMode != SaveMode.JOIN) {
+                    Toast.makeText(mContext, R.string.contactSavedToast, Toast.LENGTH_SHORT).show();
+                }
+            } else {
+                Toast.makeText(mContext, R.string.contactSavedErrorToast, Toast.LENGTH_LONG).show();
+            }
+        }
         switch (saveMode) {
             case SaveMode.CLOSE:
             case SaveMode.HOME:
@@ -877,6 +893,7 @@
                 if (mListener != null) mListener.onSaveFinished(resultCode, resultIntent,
                         saveMode == SaveMode.HOME);
                 break;
+
             case SaveMode.RELOAD:
             case SaveMode.JOIN:
                 if (success && contactLookupUri != null) {
@@ -893,14 +910,14 @@
                     }
                 }
                 break;
+
             case SaveMode.SPLIT:
-                setEnabled(true);
+                mStatus = Status.CLOSING;
                 if (mListener != null) {
                     mListener.onContactSplit(contactLookupUri);
                 } else {
                     Log.d(TAG, "No listener registered, can not call onSplitFinished");
                 }
-                mStatus = Status.EDITING;
                 break;
         }
     }
@@ -1087,119 +1104,17 @@
      * Returns the contact ID for the currently edited contact or 0 if the contact is new.
      */
     protected long getContactId() {
-        for (EntityDelta rawContact : mState) {
-            Long contactId = rawContact.getValues().getAsLong(RawContacts.CONTACT_ID);
-            if (contactId != null) {
-                return contactId;
+        if (mState != null) {
+            for (EntityDelta rawContact : mState) {
+                Long contactId = rawContact.getValues().getAsLong(RawContacts.CONTACT_ID);
+                if (contactId != null) {
+                    return contactId;
+                }
             }
         }
         return 0;
     }
 
-
-    private void onContactNameChange(int request, final RawContactEditorView rawContactEditor,
-            TextFieldsEditorView nameEditor) {
-
-        switch (request) {
-            case EditorListener.EDITOR_FORM_CHANGED:
-                if (nameEditor.hasShortAndLongForms()) {
-                    if (nameEditor.areOptionalFieldsVisible()) {
-                        switchFromFullNameToStructuredName(nameEditor);
-                    } else {
-                        switchFromStructuredNameToFullName(nameEditor);
-                    }
-                }
-                break;
-
-            case EditorListener.FIELD_CHANGED:
-                if (nameEditor.hasShortAndLongForms()) {
-                    if (nameEditor.areOptionalFieldsVisible()) {
-                        eraseFullName(nameEditor.getValues());
-                    } else {
-                        eraseStructuredName(nameEditor.getValues());
-                    }
-                }
-                acquireAggregationSuggestions(rawContactEditor);
-                break;
-        }
-    }
-
-    private void switchFromFullNameToStructuredName(LabeledEditorView nameEditor) {
-        ValuesDelta values = nameEditor.getValues();
-
-        String displayName = values.getAsString(StructuredName.DISPLAY_NAME);
-        if (displayName == null) {
-            displayName = "";
-        }
-
-        Uri uri = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name")
-                .appendQueryParameter(StructuredName.DISPLAY_NAME, displayName).build();
-        Cursor cursor = getActivity().getContentResolver().query(uri, new String[]{
-                StructuredName.PREFIX,
-                StructuredName.GIVEN_NAME,
-                StructuredName.MIDDLE_NAME,
-                StructuredName.FAMILY_NAME,
-                StructuredName.SUFFIX,
-        }, null, null, null);
-
-        try {
-            if (cursor.moveToFirst()) {
-                eraseFullName(values);
-                values.put(StructuredName.PREFIX, cursor.getString(0));
-                values.put(StructuredName.GIVEN_NAME, cursor.getString(1));
-                values.put(StructuredName.MIDDLE_NAME, cursor.getString(2));
-                values.put(StructuredName.FAMILY_NAME, cursor.getString(3));
-                values.put(StructuredName.SUFFIX, cursor.getString(4));
-            }
-        } finally {
-            cursor.close();
-        }
-    }
-
-    private void switchFromStructuredNameToFullName(LabeledEditorView nameEditor) {
-        ValuesDelta values = nameEditor.getValues();
-
-        Uri.Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath(
-                "complete_name");
-        appendQueryParameter(builder, values, StructuredName.PREFIX);
-        appendQueryParameter(builder, values, StructuredName.GIVEN_NAME);
-        appendQueryParameter(builder, values, StructuredName.MIDDLE_NAME);
-        appendQueryParameter(builder, values, StructuredName.FAMILY_NAME);
-        appendQueryParameter(builder, values, StructuredName.SUFFIX);
-        Uri uri = builder.build();
-        Cursor cursor = getActivity().getContentResolver().query(uri, new String[]{
-                StructuredName.DISPLAY_NAME,
-        }, null, null, null);
-
-        try {
-            if (cursor.moveToFirst()) {
-                eraseStructuredName(values);
-                values.put(StructuredName.DISPLAY_NAME, cursor.getString(0));
-            }
-        } finally {
-            cursor.close();
-        }
-    }
-
-    private void eraseFullName(ValuesDelta values) {
-        values.putNull(StructuredName.DISPLAY_NAME);
-    }
-
-    private void eraseStructuredName(ValuesDelta values) {
-        values.putNull(StructuredName.PREFIX);
-        values.putNull(StructuredName.GIVEN_NAME);
-        values.putNull(StructuredName.MIDDLE_NAME);
-        values.putNull(StructuredName.FAMILY_NAME);
-        values.putNull(StructuredName.SUFFIX);
-    }
-
-    private void appendQueryParameter(Uri.Builder builder, ValuesDelta values, String field) {
-        String value = values.getAsString(field);
-        if (!TextUtils.isEmpty(value)) {
-            builder.appendQueryParameter(field, value);
-        }
-    }
-
     /**
      * Triggers an asynchronous search for aggregation suggestions.
      */
@@ -1228,7 +1143,7 @@
 
     @Override
     public void onAggregationSuggestionChange() {
-        if (!isAdded() || mState == null) {
+        if (!isAdded() || mState == null || mStatus != Status.EDITING) {
             return;
         }
 
@@ -1275,6 +1190,7 @@
         }
 
         adjustAggregationSuggestionViewLayout(rawContactView);
+        setAggregationSuggestionViewEnabled(mEnabled);
         mAggregationSuggestionView.setVisibility(View.VISIBLE);
 
         if (requestOnScreen) {
@@ -1351,6 +1267,10 @@
      * contacts), save all changes, and stay in the editor.
      */
     protected void doJoinSuggestedContact(long[] rawContactIds) {
+        if (!hasValidState() || mStatus != Status.EDITING) {
+            return;
+        }
+
         mState.setJoinWithRawContacts(rawContactIds);
         save(SaveMode.RELOAD);
     }
@@ -1396,6 +1316,8 @@
      */
     protected void doEditSuggestedContact(Uri contactUri) {
         if (mListener != null) {
+            // make sure we don't save this contact when closing down
+            mStatus = Status.CLOSING;
             mListener.onEditOtherContactRequested(
                     contactUri, mState.get(0).getContentValues());
         }
@@ -1415,6 +1337,19 @@
         mContent.requestRectangleOnScreen(rect);
     }
 
+    public void setAggregationSuggestionViewEnabled(boolean enabled) {
+        if (mAggregationSuggestionView == null) {
+            return;
+        }
+
+        LinearLayout itemList = (LinearLayout) mAggregationSuggestionView.findViewById(
+                R.id.aggregation_suggestions);
+        int count = itemList.getChildCount();
+        for (int i = 0; i < count; i++) {
+            itemList.getChildAt(i).setEnabled(enabled);
+        }
+    }
+
     /**
      * Computes bounds of the supplied view relative to its ascendant.
      */
@@ -1430,133 +1365,6 @@
         return rect;
     }
 
-    // TODO: There has to be a nicer way than this WeakAsyncTask...? Maybe call a service?
-    /**
-     * Background task for persisting edited contact data, using the changes
-     * defined by a set of {@link EntityDelta}. This task starts
-     * {@link EmptyService} to make sure the background thread can finish
-     * persisting in cases where the system wants to reclaim our process.
-     */
-    public static class PersistTask extends
-            WeakAsyncTask<EntityDeltaList, Void, Integer, ContactEditorFragment> {
-        private static final int PERSIST_TRIES = 3;
-
-        private static final int RESULT_UNCHANGED = 0;
-        private static final int RESULT_SUCCESS = 1;
-        private static final int RESULT_FAILURE = 2;
-
-        private final Context mContext;
-
-        private int mSaveMode;
-        private Uri mContactLookupUri = null;
-
-        public PersistTask(ContactEditorFragment target, int saveMode) {
-            super(target);
-            mSaveMode = saveMode;
-            mContext = target.mContext;
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        protected void onPreExecute(ContactEditorFragment target) {
-            target.setEnabled(false);
-
-            // Before starting this task, start an empty service to protect our
-            // process from being reclaimed by the system.
-            mContext.startService(new Intent(mContext, EmptyService.class));
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        protected Integer doInBackground(ContactEditorFragment target, EntityDeltaList... params) {
-            final ContentResolver resolver = mContext.getContentResolver();
-
-            EntityDeltaList state = params[0];
-
-            // Attempt to persist changes
-            int tries = 0;
-            Integer result = RESULT_FAILURE;
-            while (tries++ < PERSIST_TRIES) {
-                try {
-                    // Build operations and try applying
-                    final ArrayList<ContentProviderOperation> diff = state.buildDiff();
-                    ContentProviderResult[] results = null;
-                    if (!diff.isEmpty()) {
-                        results = resolver.applyBatch(ContactsContract.AUTHORITY, diff);
-                    }
-
-                    final long rawContactId = getRawContactId(state, diff, results);
-                    if (rawContactId != -1) {
-                        final Uri rawContactUri = ContentUris.withAppendedId(
-                                RawContacts.CONTENT_URI, rawContactId);
-
-                        // convert the raw contact URI to a contact URI
-                        mContactLookupUri = RawContacts.getContactLookupUri(resolver,
-                                rawContactUri);
-                        Log.d(TAG, "Looked up RawContact Uri " + rawContactUri +
-                                " into ContactLookupUri " + mContactLookupUri);
-                    } else {
-                        Log.w(TAG, "Could not determine RawContact ID after save");
-                    }
-                    result = (diff.size() > 0) ? RESULT_SUCCESS : RESULT_UNCHANGED;
-                    break;
-
-                } catch (RemoteException e) {
-                    // Something went wrong, bail without success
-                    Log.e(TAG, "Problem persisting user edits", e);
-                    break;
-
-                } catch (OperationApplicationException e) {
-                    // Version consistency failed, re-parent change and try again
-                    Log.w(TAG, "Version consistency failed, re-parenting: " + e.toString());
-                    final EntityDeltaList newState = EntityDeltaList.fromQuery(resolver,
-                            target.mQuerySelection, null, null);
-                    state = EntityDeltaList.mergeAfter(newState, state);
-                }
-            }
-
-            return result;
-        }
-
-        private long getRawContactId(EntityDeltaList state,
-                final ArrayList<ContentProviderOperation> diff,
-                final ContentProviderResult[] results) {
-            long rawContactId = state.findRawContactId();
-            if (rawContactId != -1) {
-                return rawContactId;
-            }
-
-
-            // we gotta do some searching for the id
-            final int diffSize = diff.size();
-            for (int i = 0; i < diffSize; i++) {
-                ContentProviderOperation operation = diff.get(i);
-                if (operation.getType() == ContentProviderOperation.TYPE_INSERT
-                        && operation.getUri().getEncodedPath().contains(
-                                RawContacts.CONTENT_URI.getEncodedPath())) {
-                    return ContentUris.parseId(results[i].uri);
-                }
-            }
-            return -1;
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        protected void onPostExecute(ContactEditorFragment target, Integer result) {
-            Log.d(TAG, "onPostExecute(something," + result + "). mSaveMode=" + mSaveMode);
-            if (result == RESULT_SUCCESS && mSaveMode != SaveMode.JOIN) {
-                Toast.makeText(mContext, R.string.contactSavedToast, Toast.LENGTH_SHORT).show();
-            } else if (result == RESULT_FAILURE) {
-                Toast.makeText(mContext, R.string.contactSavedErrorToast, Toast.LENGTH_LONG).show();
-            }
-
-            // Stop the service that was protecting us
-            mContext.stopService(new Intent(mContext, EmptyService.class));
-
-            target.onSaveCompleted(result != RESULT_FAILURE, mSaveMode, mContactLookupUri);
-        }
-    }
-
     @Override
     public void onSaveInstanceState(Bundle outState) {
         outState.putParcelable(KEY_URI, mLookupUri);
@@ -1572,15 +1380,19 @@
         if (mCurrentPhotoFile != null) {
             outState.putString(KEY_CURRENT_PHOTO_FILE, mCurrentPhotoFile.toString());
         }
-        outState.putString(KEY_QUERY_SELECTION, mQuerySelection);
         outState.putLong(KEY_CONTACT_ID_FOR_JOIN, mContactIdForJoin);
         outState.putLong(KEY_SHOW_JOIN_SUGGESTIONS, mAggregationSuggestionsRawContactId);
         outState.putBoolean(KEY_ENABLED, mEnabled);
+        outState.putInt(KEY_STATUS, mStatus);
         super.onSaveInstanceState(outState);
     }
 
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (mStatus == Status.SUB_ACTIVITY) {
+            mStatus = Status.EDITING;
+        }
+
         // Ignore failed requests
         if (resultCode != Activity.RESULT_OK) return;
         switch (requestCode) {
@@ -1825,7 +1637,7 @@
                 mCurrentPhotoFile = new File(PHOTO_DIR, getPhotoFileName());
                 final Intent intent = getTakePickIntent(mCurrentPhotoFile);
 
-                mSaveOnStop = false;
+                mStatus = Status.SUB_ACTIVITY;
                 startActivityForResult(intent, REQUEST_CODE_CAMERA_WITH_DATA);
             } catch (ActivityNotFoundException e) {
                 Toast.makeText(mContext, R.string.photoPickerNotFoundText,
@@ -1842,7 +1654,7 @@
             try {
                 // Launch picker to choose photo for selected contact
                 final Intent intent = getPhotoPickIntent();
-                mSaveOnStop = false;
+                mStatus = Status.SUB_ACTIVITY;
                 startActivityForResult(intent, REQUEST_CODE_PHOTO_PICKED_WITH_DATA);
             } catch (ActivityNotFoundException e) {
                 Toast.makeText(mContext, R.string.photoPickerNotFoundText,
diff --git a/src/com/android/contacts/editor/EventFieldEditorView.java b/src/com/android/contacts/editor/EventFieldEditorView.java
index 7345dbb..906dbad 100644
--- a/src/com/android/contacts/editor/EventFieldEditorView.java
+++ b/src/com/android/contacts/editor/EventFieldEditorView.java
@@ -40,6 +40,7 @@
 import java.text.ParsePosition;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.Locale;
 
 /**
  * Editor that allows editing Events using a {@link DatePickerDialog}
@@ -175,7 +176,7 @@
         final String oldValue = getEntry().getAsString(column);
         final DataKind kind = getKind();
 
-        final Calendar calendar = Calendar.getInstance();
+        final Calendar calendar = Calendar.getInstance(DateUtils.UTC_TIMEZONE, Locale.US);
         final int defaultYear = calendar.get(Calendar.YEAR);
 
         // Check whether the year is optional
@@ -206,7 +207,7 @@
         final String oldValue = getEntry().getAsString(column);
         final DataKind kind = getKind();
 
-        final Calendar calendar = Calendar.getInstance();
+        final Calendar calendar = Calendar.getInstance(DateUtils.UTC_TIMEZONE, Locale.US);
         final int defaultYear = calendar.get(Calendar.YEAR);
 
         // Check whether the year is optional
@@ -245,7 +246,8 @@
             @Override
             public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                 if (year == 0 && !isYearOptional) throw new IllegalStateException();
-                final Calendar outCalendar = Calendar.getInstance();
+                final Calendar outCalendar =
+                        Calendar.getInstance(DateUtils.UTC_TIMEZONE, Locale.US);
 
                 // If no year specified, set it to 1900. The format string will ignore that year
                 // For formats other than Exchange, the time of the day is ignored
diff --git a/src/com/android/contacts/editor/KindSectionView.java b/src/com/android/contacts/editor/KindSectionView.java
index 4ce8dda..aaeafac 100644
--- a/src/com/android/contacts/editor/KindSectionView.java
+++ b/src/com/android/contacts/editor/KindSectionView.java
@@ -269,7 +269,13 @@
         }
 
         final View newField = createEditorView(values);
-        newField.requestFocus();
+        post(new Runnable() {
+
+            @Override
+            public void run() {
+                newField.requestFocus();
+            }
+        });
 
         // For non-lists (e.g. Notes we can only have one field. in that case we need to disable
         // the add button
diff --git a/src/com/android/contacts/editor/LabeledEditorView.java b/src/com/android/contacts/editor/LabeledEditorView.java
index 971a023..a6815a7 100644
--- a/src/com/android/contacts/editor/LabeledEditorView.java
+++ b/src/com/android/contacts/editor/LabeledEditorView.java
@@ -35,6 +35,7 @@
 import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.Handler;
+import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -326,11 +327,9 @@
         }
     }
 
-    /** {@inheritDoc} */
     @Override
     public void onFieldChanged(String column, String value) {
-        String oldValue = mEntry.getAsString(column);
-        if (oldValue == null && value.equals("") || oldValue != null && oldValue.equals(value)) {
+        if (!isFieldChanged(column, value)) {
             return;
         }
 
@@ -341,6 +340,15 @@
         }
     }
 
+    protected boolean isFieldChanged(String column, String value) {
+        final String dbValue = mEntry.getAsString(column);
+        // nullable fields (e.g. Middle Name) are usually represented as empty columns,
+        // so lets treat null and empty space equivalently here
+        final String dbValueNoNull = dbValue == null ? "" : dbValue;
+        final String valueNoNull = value == null ? "" : value;
+        return !TextUtils.equals(dbValueNoNull, valueNoNull);
+    }
+
     protected void rebuildValues() {
         setValues(mKind, mEntry, mState, mReadOnly, mViewIdGenerator);
     }
diff --git a/src/com/android/contacts/editor/PhoneticNameEditorView.java b/src/com/android/contacts/editor/PhoneticNameEditorView.java
new file mode 100644
index 0000000..d3aa00d
--- /dev/null
+++ b/src/com/android/contacts/editor/PhoneticNameEditorView.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.contacts.editor;
+
+import com.android.contacts.model.AccountType.DataKind;
+import com.android.contacts.model.EntityDelta;
+import com.android.contacts.model.EntityDelta.ValuesDelta;
+
+import android.content.Context;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+
+/**
+ * A dedicated editor for phonetic name. It is similar to {@link StructuredNameEditorView}.
+ */
+public class PhoneticNameEditorView extends TextFieldsEditorView {
+
+    private static class PhoneticValuesDelta extends ValuesDelta {
+        private ValuesDelta mValues;
+        private String mPhoneticName;
+
+        public PhoneticValuesDelta(ValuesDelta values) {
+            mValues = values;
+            buildPhoneticName();
+        }
+
+        @Override
+        public void put(String key, String value) {
+            if (key.equals(DataKind.PSEUDO_COLUMN_PHONETIC_NAME)) {
+                mPhoneticName = value;
+                parsePhoneticName(value);
+            } else {
+                mValues.put(key, value);
+                buildPhoneticName();
+            }
+        }
+
+        @Override
+        public String getAsString(String key) {
+            if (key.equals(DataKind.PSEUDO_COLUMN_PHONETIC_NAME)) {
+                return mPhoneticName;
+            } else {
+                return mValues.getAsString(key);
+            }
+        }
+
+        private void parsePhoneticName(String value) {
+            String family = null;
+            String middle = null;
+            String given = null;
+
+            if (!TextUtils.isEmpty(value)) {
+                String[] strings = value.split(" ", 3);
+                switch (strings.length) {
+                    case 1:
+                        family = strings[0];
+                        break;
+                    case 2:
+                        family = strings[0];
+                        given = strings[1];
+                        break;
+                    case 3:
+                        family = strings[0];
+                        middle = strings[1];
+                        given = strings[2];
+                        break;
+                }
+            }
+
+            mValues.put(StructuredName.PHONETIC_FAMILY_NAME, family);
+            mValues.put(StructuredName.PHONETIC_MIDDLE_NAME, middle);
+            mValues.put(StructuredName.PHONETIC_GIVEN_NAME, given);
+        }
+
+        private void buildPhoneticName() {
+            String family = mValues.getAsString(StructuredName.PHONETIC_FAMILY_NAME);
+            String middle = mValues.getAsString(StructuredName.PHONETIC_MIDDLE_NAME);
+            String given = mValues.getAsString(StructuredName.PHONETIC_GIVEN_NAME);
+
+            if (!TextUtils.isEmpty(family) || !TextUtils.isEmpty(middle)
+                    || !TextUtils.isEmpty(given)) {
+                StringBuilder sb = new StringBuilder();
+                if (!TextUtils.isEmpty(family)) {
+                    sb.append(family.trim()).append(' ');
+                }
+                if (!TextUtils.isEmpty(middle)) {
+                    sb.append(middle.trim()).append(' ');
+                }
+                if (!TextUtils.isEmpty(given)) {
+                    sb.append(given.trim()).append(' ');
+                }
+                sb.setLength(sb.length() - 1);  // Yank the last space
+                mPhoneticName = sb.toString();
+            } else {
+                mPhoneticName = null;
+            }
+        }
+
+        @Override
+        public Long getId() {
+            return mValues.getId();
+        }
+
+        @Override
+        public boolean isVisible() {
+            return mValues.isVisible();
+        }
+    }
+
+    public PhoneticNameEditorView(Context context) {
+        super(context);
+    }
+
+    public PhoneticNameEditorView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public PhoneticNameEditorView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override
+    public void setValues(DataKind kind, ValuesDelta entry, EntityDelta state, boolean readOnly,
+            ViewIdGenerator vig) {
+        if (!(entry instanceof PhoneticValuesDelta)) {
+            entry = new PhoneticValuesDelta(entry);
+        }
+        super.setValues(kind, entry, state, readOnly, vig);
+    }
+
+    public boolean hasData() {
+        ValuesDelta entry = getEntry();
+
+        String family = entry.getAsString(StructuredName.PHONETIC_FAMILY_NAME);
+        String middle = entry.getAsString(StructuredName.PHONETIC_MIDDLE_NAME);
+        String given = entry.getAsString(StructuredName.PHONETIC_GIVEN_NAME);
+
+        return !TextUtils.isEmpty(family) || !TextUtils.isEmpty(middle)
+                || !TextUtils.isEmpty(given);
+    }
+}
diff --git a/src/com/android/contacts/editor/PhotoActionPopup.java b/src/com/android/contacts/editor/PhotoActionPopup.java
index ae76afe..bc50da9 100644
--- a/src/com/android/contacts/editor/PhotoActionPopup.java
+++ b/src/com/android/contacts/editor/PhotoActionPopup.java
@@ -101,6 +101,7 @@
         listPopupWindow.setWidth(context.getResources().getDimensionPixelSize(
                 R.dimen.photo_action_popup_width));
         listPopupWindow.setModal(true);
+        listPopupWindow.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
         return listPopupWindow;
     }
 
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
index 496144b..633b343 100644
--- a/src/com/android/contacts/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -62,7 +62,8 @@
 public class RawContactEditorView extends BaseRawContactEditorView {
     private LayoutInflater mInflater;
 
-    private TextFieldsEditorView mName;
+    private StructuredNameEditorView mName;
+    private PhoneticNameEditorView mPhoneticName;
     private GroupMembershipView mGroupMembershipView;
 
     private ViewGroup mFields;
@@ -79,6 +80,8 @@
     private DataKind mGroupMembershipKind;
     private EntityDelta mState;
 
+    private boolean mPhoneticNameAdded;
+
     public RawContactEditorView(Context context) {
         super(context);
     }
@@ -93,11 +96,15 @@
 
         View view = getPhotoEditor();
         if (view != null) {
-            view.setEnabled(isEnabled());
+            view.setEnabled(enabled);
         }
 
         if (mName != null) {
-            mName.setEnabled(isEnabled());
+            mName.setEnabled(enabled);
+        }
+
+        if (mPhoneticName != null) {
+            mPhoneticName.setEnabled(enabled);
         }
 
         if (mFields != null) {
@@ -111,7 +118,7 @@
             mGroupMembershipView.setEnabled(enabled);
         }
 
-        mAddFieldButton.setEnabled(isEnabled());
+        mAddFieldButton.setEnabled(enabled);
     }
 
     @Override
@@ -122,10 +129,12 @@
 
         final int photoSize = getResources().getDimensionPixelSize(R.dimen.edit_photo_size);
 
-        mName = (TextFieldsEditorView)findViewById(R.id.edit_name);
+        mName = (StructuredNameEditorView)findViewById(R.id.edit_name);
         mName.setMinimumHeight(photoSize);
         mName.setDeletable(false);
 
+        mPhoneticName = (PhoneticNameEditorView)findViewById(R.id.edit_phonetic_name);
+
         mFields = (ViewGroup)findViewById(R.id.sect_fields);
 
         mHeaderIcon = (ImageView) findViewById(R.id.header_icon);
@@ -185,9 +194,12 @@
         mName.setEditorTextSize(
                 mContext.getResources().getDimensionPixelSize(R.dimen.contact_name_text_size));
 
+        mPhoneticName.setEnabled(isEnabled());
+
         // Show and hide the appropriate views
         mFields.setVisibility(View.VISIBLE);
         mName.setVisibility(View.VISIBLE);
+        mPhoneticName.setVisibility(View.VISIBLE);
 
         mGroupMembershipKind = type.getKindForMimetype(GroupMembership.CONTENT_ITEM_TYPE);
         if (mGroupMembershipKind != null) {
@@ -206,7 +218,12 @@
             if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
                 // Handle special case editor for structured name
                 final ValuesDelta primary = state.getPrimaryEntry(mimeType);
-                mName.setValues(kind, primary, state, false, vig);
+                mName.setValues(
+                        type.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME),
+                        primary, state, false, vig);
+                mPhoneticName.setValues(
+                        type.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME),
+                        primary, state, false, vig);
             } else if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) {
                 // Handle special case editor for photos
                 final ValuesDelta primary = state.getPrimaryEntry(mimeType);
@@ -230,6 +247,8 @@
             mFields.addView(mGroupMembershipView);
         }
 
+        updatePhoneticNameVisibility();
+
         addToDefaultGroupIfNeeded();
 
         mAddFieldButton.setEnabled(isEnabled());
@@ -307,6 +326,21 @@
         return mName;
     }
 
+    public TextFieldsEditorView getPhoneticNameEditor() {
+        return mPhoneticName;
+    }
+
+    private void updatePhoneticNameVisibility() {
+        boolean showByDefault =
+                getContext().getResources().getBoolean(R.bool.config_editor_include_phonetic_name);
+
+        if (showByDefault || mPhoneticName.hasData() || mPhoneticNameAdded) {
+            mPhoneticName.setVisibility(View.VISIBLE);
+        } else {
+            mPhoneticName.setVisibility(View.GONE);
+        }
+    }
+
     @Override
     public long getRawContactId() {
         return mRawContactId;
@@ -323,18 +357,34 @@
             if (child instanceof KindSectionView) {
                 final KindSectionView sectionView = (KindSectionView) child;
                 // not a list and already exists? ignore
-                if (!sectionView.getKind().isList && sectionView.getEditorCount() != 0) {
+                DataKind kind = sectionView.getKind();
+                if (!kind.isList && sectionView.getEditorCount() != 0) {
                     continue;
                 }
+                if (DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME.equals(kind.mimeType)) {
+                    continue;
+                }
+
+                if (DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME.equals(kind.mimeType)
+                        && mPhoneticName.getVisibility() == View.VISIBLE) {
+                    continue;
+                }
+
                 menu.add(Menu.NONE, fields.size(), Menu.NONE, sectionView.getTitle());
                 fields.add(sectionView);
             }
         }
+
         popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
             @Override
             public boolean onMenuItemClick(MenuItem item) {
                 final KindSectionView view = fields.get(item.getItemId());
-                view.addItem();
+                if (DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME.equals(view.getKind().mimeType)) {
+                    mPhoneticNameAdded = true;
+                    updatePhoneticNameVisibility();
+                } else {
+                    view.addItem();
+                }
                 return true;
             }
         });
diff --git a/src/com/android/contacts/editor/StructuredNameEditorView.java b/src/com/android/contacts/editor/StructuredNameEditorView.java
new file mode 100644
index 0000000..cf97c6c
--- /dev/null
+++ b/src/com/android/contacts/editor/StructuredNameEditorView.java
@@ -0,0 +1,275 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.contacts.editor;
+
+import com.android.contacts.model.AccountType.DataKind;
+import com.android.contacts.model.EntityDelta;
+import com.android.contacts.model.EntityDelta.ValuesDelta;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+
+/**
+ * A dedicated editor for structured name.  When the user collapses/expands
+ * the structured name, it will reparse or recompose the name, but only
+ * if the user has made changes.  This distinction will be particularly
+ * obvious if the name has a non-standard structure. Consider this structure:
+ * first name="John Doe", family name="".  As long as the user does not change
+ * the full name, expand and collapse will preserve this.  However, if the user
+ * changes "John Doe" to "Jane Doe" and then expands the view, we will reparse
+ * and show first name="Jane", family name="Doe".
+ */
+public class StructuredNameEditorView extends TextFieldsEditorView {
+
+    private ContentValues mSnapshot;
+    private boolean mChanged;
+
+    public StructuredNameEditorView(Context context) {
+        super(context);
+    }
+
+    public StructuredNameEditorView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public StructuredNameEditorView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override
+    public void setValues(DataKind kind, ValuesDelta entry, EntityDelta state, boolean readOnly,
+            ViewIdGenerator vig) {
+        super.setValues(kind, entry, state, readOnly, vig);
+        if (mSnapshot == null) {
+            mSnapshot = new ContentValues(getValues().getCompleteValues());
+            mChanged = entry.isInsert();
+        } else {
+            mChanged = false;
+        }
+    }
+
+    @Override
+    public void onFieldChanged(String column, String value) {
+        if (!isFieldChanged(column, value)) {
+            return;
+        }
+
+        mChanged = true;
+
+        if (hasShortAndLongForms()) {
+            if (areOptionalFieldsVisible()) {
+                eraseFullName(getValues());
+            } else {
+                eraseStructuredName(getValues());
+            }
+        }
+
+        super.onFieldChanged(column, value);
+    }
+
+    @Override
+    protected void onOptionalFieldVisibilityChange() {
+        if (hasShortAndLongForms()) {
+            if (areOptionalFieldsVisible()) {
+                switchFromFullNameToStructuredName();
+            } else {
+                switchFromStructuredNameToFullName();
+            }
+        }
+
+        super.onOptionalFieldVisibilityChange();
+    }
+
+    private void switchFromFullNameToStructuredName() {
+        ValuesDelta values = getValues();
+
+        if (!mChanged) {
+            values.put(StructuredName.PREFIX,
+                    mSnapshot.getAsString(StructuredName.PREFIX));
+            values.put(StructuredName.GIVEN_NAME,
+                    mSnapshot.getAsString(StructuredName.GIVEN_NAME));
+            values.put(StructuredName.MIDDLE_NAME,
+                    mSnapshot.getAsString(StructuredName.MIDDLE_NAME));
+            values.put(StructuredName.FAMILY_NAME,
+                    mSnapshot.getAsString(StructuredName.FAMILY_NAME));
+            values.put(StructuredName.SUFFIX,
+                    mSnapshot.getAsString(StructuredName.SUFFIX));
+            return;
+        }
+
+        String displayName = values.getAsString(StructuredName.DISPLAY_NAME);
+        Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
+        appendQueryParameter(builder, StructuredName.DISPLAY_NAME, displayName);
+        Cursor cursor = getContext().getContentResolver().query(builder.build(), new String[]{
+                StructuredName.PREFIX,
+                StructuredName.GIVEN_NAME,
+                StructuredName.MIDDLE_NAME,
+                StructuredName.FAMILY_NAME,
+                StructuredName.SUFFIX,
+        }, null, null, null);
+
+        try {
+            if (cursor.moveToFirst()) {
+                eraseFullName(values);
+                values.put(StructuredName.PREFIX, cursor.getString(0));
+                values.put(StructuredName.GIVEN_NAME, cursor.getString(1));
+                values.put(StructuredName.MIDDLE_NAME, cursor.getString(2));
+                values.put(StructuredName.FAMILY_NAME, cursor.getString(3));
+                values.put(StructuredName.SUFFIX, cursor.getString(4));
+            }
+        } finally {
+            cursor.close();
+        }
+
+        mSnapshot.clear();
+        mSnapshot.putAll(values.getCompleteValues());
+        mSnapshot.put(StructuredName.DISPLAY_NAME, displayName);
+    }
+
+    private void switchFromStructuredNameToFullName() {
+        ValuesDelta values = getValues();
+
+        if (!mChanged) {
+            values.put(StructuredName.DISPLAY_NAME,
+                    mSnapshot.getAsString(StructuredName.DISPLAY_NAME));
+            return;
+        }
+
+        String prefix = values.getAsString(StructuredName.PREFIX);
+        String givenName = values.getAsString(StructuredName.GIVEN_NAME);
+        String middleName = values.getAsString(StructuredName.MIDDLE_NAME);
+        String familyName = values.getAsString(StructuredName.FAMILY_NAME);
+        String suffix = values.getAsString(StructuredName.SUFFIX);
+
+        Uri.Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath(
+                "complete_name");
+        appendQueryParameter(builder, StructuredName.PREFIX, prefix);
+        appendQueryParameter(builder, StructuredName.GIVEN_NAME, givenName);
+        appendQueryParameter(builder, StructuredName.MIDDLE_NAME, middleName);
+        appendQueryParameter(builder, StructuredName.FAMILY_NAME, familyName);
+        appendQueryParameter(builder, StructuredName.SUFFIX, suffix);
+        Cursor cursor = getContext().getContentResolver().query(builder.build(), new String[]{
+                StructuredName.DISPLAY_NAME,
+        }, null, null, null);
+
+        try {
+            if (cursor.moveToFirst()) {
+                eraseStructuredName(values);
+                values.put(StructuredName.DISPLAY_NAME, cursor.getString(0));
+            }
+        } finally {
+            cursor.close();
+        }
+
+        mSnapshot.clear();
+        mSnapshot.put(StructuredName.DISPLAY_NAME, values.getAsString(StructuredName.DISPLAY_NAME));
+        mSnapshot.put(StructuredName.PREFIX, prefix);
+        mSnapshot.put(StructuredName.GIVEN_NAME, givenName);
+        mSnapshot.put(StructuredName.MIDDLE_NAME, middleName);
+        mSnapshot.put(StructuredName.FAMILY_NAME, familyName);
+        mSnapshot.put(StructuredName.SUFFIX, suffix);
+    }
+
+    private void eraseFullName(ValuesDelta values) {
+        values.putNull(StructuredName.DISPLAY_NAME);
+    }
+
+    private void eraseStructuredName(ValuesDelta values) {
+        values.putNull(StructuredName.PREFIX);
+        values.putNull(StructuredName.GIVEN_NAME);
+        values.putNull(StructuredName.MIDDLE_NAME);
+        values.putNull(StructuredName.FAMILY_NAME);
+        values.putNull(StructuredName.SUFFIX);
+    }
+
+    private void appendQueryParameter(Uri.Builder builder, String field, String value) {
+        if (!TextUtils.isEmpty(value)) {
+            builder.appendQueryParameter(field, value);
+        }
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        SavedState state = new SavedState(super.onSaveInstanceState());
+        state.mChanged = mChanged;
+        state.mSnapshot = mSnapshot;
+        return state;
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        SavedState ss = (SavedState) state;
+        super.onRestoreInstanceState(ss.mSuperState);
+
+        mChanged = ss.mChanged;
+        mSnapshot = ss.mSnapshot;
+    }
+
+    private static class SavedState implements Parcelable {
+        public boolean mChanged;
+        public ContentValues mSnapshot;
+        public Parcelable mSuperState;
+
+        SavedState(Parcelable superState) {
+            mSuperState = superState;
+        }
+
+        private SavedState(Parcel in) {
+            ClassLoader loader = getClass().getClassLoader();
+            mSuperState = in.readParcelable(loader);
+
+            mChanged = in.readInt() != 0;
+            mSnapshot = in.readParcelable(loader);
+        }
+
+        @Override
+        public void writeToParcel(Parcel out, int flags) {
+            out.writeParcelable(mSuperState, 0);
+
+            out.writeInt(mChanged ? 1 : 0);
+            out.writeParcelable(mSnapshot, 0);
+        }
+
+        @SuppressWarnings({"unused"})
+        public static final Parcelable.Creator<SavedState> CREATOR
+                = new Parcelable.Creator<SavedState>() {
+            @Override
+            public SavedState createFromParcel(Parcel in) {
+                return new SavedState(in);
+            }
+
+            @Override
+            public SavedState[] newArray(int size) {
+                return new SavedState[size];
+            }
+        };
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
index 1a930a1..031ab18 100644
--- a/src/com/android/contacts/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -364,7 +364,7 @@
 
         ss.mHideOptional = mHideOptional;
 
-        final int numChildren = mFieldEditTexts.length;
+        final int numChildren = mFieldEditTexts == null ? 0 : mFieldEditTexts.length;
         ss.mVisibilities = new int[numChildren];
         for (int i = 0; i < numChildren; i++) {
             ss.mVisibilities[i] = mFieldEditTexts[i].getVisibility();
diff --git a/src/com/android/contacts/interactions/ContactDeletionInteraction.java b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
index bc78e87..08f8d00 100644
--- a/src/com/android/contacts/interactions/ContactDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -50,6 +50,7 @@
 
     private static final String KEY_ACTIVE = "active";
     private static final String KEY_CONTACT_URI = "contactUri";
+    private static final String KEY_FINISH_WHEN_DONE = "finishWhenDone";
     public static final String ARG_CONTACT_URI = "contactUri";
 
     private static final String[] ENTITY_PROJECTION = new String[] {
@@ -66,6 +67,7 @@
 
     private boolean mActive;
     private Uri mContactUri;
+    private boolean mFinishActivityWhenDone;
     private Context mContext;
 
     private AlertDialog mDialog;
@@ -73,16 +75,23 @@
     // Visible for testing
     int mMessageId;
 
-    public static ContactDeletionInteraction start(Activity activity, Uri contactUri) {
+    public static ContactDeletionInteraction start(
+            Activity activity, Uri contactUri, boolean finishActivityWhenDone) {
+        if (contactUri == null) {
+            return null;
+        }
+
         FragmentManager fragmentManager = activity.getFragmentManager();
         ContactDeletionInteraction fragment =
                 (ContactDeletionInteraction) fragmentManager.findFragmentByTag(FRAGMENT_TAG);
         if (fragment == null) {
             fragment = new ContactDeletionInteraction();
             fragment.setContactUri(contactUri);
+            fragment.setFinishActivityWhenDone(finishActivityWhenDone);
             fragmentManager.beginTransaction().add(fragment, FRAGMENT_TAG).commit();
         } else {
             fragment.setContactUri(contactUri);
+            fragment.setFinishActivityWhenDone(finishActivityWhenDone);
         }
         return fragment;
     }
@@ -93,6 +102,16 @@
         mContext = activity;
     }
 
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        if (mDialog != null && mDialog.isShowing()) {
+            mDialog.setOnDismissListener(null);
+            mDialog.dismiss();
+            mDialog = null;
+        }
+    }
+
     public void setContactUri(Uri contactUri) {
         mContactUri = contactUri;
         mActive = true;
@@ -103,6 +122,11 @@
         }
     }
 
+    private void setFinishActivityWhenDone(boolean finishActivityWhenDone) {
+        this.mFinishActivityWhenDone = finishActivityWhenDone;
+
+    }
+
     /* Visible for testing */
     boolean isStarted() {
         return isAdded();
@@ -119,6 +143,14 @@
     }
 
     @Override
+    public void onStop() {
+        super.onStop();
+        if (mDialog != null) {
+            mDialog.hide();
+        }
+    }
+
+    @Override
     public Loader<Cursor> onCreateLoader(int id, Bundle args) {
         Uri contactUri = args.getParcelable(ARG_CONTACT_URI);
         return new CursorLoader(mContext,
@@ -211,6 +243,7 @@
         super.onSaveInstanceState(outState);
         outState.putBoolean(KEY_ACTIVE, mActive);
         outState.putParcelable(KEY_CONTACT_URI, mContactUri);
+        outState.putBoolean(KEY_FINISH_WHEN_DONE, mFinishActivityWhenDone);
     }
 
     @Override
@@ -219,10 +252,14 @@
         if (savedInstanceState != null) {
             mActive = savedInstanceState.getBoolean(KEY_ACTIVE);
             mContactUri = savedInstanceState.getParcelable(KEY_CONTACT_URI);
+            mFinishActivityWhenDone = savedInstanceState.getBoolean(KEY_FINISH_WHEN_DONE);
         }
     }
 
     protected void doDeleteContact(Uri contactUri) {
         mContext.startService(ContactSaveService.createDeleteContactIntent(mContext, contactUri));
+        if (isAdded() && mFinishActivityWhenDone) {
+            getActivity().finish();
+        }
     }
 }
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 9b99639..be920db 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -520,12 +520,18 @@
 
     protected void selectDefaultContact() {
         Uri contactUri = null;
+        ContactListAdapter adapter = getAdapter();
         if (mLastSelectedPosition != -1) {
-            contactUri = getAdapter().getContactUri(mLastSelectedPosition);
+            int count = adapter.getCount();
+            int pos = mLastSelectedPosition;
+            if (pos >= count && count > 0) {
+                pos = count - 1;
+            }
+            contactUri = adapter.getContactUri(pos);
         }
 
         if (contactUri == null) {
-            contactUri = getAdapter().getFirstContactUri();
+            contactUri = adapter.getFirstContactUri();
         }
 
         setSelectedContactUri(contactUri, false, mSmoothScrollRequested, false, false);
diff --git a/src/com/android/contacts/list/ContactEntryListAdapter.java b/src/com/android/contacts/list/ContactEntryListAdapter.java
index 44e09b0..a2b264b 100644
--- a/src/com/android/contacts/list/ContactEntryListAdapter.java
+++ b/src/com/android/contacts/list/ContactEntryListAdapter.java
@@ -15,6 +15,7 @@
  */
 package com.android.contacts.list;
 
+import com.android.contacts.ContactPhotoManager;
 import com.android.contacts.R;
 import com.android.contacts.widget.IndexerListAdapter;
 import com.android.contacts.widget.TextWithHighlightingFactory;
@@ -61,7 +62,7 @@
 
     private boolean mDisplayPhotos;
     private boolean mQuickContactEnabled;
-    private ContactPhotoLoader mPhotoLoader;
+    private ContactPhotoManager mPhotoLoader;
 
     private String mQueryString;
     private char[] mUpperCaseQueryString;
@@ -225,11 +226,11 @@
         return mTextWithHighlightingFactory;
     }
 
-    public void setPhotoLoader(ContactPhotoLoader photoLoader) {
+    public void setPhotoLoader(ContactPhotoManager photoLoader) {
         mPhotoLoader = photoLoader;
     }
 
-    protected ContactPhotoLoader getPhotoLoader() {
+    protected ContactPhotoManager getPhotoLoader() {
         return mPhotoLoader;
     }
 
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index 70eb0db..c85f582 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -18,6 +18,7 @@
 
 import com.android.common.widget.CompositeCursorAdapter.Partition;
 import com.android.contacts.ContactListEmptyView;
+import com.android.contacts.ContactPhotoManager;
 import com.android.contacts.ContactsSearchManager;
 import com.android.contacts.R;
 import com.android.contacts.preference.ContactsPreferences;
@@ -124,7 +125,7 @@
     private int mDirectoryResultLimit = DEFAULT_DIRECTORY_RESULT_LIMIT;
 
     private ContextMenuAdapter mContextMenuAdapter;
-    private ContactPhotoLoader mPhotoLoader;
+    private ContactPhotoManager mPhotoManager;
     private ContactListEmptyView mEmptyView;
     private ProviderStatusLoader mProviderStatusLoader;
     private ContactsPreferences mContactsPrefs;
@@ -544,6 +545,7 @@
             if (mVerticalScrollbarPosition == View.SCROLLBAR_POSITION_LEFT) {
                 leftPadding = mContext.getResources().getDimensionPixelOffset(
                         R.dimen.list_visible_scrollbar_padding);
+                mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
             } else if (hasScrollbar){
                 rightPadding = mContext.getResources().getDimensionPixelOffset(
                         R.dimen.list_visible_scrollbar_padding);
@@ -711,7 +713,7 @@
         boolean searchMode = isSearchMode();
         mAdapter.setSearchMode(searchMode);
         mAdapter.configureDefaultPartition(false, searchMode);
-        mAdapter.setPhotoLoader(mPhotoLoader);
+        mAdapter.setPhotoLoader(mPhotoManager);
         mListView.setAdapter(mAdapter);
 
         if (!isSearchMode()) {
@@ -762,14 +764,14 @@
 
     protected void configurePhotoLoader() {
         if (isPhotoLoaderEnabled() && mContext != null) {
-            if (mPhotoLoader == null) {
-                mPhotoLoader = new ContactPhotoLoader(mContext, R.drawable.ic_contact_picture);
+            if (mPhotoManager == null) {
+                mPhotoManager = ContactPhotoManager.getInstance(mContext);
             }
             if (mListView != null) {
                 mListView.setOnScrollListener(this);
             }
             if (mAdapter != null) {
-                mAdapter.setPhotoLoader(mPhotoLoader);
+                mAdapter.setPhotoLoader(mPhotoManager);
             }
         }
     }
@@ -813,29 +815,12 @@
     @Override
     public void onScrollStateChanged(AbsListView view, int scrollState) {
         if (scrollState == OnScrollListener.SCROLL_STATE_FLING) {
-            mPhotoLoader.pause();
+            mPhotoManager.pause();
         } else if (isPhotoLoaderEnabled()) {
-            mPhotoLoader.resume();
+            mPhotoManager.resume();
         }
     }
 
-    @Override
-    public void onResume() {
-        super.onResume();
-
-        if (isPhotoLoaderEnabled()) {
-            mPhotoLoader.resume();
-        }
-    }
-
-    @Override
-    public void onDestroy() {
-        if (isPhotoLoaderEnabled()) {
-            mPhotoLoader.stop();
-        }
-        super.onDestroy();
-    }
-
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         hideSoftKeyboard();
 
diff --git a/src/com/android/contacts/list/ContactListAdapter.java b/src/com/android/contacts/list/ContactListAdapter.java
index a6db641..cfacc85 100644
--- a/src/com/android/contacts/list/ContactListAdapter.java
+++ b/src/com/android/contacts/list/ContactListAdapter.java
@@ -79,9 +79,7 @@
         Contacts.LOOKUP_KEY,                    // 9
         Contacts.PHONETIC_NAME,                 // 10
         Contacts.HAS_PHONE_NUMBER,              // 11
-        SearchSnippetColumns.SNIPPET_MIMETYPE,  // 12
-        SearchSnippetColumns.SNIPPET_DATA1,     // 13
-        SearchSnippetColumns.SNIPPET_DATA4,     // 14
+        SearchSnippetColumns.SNIPPET,           // 12
     };
 
     protected static final int CONTACT_ID_COLUMN_INDEX = 0;
@@ -96,9 +94,7 @@
     protected static final int CONTACT_LOOKUP_KEY_COLUMN_INDEX = 9;
     protected static final int CONTACT_PHONETIC_NAME_COLUMN_INDEX = 10;
     protected static final int CONTACT_HAS_PHONE_COLUMN_INDEX = 11;
-    protected static final int CONTACT_SNIPPET_MIMETYPE_COLUMN_INDEX = 12;
-    protected static final int CONTACT_SNIPPET_DATA1_COLUMN_INDEX = 13;
-    protected static final int CONTACT_SNIPPET_DATA4_COLUMN_INDEX = 14;
+    protected static final int CONTACT_SNIPPET_COLUMN_INDEX = 12;
 
     private CharSequence mUnknownNameText;
     private int mDisplayNameColumnIndex;
@@ -289,8 +285,7 @@
     }
 
     protected void bindSearchSnippet(final ContactListItemView view, Cursor cursor) {
-        view.showSnippet(cursor, CONTACT_SNIPPET_MIMETYPE_COLUMN_INDEX,
-                CONTACT_SNIPPET_DATA1_COLUMN_INDEX, CONTACT_SNIPPET_DATA4_COLUMN_INDEX);
+        view.showSnippet(cursor, CONTACT_SNIPPET_COLUMN_INDEX);
     }
 
     public int getSelectedContactPosition() {
diff --git a/src/com/android/contacts/list/ContactListItemView.java b/src/com/android/contacts/list/ContactListItemView.java
index c943534..fe5f8e2 100644
--- a/src/com/android/contacts/list/ContactListItemView.java
+++ b/src/com/android/contacts/list/ContactListItemView.java
@@ -30,10 +30,6 @@
 import android.graphics.Rect;
 import android.graphics.Typeface;
 import android.graphics.drawable.Drawable;
-import android.provider.ContactsContract.CommonDataKinds.Email;
-import android.provider.ContactsContract.CommonDataKinds.Nickname;
-import android.provider.ContactsContract.CommonDataKinds.Organization;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.Contacts;
 import android.text.SpannableString;
 import android.text.TextUtils;
@@ -863,36 +859,43 @@
     /**
      * Shows search snippet.
      */
-    public void showSnippet(Cursor cursor, int summarySnippetMimetypeColumnIndex,
-            int summarySnippetData1ColumnIndex, int summarySnippetData4ColumnIndex) {
-        if (cursor.getColumnCount() <= summarySnippetMimetypeColumnIndex) {
+    public void showSnippet(Cursor cursor, int summarySnippetColumnIndex) {
+        if (cursor.getColumnCount() <= summarySnippetColumnIndex) {
             setSnippet(null);
             return;
         }
 
-        String snippet = null;
-        String snippetMimeType = cursor.getString(summarySnippetMimetypeColumnIndex);
-        if (Email.CONTENT_ITEM_TYPE.equals(snippetMimeType)
-                || Nickname.CONTENT_ITEM_TYPE.equals(snippetMimeType)
-                || Phone.CONTENT_ITEM_TYPE.equals(snippetMimeType)) {
-            String value = cursor.getString(summarySnippetData1ColumnIndex);
-            if (!TextUtils.isEmpty(value)) {
-                snippet = value;
-            }
-        } else if (Organization.CONTENT_ITEM_TYPE.equals(snippetMimeType)) {
-            String company = cursor.getString(summarySnippetData1ColumnIndex);
-            String title = cursor.getString(summarySnippetData4ColumnIndex);
-            if (!TextUtils.isEmpty(company)) {
-                if (!TextUtils.isEmpty(title)) {
-                    snippet = company + " / " + title;
-                } else {
-                    snippet = company;
+        String snippet = cursor.getString(summarySnippetColumnIndex);
+        if (snippet != null) {
+            int from = 0;
+            int to = snippet.length();
+            int start = snippet.indexOf(DefaultContactListAdapter.SNIPPET_START_MATCH);
+            if (start == -1) {
+                snippet = null;
+            } else {
+                int firstNl = snippet.lastIndexOf('\n', start);
+                if (firstNl != -1) {
+                    from = firstNl + 1;
                 }
-            } else if (!TextUtils.isEmpty(title)) {
-                snippet = title;
+                int end = snippet.lastIndexOf(DefaultContactListAdapter.SNIPPET_END_MATCH);
+                if (end != -1) {
+                    int lastNl = snippet.indexOf('\n', end);
+                    if (lastNl != -1) {
+                        to = lastNl;
+                    }
+                }
+
+                StringBuilder sb = new StringBuilder();
+                for (int i = from; i < to; i++) {
+                    char c = snippet.charAt(i);
+                    if (c != DefaultContactListAdapter.SNIPPET_START_MATCH &&
+                            c != DefaultContactListAdapter.SNIPPET_END_MATCH) {
+                        sb.append(c);
+                    }
+                }
+                snippet = sb.toString();
             }
         }
-
         setSnippet(snippet);
     }
 
diff --git a/src/com/android/contacts/list/ContactPhotoLoader.java b/src/com/android/contacts/list/ContactPhotoLoader.java
deleted file mode 100644
index a6f40b6..0000000
--- a/src/com/android/contacts/list/ContactPhotoLoader.java
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.list;
-
-import com.google.android.collect.Lists;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.database.Cursor;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Handler.Callback;
-import android.os.HandlerThread;
-import android.os.Message;
-import android.provider.ContactsContract.Contacts.Photo;
-import android.provider.ContactsContract.Data;
-import android.util.Log;
-import android.widget.ImageView;
-
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.lang.ref.SoftReference;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * Asynchronously loads contact photos and maintains cache of photos.  The class is
- * mostly single-threaded.  The only two methods accessed by the loader thread are
- * {@link #cacheBitmap} and {@link #obtainPhotoIdsAndUrisToLoad}. Those methods access concurrent
- * hash maps shared with the main thread.
- */
-public class ContactPhotoLoader implements Callback {
-    private static final String TAG = "ContactPhotoLoader";
-    private static final String LOADER_THREAD_NAME = "ContactPhotoLoader";
-
-    /**
-     * Type of message sent by the UI thread to itself to indicate that some photos
-     * need to be loaded.
-     */
-    private static final int MESSAGE_REQUEST_LOADING = 1;
-
-    /**
-     * Type of message sent by the loader thread to indicate that some photos have
-     * been loaded.
-     */
-    private static final int MESSAGE_PHOTOS_LOADED = 2;
-
-    private static final String[] EMPTY_STRING_ARRAY = new String[0];
-
-    private final String[] COLUMNS = new String[] { Photo._ID, Photo.PHOTO };
-
-    /**
-     * The resource ID of the image to be used when the photo is unavailable or being
-     * loaded.
-     */
-    private final int mDefaultResourceId;
-
-    /**
-     * Maintains the state of a particular photo.
-     */
-    private static class BitmapHolder {
-        private static final int NEEDED = 0;
-        private static final int LOADING = 1;
-        private static final int LOADED = 2;
-        private static final int LOADED_NEEDS_RELOAD = 3;
-
-        int state;
-        Bitmap bitmap;
-        SoftReference<Bitmap> bitmapRef;
-    }
-
-    /**
-     * A soft cache for photos.
-     */
-    private final ConcurrentHashMap<Object, BitmapHolder> mBitmapCache =
-            new ConcurrentHashMap<Object, BitmapHolder>();
-
-    /**
-     * A map from ImageView to the corresponding photo ID. Please note that this
-     * photo ID may change before the photo loading request is started.
-     */
-    private final ConcurrentHashMap<ImageView, Object> mPendingRequests =
-            new ConcurrentHashMap<ImageView, Object>();
-
-    /**
-     * Handler for messages sent to the UI thread.
-     */
-    private final Handler mMainThreadHandler = new Handler(this);
-
-    /**
-     * Thread responsible for loading photos from the database. Created upon
-     * the first request.
-     */
-    private LoaderThread mLoaderThread;
-
-    /**
-     * A gate to make sure we only send one instance of MESSAGE_PHOTOS_NEEDED at a time.
-     */
-    private boolean mLoadingRequested;
-
-    /**
-     * Flag indicating if the image loading is paused.
-     */
-    private boolean mPaused;
-
-    private final Context mContext;
-
-    /**
-     * Constructor.
-     *
-     * @param context content context
-     * @param defaultResourceId the image resource ID to be used when there is
-     *            no photo for a contact
-     */
-    public ContactPhotoLoader(Context context, int defaultResourceId) {
-        mDefaultResourceId = defaultResourceId;
-        mContext = context;
-    }
-
-    /**
-     * Load photo into the supplied image view.  If the photo is already cached,
-     * it is displayed immediately.  Otherwise a request is sent to load the photo
-     * from the database.
-     */
-    public void loadPhoto(ImageView view, long photoId) {
-        if (photoId == 0) {
-            // No photo is needed
-            view.setImageResource(mDefaultResourceId);
-            mPendingRequests.remove(view);
-        } else {
-            loadPhotoByIdOrUri(view, photoId);
-        }
-    }
-
-    /**
-     * Load photo into the supplied image view.  If the photo is already cached,
-     * it is displayed immediately.  Otherwise a request is sent to load the photo
-     * from the location specified by the URI.
-     */
-    public void loadPhoto(ImageView view, Uri photoUri) {
-        if (photoUri == null) {
-            // No photo is needed
-            view.setImageResource(mDefaultResourceId);
-            mPendingRequests.remove(view);
-        } else {
-            loadPhotoByIdOrUri(view, photoUri);
-        }
-    }
-
-    private void loadPhotoByIdOrUri(ImageView view, Object key) {
-        boolean loaded = loadCachedPhoto(view, key);
-        if (loaded) {
-            mPendingRequests.remove(view);
-        } else {
-            mPendingRequests.put(view, key);
-            if (!mPaused) {
-                // Send a request to start loading photos
-                requestLoading();
-            }
-        }
-    }
-
-    /**
-     * Mark all cached photos for reloading.  We can continue using cache but should
-     * also make sure the photos haven't changed in the background and notify the views
-     * if so.
-     */
-    public void refreshCache() {
-        for (BitmapHolder holder : mBitmapCache.values()) {
-            if (holder.state == BitmapHolder.LOADED) {
-                holder.state = BitmapHolder.LOADED_NEEDS_RELOAD;
-            }
-        }
-    }
-
-    /**
-     * Checks if the photo is present in cache.  If so, sets the photo on the view,
-     * otherwise sets the state of the photo to {@link BitmapHolder#NEEDED} and
-     * temporarily set the image to the default resource ID.
-     */
-    private boolean loadCachedPhoto(ImageView view, Object key) {
-        BitmapHolder holder = mBitmapCache.get(key);
-        if (holder == null) {
-            holder = new BitmapHolder();
-            mBitmapCache.put(key, holder);
-        } else {
-            boolean loaded = (holder.state == BitmapHolder.LOADED);
-            boolean loadedNeedsReload = (holder.state == BitmapHolder.LOADED_NEEDS_RELOAD);
-            if (loadedNeedsReload) {
-                holder.state = BitmapHolder.NEEDED;
-            }
-
-            // Null bitmap reference means that database contains no bytes for the photo
-            if ((loaded || loadedNeedsReload) && holder.bitmapRef == null) {
-                view.setImageResource(mDefaultResourceId);
-                return loaded;
-            }
-
-            if (holder.bitmapRef != null) {
-                Bitmap bitmap = holder.bitmapRef.get();
-                if (bitmap != null) {
-                    view.setImageBitmap(bitmap);
-                    return loaded;
-                }
-
-                // Null bitmap means that the soft reference was released by the GC
-                // and we need to reload the photo.
-                holder.bitmapRef = null;
-            }
-        }
-
-        // The bitmap has not been loaded - should display the placeholder image.
-        view.setImageResource(mDefaultResourceId);
-        holder.state = BitmapHolder.NEEDED;
-        return false;
-    }
-
-    /**
-     * Stops loading images, kills the image loader thread and clears all caches.
-     */
-    public void stop() {
-        pause();
-
-        if (mLoaderThread != null) {
-            mLoaderThread.quit();
-            mLoaderThread = null;
-        }
-
-        mPendingRequests.clear();
-        mBitmapCache.clear();
-    }
-
-    public void clear() {
-        mPendingRequests.clear();
-        mBitmapCache.clear();
-    }
-
-    /**
-     * Temporarily stops loading photos from the database.
-     */
-    public void pause() {
-        mPaused = true;
-    }
-
-    /**
-     * Resumes loading photos from the database.
-     */
-    public void resume() {
-        mPaused = false;
-        if (!mPendingRequests.isEmpty()) {
-            requestLoading();
-        }
-    }
-
-    /**
-     * Sends a message to this thread itself to start loading images.  If the current
-     * view contains multiple image views, all of those image views will get a chance
-     * to request their respective photos before any of those requests are executed.
-     * This allows us to load images in bulk.
-     */
-    private void requestLoading() {
-        if (!mLoadingRequested) {
-            mLoadingRequested = true;
-            mMainThreadHandler.sendEmptyMessage(MESSAGE_REQUEST_LOADING);
-        }
-    }
-
-    /**
-     * Processes requests on the main thread.
-     */
-    public boolean handleMessage(Message msg) {
-        switch (msg.what) {
-            case MESSAGE_REQUEST_LOADING: {
-                mLoadingRequested = false;
-                if (!mPaused) {
-                    if (mLoaderThread == null) {
-                        mLoaderThread = new LoaderThread(mContext.getContentResolver());
-                        mLoaderThread.start();
-                    }
-
-                    mLoaderThread.requestLoading();
-                }
-                return true;
-            }
-
-            case MESSAGE_PHOTOS_LOADED: {
-                if (!mPaused) {
-                    processLoadedImages();
-                }
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Goes over pending loading requests and displays loaded photos.  If some of the
-     * photos still haven't been loaded, sends another request for image loading.
-     */
-    private void processLoadedImages() {
-        Iterator<ImageView> iterator = mPendingRequests.keySet().iterator();
-        while (iterator.hasNext()) {
-            ImageView view = iterator.next();
-            Object key = mPendingRequests.get(view);
-            boolean loaded = loadCachedPhoto(view, key);
-            if (loaded) {
-                iterator.remove();
-            }
-        }
-
-        softenCache();
-
-        if (!mPendingRequests.isEmpty()) {
-            requestLoading();
-        }
-    }
-
-    /**
-     * Removes strong references to loaded bitmaps to allow them to be garbage collected
-     * if needed.
-     */
-    private void softenCache() {
-        for (BitmapHolder holder : mBitmapCache.values()) {
-            holder.bitmap = null;
-        }
-    }
-
-    /**
-     * Stores the supplied bitmap in cache.
-     */
-    private void cacheBitmap(Object key, byte[] bytes) {
-        if (mPaused) {
-            return;
-        }
-
-        BitmapHolder holder = new BitmapHolder();
-        holder.state = BitmapHolder.LOADED;
-        if (bytes != null) {
-            try {
-                Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, null);
-                holder.bitmap = bitmap;
-                holder.bitmapRef = new SoftReference<Bitmap>(bitmap);
-            } catch (OutOfMemoryError e) {
-                // Do nothing - the photo will appear to be missing
-            }
-        }
-        mBitmapCache.put(key, holder);
-    }
-
-    /**
-     * Populates an array of photo IDs that need to be loaded.
-     */
-    private void obtainPhotoIdsAndUrisToLoad(ArrayList<Long> photoIds,
-            ArrayList<String> photoIdsAsStrings, ArrayList<Uri> uris) {
-        photoIds.clear();
-        photoIdsAsStrings.clear();
-        uris.clear();
-
-        /*
-         * Since the call is made from the loader thread, the map could be
-         * changing during the iteration. That's not really a problem:
-         * ConcurrentHashMap will allow those changes to happen without throwing
-         * exceptions. Since we may miss some requests in the situation of
-         * concurrent change, we will need to check the map again once loading
-         * is complete.
-         */
-        Iterator<Object> iterator = mPendingRequests.values().iterator();
-        while (iterator.hasNext()) {
-            Object key = iterator.next();
-            BitmapHolder holder = mBitmapCache.get(key);
-            if (holder != null && holder.state == BitmapHolder.NEEDED) {
-                // Assuming atomic behavior
-                holder.state = BitmapHolder.LOADING;
-                if (key instanceof Long) {
-                    photoIds.add((Long)key);
-                    photoIdsAsStrings.add(key.toString());
-                } else {
-                    uris.add((Uri)key);
-                }
-            }
-        }
-    }
-
-    /**
-     * The thread that performs loading of photos from the database.
-     */
-    private class LoaderThread extends HandlerThread implements Callback {
-        private static final int BUFFER_SIZE = 1024*16;
-
-        private final ContentResolver mResolver;
-        private final StringBuilder mStringBuilder = new StringBuilder();
-        private final ArrayList<Long> mPhotoIds = Lists.newArrayList();
-        private final ArrayList<String> mPhotoIdsAsStrings = Lists.newArrayList();
-        private final ArrayList<Uri> mPhotoUris = Lists.newArrayList();
-        private Handler mLoaderThreadHandler;
-        private byte mBuffer[];
-
-        public LoaderThread(ContentResolver resolver) {
-            super(LOADER_THREAD_NAME);
-            mResolver = resolver;
-        }
-
-        /**
-         * Sends a message to this thread to load requested photos.
-         */
-        public void requestLoading() {
-            if (mLoaderThreadHandler == null) {
-                mLoaderThreadHandler = new Handler(getLooper(), this);
-            }
-            mLoaderThreadHandler.sendEmptyMessage(0);
-        }
-
-        /**
-         * Receives the above message, loads photos and then sends a message
-         * to the main thread to process them.
-         */
-        public boolean handleMessage(Message msg) {
-            loadPhotosFromDatabase();
-            return true;
-        }
-
-        private void loadPhotosFromDatabase() {
-            obtainPhotoIdsAndUrisToLoad(mPhotoIds, mPhotoIdsAsStrings, mPhotoUris);
-
-            int count = mPhotoIds.size();
-            if (count != 0) {
-                mStringBuilder.setLength(0);
-                mStringBuilder.append(Photo._ID + " IN(");
-                for (int i = 0; i < count; i++) {
-                    if (i != 0) {
-                        mStringBuilder.append(',');
-                    }
-                    mStringBuilder.append('?');
-                }
-                mStringBuilder.append(')');
-
-                Cursor cursor = null;
-                try {
-                    cursor = mResolver.query(Data.CONTENT_URI,
-                            COLUMNS,
-                            mStringBuilder.toString(),
-                            mPhotoIdsAsStrings.toArray(EMPTY_STRING_ARRAY),
-                            null);
-
-                    if (cursor != null) {
-                        while (cursor.moveToNext()) {
-                            Long id = cursor.getLong(0);
-                            byte[] bytes = cursor.getBlob(1);
-                            cacheBitmap(id, bytes);
-                            mPhotoIds.remove(id);
-                        }
-                    }
-                } finally {
-                    if (cursor != null) {
-                        cursor.close();
-                    }
-                }
-
-                // Remaining photos were not found in the database - mark the cache accordingly.
-                count = mPhotoIds.size();
-                for (int i = 0; i < count; i++) {
-                    cacheBitmap(mPhotoIds.get(i), null);
-                }
-                mMainThreadHandler.sendEmptyMessage(MESSAGE_PHOTOS_LOADED);
-            }
-
-            count = mPhotoUris.size();
-            for (int i = 0; i < count; i++) {
-                Uri uri = mPhotoUris.get(i);
-                if (mBuffer == null) {
-                    mBuffer = new byte[BUFFER_SIZE];
-                }
-                try {
-                    InputStream is = mResolver.openInputStream(uri);
-                    if (is != null) {
-                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                        try {
-                            int size;
-                            while ((size = is.read(mBuffer)) != -1) {
-                                baos.write(mBuffer, 0, size);
-                            }
-                        } finally {
-                            is.close();
-                        }
-                        cacheBitmap(uri, baos.toByteArray());
-                        mMainThreadHandler.sendEmptyMessage(MESSAGE_PHOTOS_LOADED);
-                    } else {
-                        Log.v(TAG, "Cannot load photo " + uri);
-                        cacheBitmap(uri, null);
-                    }
-                } catch (Exception ex) {
-                    Log.v(TAG, "Cannot load photo " + uri, ex);
-                    cacheBitmap(uri, null);
-                }
-            }
-        }
-    }
-}
diff --git a/src/com/android/contacts/list/CustomContactListFilterActivity.java b/src/com/android/contacts/list/CustomContactListFilterActivity.java
index 0f3fafd..dae7233 100644
--- a/src/com/android/contacts/list/CustomContactListFilterActivity.java
+++ b/src/com/android/contacts/list/CustomContactListFilterActivity.java
@@ -26,6 +26,7 @@
 import com.android.contacts.preference.ContactsPreferences;
 import com.android.contacts.util.EmptyService;
 import com.android.contacts.util.LocalizedNameResolver;
+import com.android.contacts.util.PhoneCapabilityTester;
 import com.android.contacts.util.WeakAsyncTask;
 import com.google.android.collect.Lists;
 
@@ -113,8 +114,10 @@
         createWithPhonesOnlyPreferenceView(inflater);
         createDisplayGroupHeader(inflater);
 
-        mList.addHeaderView(mHeaderPhones, null, true);
-        mList.addHeaderView(mHeaderSeparator, null, false);
+        if (mHeaderPhones != null) {
+            mList.addHeaderView(mHeaderPhones, null, true);
+            mList.addHeaderView(mHeaderSeparator, null, false);
+        }
 
         findViewById(R.id.btn_done).setOnClickListener(this);
         findViewById(R.id.btn_discard).setOnClickListener(this);
@@ -127,12 +130,18 @@
     }
 
     private void createWithPhonesOnlyPreferenceView(LayoutInflater inflater) {
+        boolean optionSelected = mPrefs.getBoolean(ContactsPreferences.PREF_DISPLAY_ONLY_PHONES,
+                ContactsPreferences.PREF_DISPLAY_ONLY_PHONES_DEFAULT);
+
+        if (!optionSelected && !PhoneCapabilityTester.isPhone(this)) {
+            return;
+        }
+
         // Add the "Only contacts with phones" header modifier.
         mHeaderPhones = inflater.inflate(R.layout.contact_list_filter_phones_only, mList, false);
         mHeaderPhones.setId(R.id.header_phones);
         mDisplayPhones = (CheckBox) mHeaderPhones.findViewById(android.R.id.checkbox);
-        mDisplayPhones.setChecked(mPrefs.getBoolean(ContactsPreferences.PREF_DISPLAY_ONLY_PHONES,
-                ContactsPreferences.PREF_DISPLAY_ONLY_PHONES_DEFAULT));
+        mDisplayPhones.setChecked(optionSelected);
         final TextView text1 = (TextView) mHeaderPhones.findViewById(android.R.id.text1);
         text1.setText(R.string.showFilterPhones);
         final TextView text2 = (TextView) mHeaderPhones.findViewById(android.R.id.text2);
@@ -871,7 +880,10 @@
             return;
         }
 
-        setDisplayOnlyPhones(mDisplayPhones.isChecked());
+        if (mDisplayPhones != null) {
+            setDisplayOnlyPhones(mDisplayPhones.isChecked());
+        }
+
         setResult(RESULT_OK);
 
         final ArrayList<ContentProviderOperation> diff = mAdapter.mAccounts.buildDiff();
diff --git a/src/com/android/contacts/list/DefaultContactListAdapter.java b/src/com/android/contacts/list/DefaultContactListAdapter.java
index 164a2cd..3e8c6f1 100644
--- a/src/com/android/contacts/list/DefaultContactListAdapter.java
+++ b/src/com/android/contacts/list/DefaultContactListAdapter.java
@@ -31,6 +31,7 @@
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.Directory;
 import android.provider.ContactsContract.RawContacts;
+import android.provider.ContactsContract.SearchSnippetColumns;
 import android.text.TextUtils;
 import android.view.View;
 
@@ -42,6 +43,14 @@
  */
 public class DefaultContactListAdapter extends ContactListAdapter {
 
+    public static final char SNIPPET_START_MATCH = '\u0001';
+    public static final char SNIPPET_END_MATCH = '\u0001';
+    public static final String SNIPPET_ELLIPSIS = "\u2026";
+    public static final int SNIPPET_MAX_TOKENS = 5;
+
+    public static final String SNIPPET_ARGS = SNIPPET_START_MATCH + "," + SNIPPET_END_MATCH + ","
+            + SNIPPET_ELLIPSIS + "," + SNIPPET_MAX_TOKENS;
+
     public DefaultContactListAdapter(Context context) {
         super(context);
     }
@@ -71,6 +80,8 @@
                     builder.appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY,
                             String.valueOf(getDirectoryResultLimit()));
                 }
+                builder.appendQueryParameter(SearchSnippetColumns.SNIPPET_ARGS_PARAM_KEY,
+                        SNIPPET_ARGS);
                 applyDataRestriction(builder);
                 loader.setUri(builder.build());
                 loader.setProjection(FILTER_PROJECTION);
diff --git a/src/com/android/contacts/list/ShortcutIntentBuilder.java b/src/com/android/contacts/list/ShortcutIntentBuilder.java
index 101b6d5..43a6c1e 100644
--- a/src/com/android/contacts/list/ShortcutIntentBuilder.java
+++ b/src/com/android/contacts/list/ShortcutIntentBuilder.java
@@ -75,7 +75,7 @@
 
     private final OnShortcutIntentCreatedListener mListener;
     private final Context mContext;
-    private final int mIconSize;
+    private int mIconSize;
     private final int mIconDensity;
 
     /**
@@ -99,7 +99,10 @@
 
         final ActivityManager am = (ActivityManager) context
                 .getSystemService(Context.ACTIVITY_SERVICE);
-        mIconSize = am.getLauncherLargeIconSize();
+        mIconSize = context.getResources().getDimensionPixelSize(R.dimen.shortcut_icon_size);
+        if (mIconSize == 0) {
+            mIconSize = am.getLauncherLargeIconSize();
+        }
         mIconDensity = am.getLauncherLargeIconDensity();
     }
 
diff --git a/src/com/android/contacts/model/AccountType.java b/src/com/android/contacts/model/AccountType.java
index 0f67fba..aef5c06 100644
--- a/src/com/android/contacts/model/AccountType.java
+++ b/src/com/android/contacts/model/AccountType.java
@@ -166,6 +166,11 @@
      * labels and editable {@link EditField}.
      */
     public static class DataKind {
+
+        public static final String PSEUDO_MIME_TYPE_DISPLAY_NAME = "#displayName";
+        public static final String PSEUDO_MIME_TYPE_PHONETIC_NAME = "#phoneticName";
+        public static final String PSEUDO_COLUMN_PHONETIC_NAME = "#phoneticName";
+
         public String resPackageName;
         public String mimeType;
         public int titleRes;
diff --git a/src/com/android/contacts/model/BaseAccountType.java b/src/com/android/contacts/model/BaseAccountType.java
index dbfeae4..d4a7496 100644
--- a/src/com/android/contacts/model/BaseAccountType.java
+++ b/src/com/android/contacts/model/BaseAccountType.java
@@ -105,6 +105,35 @@
 
         kind.fieldList = Lists.newArrayList();
         kind.fieldList.add(new EditField(StructuredName.DISPLAY_NAME,
+                R.string.full_name, FLAGS_PERSON_NAME));
+        kind.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix,
+                FLAGS_PERSON_NAME).setLongForm(true));
+        kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+                FLAGS_PERSON_NAME).setLongForm(true));
+        kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
+                FLAGS_PERSON_NAME).setLongForm(true));
+        kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+                FLAGS_PERSON_NAME).setLongForm(true));
+        kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
+                FLAGS_PERSON_NAME).setLongForm(true));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+                R.string.name_phonetic_family, FLAGS_PHONETIC));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
+                R.string.name_phonetic_middle, FLAGS_PHONETIC));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+                R.string.name_phonetic_given, FLAGS_PHONETIC));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindDisplayName(Context context) {
+        DataKind kind = addKind(new DataKind(DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME,
+                R.string.nameLabelsGroup, -1, -1, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(StructuredName.DISPLAY_NAME,
                 R.string.full_name, FLAGS_PERSON_NAME).setShortForm(true));
 
         boolean displayOrderPrimary =
@@ -121,12 +150,6 @@
                     FLAGS_PERSON_NAME).setLongForm(true));
             kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
                     FLAGS_PERSON_NAME).setLongForm(true));
-            kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
-                    R.string.name_phonetic_family, FLAGS_PHONETIC).setLongForm(true));
-            kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
-                    R.string.name_phonetic_middle, FLAGS_PHONETIC).setLongForm(true));
-            kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
-                    R.string.name_phonetic_given, FLAGS_PHONETIC).setLongForm(true));
         } else {
             kind.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix,
                     FLAGS_PERSON_NAME).setLongForm(true));
@@ -138,17 +161,30 @@
                     FLAGS_PERSON_NAME).setLongForm(true));
             kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
                     FLAGS_PERSON_NAME).setLongForm(true));
-            kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
-                    R.string.name_phonetic_given, FLAGS_PHONETIC).setLongForm(true));
-            kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
-                    R.string.name_phonetic_middle, FLAGS_PHONETIC).setLongForm(true));
-            kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
-                    R.string.name_phonetic_family, FLAGS_PHONETIC).setLongForm(true));
         }
 
         return kind;
     }
 
+    protected DataKind addDataKindPhoneticName(Context context) {
+        DataKind kind = addKind(new DataKind(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME,
+                R.string.name_phonetic, -1, -1, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(DataKind.PSEUDO_COLUMN_PHONETIC_NAME,
+                R.string.name_phonetic, FLAGS_PHONETIC).setShortForm(true));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+                R.string.name_phonetic_family, FLAGS_PHONETIC).setLongForm(true));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
+                R.string.name_phonetic_middle, FLAGS_PHONETIC).setLongForm(true));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+                R.string.name_phonetic_given, FLAGS_PHONETIC).setLongForm(true));
+
+        return kind;
+    }
+
     protected DataKind addDataKindNickname(Context context) {
         DataKind kind = addKind(new DataKind(Nickname.CONTENT_ITEM_TYPE,
                     R.string.nicknameLabelsGroup, -1, 115, true));
diff --git a/src/com/android/contacts/model/EntityDeltaList.java b/src/com/android/contacts/model/EntityDeltaList.java
index a998a37..9b7bdc6 100644
--- a/src/com/android/contacts/model/EntityDeltaList.java
+++ b/src/com/android/contacts/model/EntityDeltaList.java
@@ -340,10 +340,18 @@
         mSplitRawContacts = true;
     }
 
+    public boolean isMarkedForSplitting() {
+        return mSplitRawContacts;
+    }
+
     public void setJoinWithRawContacts(long[] rawContactIds) {
         mJoinWithRawContactIds = rawContactIds;
     }
 
+    public boolean isMarkedForJoining() {
+        return mJoinWithRawContactIds != null && mJoinWithRawContactIds.length > 0;
+    }
+
     /** {@inheritDoc} */
     public int describeContents() {
         // Nothing special about this parcel
@@ -358,6 +366,7 @@
             dest.writeParcelable(delta, flags);
         }
         dest.writeLongArray(mJoinWithRawContactIds);
+        dest.writeInt(mSplitRawContacts ? 1 : 0);
     }
 
     @SuppressWarnings("unchecked")
@@ -368,6 +377,7 @@
             this.add(source.<EntityDelta> readParcelable(loader));
         }
         mJoinWithRawContactIds = source.createLongArray();
+        mSplitRawContacts = source.readInt() != 0;
     }
 
     public static final Parcelable.Creator<EntityDeltaList> CREATOR =
diff --git a/src/com/android/contacts/model/EntityModifier.java b/src/com/android/contacts/model/EntityModifier.java
index c58d813..1e014ef 100644
--- a/src/com/android/contacts/model/EntityModifier.java
+++ b/src/com/android/contacts/model/EntityModifier.java
@@ -26,13 +26,12 @@
 import android.content.ContentValues;
 import android.content.Context;
 import android.database.Cursor;
+import android.net.Uri;
 import android.os.Bundle;
-import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
-import android.provider.ContactsContract.Data;
-import android.provider.ContactsContract.Intents;
-import android.provider.ContactsContract.RawContacts;
+import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.BaseTypes;
 import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
 import android.provider.ContactsContract.CommonDataKinds.Im;
 import android.provider.ContactsContract.CommonDataKinds.Note;
 import android.provider.ContactsContract.CommonDataKinds.Organization;
@@ -40,7 +39,10 @@
 import android.provider.ContactsContract.CommonDataKinds.Photo;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Intents;
 import android.provider.ContactsContract.Intents.Insert;
+import android.provider.ContactsContract.RawContacts;
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.SparseIntArray;
@@ -344,7 +346,7 @@
         }
 
         final ValuesDelta child = ValuesDelta.fromAfter(after);
-	state.addEntry(child);
+        state.addEntry(child);
         return child;
     }
 
@@ -357,11 +359,26 @@
     public static void trimEmpty(EntityDeltaList set, AccountTypeManager accountTypes) {
         for (EntityDelta state : set) {
             final String accountType = state.getValues().getAsString(RawContacts.ACCOUNT_TYPE);
-            final AccountType source = accountTypes.getAccountType(accountType);
-            trimEmpty(state, source);
+            final AccountType type = accountTypes.getAccountType(accountType);
+            trimEmpty(state, type);
         }
     }
 
+    public static boolean hasChanges(EntityDeltaList set, AccountTypeManager accountTypes) {
+        if (set.isMarkedForSplitting() || set.isMarkedForJoining()) {
+            return true;
+        }
+
+        for (EntityDelta state : set) {
+            final String accountType = state.getValues().getAsString(RawContacts.ACCOUNT_TYPE);
+            final AccountType type = accountTypes.getAccountType(accountType);
+            if (hasChanges(state, type)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     /**
      * Processing to trim any empty {@link ValuesDelta} rows from the given
      * {@link EntityDelta}, assuming the given {@link AccountType} dictates
@@ -406,24 +423,45 @@
         }
     }
 
+    private static boolean hasChanges(EntityDelta state, AccountType accountType) {
+        for (DataKind kind : accountType.getSortedDataKinds()) {
+            final String mimeType = kind.mimeType;
+            final ArrayList<ValuesDelta> entries = state.getMimeEntries(mimeType);
+            if (entries == null) continue;
+
+            for (ValuesDelta entry : entries) {
+                // An empty Insert must be ignored, because it won't save anything (an example
+                // is an empty name that stays empty)
+                final boolean isRealInsert = entry.isInsert() && !isEmpty(entry, kind);
+                if (isRealInsert || entry.isUpdate() || entry.isDelete()) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
     /**
      * Test if the given {@link ValuesDelta} would be considered "empty" in
      * terms of {@link DataKind#fieldList}.
      */
     public static boolean isEmpty(ValuesDelta values, DataKind kind) {
+        if (Photo.CONTENT_ITEM_TYPE.equals(kind.mimeType)) {
+            return values.isInsert() && values.getAsByteArray(Photo.PHOTO) == null;
+        }
+
         // No defined fields mean this row is always empty
         if (kind.fieldList == null) return true;
 
-        boolean hasValues = false;
         for (EditField field : kind.fieldList) {
             // If any field has values, we're not empty
             final String value = values.getAsString(field.column);
             if (ContactsUtils.isGraphic(value)) {
-                hasValues = true;
+                return false;
             }
         }
 
-        return !hasValues;
+        return true;
     }
 
     /**
@@ -455,28 +493,8 @@
             return;
         }
 
-        {
-            // StructuredName
-            EntityModifier.ensureKindExists(state, accountType, StructuredName.CONTENT_ITEM_TYPE);
-            final ValuesDelta child = state.getPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE);
-
-            final String name = extras.getString(Insert.NAME);
-            if (ContactsUtils.isGraphic(name)) {
-                child.put(StructuredName.DISPLAY_NAME, name);
-            }
-
-            final String phoneticName = extras.getString(Insert.PHONETIC_NAME);
-            if (ContactsUtils.isGraphic(phoneticName)) {
-                child.put(StructuredName.PHONETIC_GIVEN_NAME, phoneticName);
-            }
-        }
-
-        {
-            // StructuredPostal
-            final DataKind kind = accountType.getKindForMimetype(StructuredPostal.CONTENT_ITEM_TYPE);
-            parseExtras(state, kind, extras, Insert.POSTAL_TYPE, Insert.POSTAL,
-                    StructuredPostal.FORMATTED_ADDRESS);
-        }
+        parseStructuredNameExtra(context, accountType, state, extras);
+        parseStructuredPostalExtra(accountType, state, extras);
 
         {
             // Phone
@@ -542,6 +560,87 @@
         }
     }
 
+    private static void parseStructuredNameExtra(
+            Context context, AccountType accountType, EntityDelta state, Bundle extras) {
+        // StructuredName
+        EntityModifier.ensureKindExists(state, accountType, StructuredName.CONTENT_ITEM_TYPE);
+        final ValuesDelta child = state.getPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE);
+
+        final String name = extras.getString(Insert.NAME);
+        if (ContactsUtils.isGraphic(name)) {
+            final DataKind kind = accountType.getKindForMimetype(StructuredName.CONTENT_ITEM_TYPE);
+            boolean supportsDisplayName = false;
+            if (kind.fieldList != null) {
+                for (EditField field : kind.fieldList) {
+                    if (StructuredName.DISPLAY_NAME.equals(field.column)) {
+                        supportsDisplayName = true;
+                        break;
+                    }
+                }
+            }
+
+            if (supportsDisplayName) {
+                child.put(StructuredName.DISPLAY_NAME, name);
+            } else {
+                Uri uri = ContactsContract.AUTHORITY_URI.buildUpon()
+                        .appendPath("complete_name")
+                        .appendQueryParameter(StructuredName.DISPLAY_NAME, name)
+                        .build();
+                Cursor cursor = context.getContentResolver().query(uri,
+                        new String[]{
+                                StructuredName.PREFIX,
+                                StructuredName.GIVEN_NAME,
+                                StructuredName.MIDDLE_NAME,
+                                StructuredName.FAMILY_NAME,
+                                StructuredName.SUFFIX,
+                        }, null, null, null);
+
+                try {
+                    if (cursor.moveToFirst()) {
+                        child.put(StructuredName.PREFIX, cursor.getString(0));
+                        child.put(StructuredName.GIVEN_NAME, cursor.getString(1));
+                        child.put(StructuredName.MIDDLE_NAME, cursor.getString(2));
+                        child.put(StructuredName.FAMILY_NAME, cursor.getString(3));
+                        child.put(StructuredName.SUFFIX, cursor.getString(4));
+                    }
+                } finally {
+                    cursor.close();
+                }
+            }
+        }
+
+        final String phoneticName = extras.getString(Insert.PHONETIC_NAME);
+        if (ContactsUtils.isGraphic(phoneticName)) {
+            child.put(StructuredName.PHONETIC_GIVEN_NAME, phoneticName);
+        }
+    }
+
+    private static void parseStructuredPostalExtra(
+            AccountType accountType, EntityDelta state, Bundle extras) {
+        // StructuredPostal
+        final DataKind kind = accountType.getKindForMimetype(StructuredPostal.CONTENT_ITEM_TYPE);
+        final ValuesDelta child = parseExtras(state, kind, extras, Insert.POSTAL_TYPE,
+                Insert.POSTAL, StructuredPostal.FORMATTED_ADDRESS);
+        String address = child == null ? null
+                : child.getAsString(StructuredPostal.FORMATTED_ADDRESS);
+        if (!TextUtils.isEmpty(address)) {
+            boolean supportsFormatted = false;
+            if (kind.fieldList != null) {
+                for (EditField field : kind.fieldList) {
+                    if (StructuredPostal.FORMATTED_ADDRESS.equals(field.column)) {
+                        supportsFormatted = true;
+                        break;
+                    }
+                }
+            }
+
+            if (!supportsFormatted) {
+                child.put(StructuredPostal.STREET, address);
+                child.putNull(StructuredPostal.FORMATTED_ADDRESS);
+            }
+        }
+    }
+
     private static void parseValues(
             EntityDelta state, AccountType accountType, ArrayList<ContentValues> dataValueList) {
         for (ContentValues values : dataValueList) {
@@ -721,6 +820,7 @@
      * Attempt to parse legacy {@link Insert#IM_PROTOCOL} values, replacing them
      * with updated values.
      */
+    @SuppressWarnings("deprecation")
     private static void fixupLegacyImType(Bundle bundle) {
         final String encodedString = bundle.getString(Insert.IM_PROTOCOL);
         if (encodedString == null) return;
@@ -748,17 +848,17 @@
      * @param valueExtra {@link Bundle} key that holds the incoming value.
      * @param valueColumn Column to write value into {@link ValuesDelta}.
      */
-    public static void parseExtras(EntityDelta state, DataKind kind, Bundle extras,
+    public static ValuesDelta parseExtras(EntityDelta state, DataKind kind, Bundle extras,
             String typeExtra, String valueExtra, String valueColumn) {
         final CharSequence value = extras.getCharSequence(valueExtra);
 
         // Bail early if account type doesn't handle this MIME type
-        if (kind == null) return;
+        if (kind == null) return null;
 
         // Bail when can't insert type, or value missing
         final boolean canInsert = EntityModifier.canInsert(state, kind);
         final boolean validValue = (value != null && TextUtils.isGraphic(value));
-        if (!validValue || !canInsert) return;
+        if (!validValue || !canInsert) return null;
 
         // Find exact type when requested, otherwise best available type
         final boolean hasType = extras.containsKey(typeExtra);
@@ -775,5 +875,7 @@
             final String customType = extras.getString(typeExtra);
             child.put(editType.customColumn, customType);
         }
+
+        return child;
     }
 }
diff --git a/src/com/android/contacts/model/ExchangeAccountType.java b/src/com/android/contacts/model/ExchangeAccountType.java
index 4442a70..2b1a520 100644
--- a/src/com/android/contacts/model/ExchangeAccountType.java
+++ b/src/com/android/contacts/model/ExchangeAccountType.java
@@ -47,6 +47,8 @@
         this.summaryResPackageName = resPackageName;
 
         addDataKindStructuredName(context);
+        addDataKindDisplayName(context);
+        addDataKindPhoneticName(context);
         addDataKindNickname(context);
         addDataKindPhone(context);
         addDataKindEmail(context);
@@ -62,7 +64,37 @@
 
     @Override
     protected DataKind addDataKindStructuredName(Context context) {
-        final DataKind kind = super.addDataKindStructuredName(context);
+        DataKind kind = addKind(new DataKind(StructuredName.CONTENT_ITEM_TYPE,
+                R.string.nameLabelsGroup, -1, -1, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix,
+                FLAGS_PERSON_NAME).setOptional(true));
+        kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME,
+                R.string.name_family, FLAGS_PERSON_NAME));
+        kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME,
+                R.string.name_middle, FLAGS_PERSON_NAME));
+        kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME,
+                R.string.name_given, FLAGS_PERSON_NAME));
+        kind.fieldList.add(new EditField(StructuredName.SUFFIX,
+                R.string.name_suffix, FLAGS_PERSON_NAME));
+
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+                R.string.name_phonetic_family, FLAGS_PHONETIC));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+                R.string.name_phonetic_given, FLAGS_PHONETIC));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindDisplayName(Context context) {
+        DataKind kind = addKind(new DataKind(DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME,
+                R.string.nameLabelsGroup, -1, -1, true));
 
         boolean displayOrderPrimary =
                 context.getResources().getBoolean(R.bool.config_editor_field_order_primary);
@@ -78,12 +110,6 @@
                     R.string.name_middle, FLAGS_PERSON_NAME).setOptional(true));
             kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME,
                     R.string.name_given, FLAGS_PERSON_NAME));
-            kind.fieldList.add(new EditField(StructuredName.SUFFIX,
-                    R.string.name_suffix, FLAGS_PERSON_NAME).setOptional(true));
-            kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
-                    R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true));
-            kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
-                    R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true));
         } else {
             kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME,
                     R.string.name_given, FLAGS_PERSON_NAME));
@@ -91,13 +117,27 @@
                     R.string.name_middle, FLAGS_PERSON_NAME).setOptional(true));
             kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME,
                     R.string.name_family, FLAGS_PERSON_NAME));
-            kind.fieldList.add(new EditField(StructuredName.SUFFIX,
-                    R.string.name_suffix, FLAGS_PERSON_NAME).setOptional(true));
-            kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
-                    R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true));
-            kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
-                    R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true));
         }
+        kind.fieldList.add(new EditField(StructuredName.SUFFIX,
+                R.string.name_suffix, FLAGS_PERSON_NAME).setOptional(true));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindPhoneticName(Context context) {
+        DataKind kind = addKind(new DataKind(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME,
+                R.string.name_phonetic, -1, -1, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+                R.string.name_phonetic_family, FLAGS_PHONETIC));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+                R.string.name_phonetic_given, FLAGS_PHONETIC));
 
         return kind;
     }
diff --git a/src/com/android/contacts/model/ExternalAccountType.java b/src/com/android/contacts/model/ExternalAccountType.java
index 0b895f6..9ce6fd9 100644
--- a/src/com/android/contacts/model/ExternalAccountType.java
+++ b/src/com/android/contacts/model/ExternalAccountType.java
@@ -73,6 +73,8 @@
 
         // Bring in name and photo from fallback source, which are non-optional
         addDataKindStructuredName(context);
+        addDataKindDisplayName(context);
+        addDataKindPhoneticName(context);
         addDataKindPhoto(context);
     }
 
diff --git a/src/com/android/contacts/model/FallbackAccountType.java b/src/com/android/contacts/model/FallbackAccountType.java
index 05e6556..13540be 100644
--- a/src/com/android/contacts/model/FallbackAccountType.java
+++ b/src/com/android/contacts/model/FallbackAccountType.java
@@ -31,6 +31,8 @@
         this.summaryResPackageName = resPackageName;
 
         addDataKindStructuredName(context);
+        addDataKindDisplayName(context);
+        addDataKindPhoneticName(context);
         addDataKindNickname(context);
         addDataKindPhone(context);
         addDataKindEmail(context);
diff --git a/src/com/android/contacts/model/GoogleAccountType.java b/src/com/android/contacts/model/GoogleAccountType.java
index d369b28..af25691 100644
--- a/src/com/android/contacts/model/GoogleAccountType.java
+++ b/src/com/android/contacts/model/GoogleAccountType.java
@@ -40,6 +40,8 @@
         this.summaryResPackageName = resPackageName;
 
         addDataKindStructuredName(context);
+        addDataKindDisplayName(context);
+        addDataKindPhoneticName(context);
         addDataKindNickname(context);
         addDataKindPhone(context);
         addDataKindEmail(context);
diff --git a/src/com/android/contacts/quickcontact/QuickContactWindow.java b/src/com/android/contacts/quickcontact/QuickContactWindow.java
index 063d446..147e364 100644
--- a/src/com/android/contacts/quickcontact/QuickContactWindow.java
+++ b/src/com/android/contacts/quickcontact/QuickContactWindow.java
@@ -32,7 +32,6 @@
 import android.animation.AnimatorListenerAdapter;
 import android.animation.ObjectAnimator;
 import android.content.ActivityNotFoundException;
-import android.content.ContentUris;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
@@ -100,6 +99,7 @@
         NotifyingAsyncQueryHandler.AsyncQueryListener, View.OnClickListener,
         AbsListView.OnItemClickListener, KeyEvent.Callback, OnGlobalLayoutListener,
         QuickContactRootLayout.Listener {
+
     private static final String TAG = "QuickContactWindow";
 
     /**
@@ -115,6 +115,12 @@
     private final static int ANIMATION_EXPAND_TIME = 100;
     private final static int ANIMATION_COLLAPSE_TIME = 100;
 
+    /**
+     * If the anchor is wider than (quick contact width * this constant) then
+     * center quick contact.  Otherwise, left-align.
+     */
+    private static final double MIN_RELATIVE_ANCHOR_WIDTH_TO_CENTER = 0.5;
+
     private final Context mContext;
     private final LayoutInflater mInflater;
     private final WindowManager mWindowManager;
@@ -379,20 +385,7 @@
      * {@link Contacts#CONTENT_LOOKUP_URI} style {@link Uri}.
      */
     private Uri getDataUri(Uri lookupUri) {
-        // TODO: Formalize method of extracting LOOKUP_KEY
-        final List<String> path = lookupUri.getPathSegments();
-        final boolean validLookup = path.size() >= 3 && "lookup".equals(path.get(1));
-        if (!validLookup) {
-            // We only accept valid lookup-style Uris
-            throw new IllegalArgumentException("Expecting lookup-style Uri");
-        } else if (path.size() == 3) {
-            // No direct _ID provided, so force a lookup
-            lookupUri = Contacts.lookupContact(mContext.getContentResolver(), lookupUri);
-        }
-
-        final long contactId = ContentUris.parseId(lookupUri);
-        return Uri.withAppendedPath(ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId),
-                Contacts.Data.CONTENT_DIRECTORY);
+        return Uri.withAppendedPath(lookupUri, Contacts.Data.CONTENT_DIRECTORY);
     }
 
     /**
@@ -415,9 +408,13 @@
                 R.dimen.quick_contact_width);
         layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
 
-        // Try to left align with the anchor control
+        // Try to left align with the anchor control or center if the anchor is wide
         if (mAnchor.left + layoutParams.width <= mScreenWidth) {
-            layoutParams.x = mAnchor.left;
+            if (mAnchor.width() > layoutParams.width * MIN_RELATIVE_ANCHOR_WIDTH_TO_CENTER) {
+                layoutParams.x = mAnchor.left + (mAnchor.width() - layoutParams.width) / 2;
+            } else {
+                layoutParams.x = mAnchor.left;
+            }
         } else {
             // Not enough space. Try to right align to the anchor
             if (mAnchor.right - layoutParams.width >= 0) {
@@ -637,7 +634,7 @@
      * Handle the result from the {@link #TOKEN_DATA} query.
      */
     private void handleData(Cursor cursor) {
-        final ResolveCache cache = ResolveCache.getInstance(mContext.getPackageManager());
+        final ResolveCache cache = ResolveCache.getInstance(mContext);
         if (cursor == null) return;
         if (cursor.getCount() == 0) {
             Toast.makeText(mContext, R.string.invalidContactMessage, Toast.LENGTH_LONG).show();
@@ -733,7 +730,17 @@
             }
         }
 
-        if (mDefaultsMap.size() != 0) {
+        // Make sure that we only display the "clear default" action if there
+        // are actually several items to chose from
+        boolean shouldDisplayClearDefaults = false;
+        for (String mimetype : mDefaultsMap.keySet()) {
+            if (mActions.get(mimetype).size() > 1) {
+                shouldDisplayClearDefaults = true;
+                break;
+            }
+        }
+
+        if (shouldDisplayClearDefaults) {
             final Action action = new ClearDefaultsAction();
             mActions.put(action.getMimeType(), action);
         }
@@ -1303,6 +1310,12 @@
 
     /** {@inheritDoc} */
     @Override
+    public boolean dispatchGenericMotionEvent(MotionEvent event) {
+        return mWindow.superDispatchGenericMotionEvent(event);
+    }
+
+    /** {@inheritDoc} */
+    @Override
     public void onContentChanged() {
     }
 
diff --git a/src/com/android/contacts/quickcontact/ResolveCache.java b/src/com/android/contacts/quickcontact/ResolveCache.java
index 5d84253..2b9e92f 100644
--- a/src/com/android/contacts/quickcontact/ResolveCache.java
+++ b/src/com/android/contacts/quickcontact/ResolveCache.java
@@ -16,14 +16,17 @@
 
 package com.android.contacts.quickcontact;
 
+import com.android.contacts.util.PhoneCapabilityTester;
 import com.google.android.collect.Sets;
 
+import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.graphics.drawable.Drawable;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
 import android.text.TextUtils;
 
 import java.lang.ref.SoftReference;
@@ -51,6 +54,7 @@
             "com.android.phone",
             "com.android.browser");
 
+    private final Context mContext;
     private final PackageManager mPackageManager;
 
     private static ResolveCache sInstance;
@@ -59,9 +63,9 @@
      * Returns an instance of the ResolveCache. Only one internal instance is kept, so
      * the argument packageManagers is ignored for all but the first call
      */
-    public synchronized static ResolveCache getInstance(PackageManager packageManager) {
+    public synchronized static ResolveCache getInstance(Context context) {
         if (sInstance == null) {
-            return sInstance = new ResolveCache(packageManager);
+            return sInstance = new ResolveCache(context.getApplicationContext());
         }
         return sInstance;
     }
@@ -81,8 +85,10 @@
 
     private HashMap<String, Entry> mCache = new HashMap<String, Entry>();
 
-    private ResolveCache(PackageManager packageManager) {
-        mPackageManager = packageManager;
+
+    private ResolveCache(Context context) {
+        mContext = context;
+        mPackageManager = context.getPackageManager();
     }
 
     /**
@@ -95,7 +101,12 @@
         if (entry != null) return entry;
         entry = new Entry();
 
-        final Intent intent = action.getIntent();
+        Intent intent = action.getIntent();
+        if (SipAddress.CONTENT_ITEM_TYPE.equals(mimeType)
+                && !PhoneCapabilityTester.isSipPhone(mContext)) {
+            intent = null;
+        }
+
         if (intent != null) {
             final List<ResolveInfo> matches = mPackageManager.queryIntentActivities(intent,
                     PackageManager.MATCH_DEFAULT_ONLY);
diff --git a/src/com/android/contacts/socialwidget/SocialWidgetConfigureActivity.java b/src/com/android/contacts/socialwidget/SocialWidgetConfigureActivity.java
index 4201cee..98812d9 100644
--- a/src/com/android/contacts/socialwidget/SocialWidgetConfigureActivity.java
+++ b/src/com/android/contacts/socialwidget/SocialWidgetConfigureActivity.java
@@ -51,7 +51,7 @@
 
             // Update the widget
             SocialWidgetProvider.loadWidgetData(
-                    context, AppWidgetManager.getInstance(this), widgetId);
+                    context, AppWidgetManager.getInstance(this), widgetId, true);
 
             // Return OK so that the system won't remove the widget
             final Intent resultValue = new Intent();
diff --git a/src/com/android/contacts/socialwidget/SocialWidgetProvider.java b/src/com/android/contacts/socialwidget/SocialWidgetProvider.java
index 0330c89..92118c0 100644
--- a/src/com/android/contacts/socialwidget/SocialWidgetProvider.java
+++ b/src/com/android/contacts/socialwidget/SocialWidgetProvider.java
@@ -19,10 +19,12 @@
 import com.android.contacts.ContactLoader;
 import com.android.contacts.R;
 import com.android.contacts.util.ContactBadgeUtil;
+import com.android.contacts.util.DataStatus;
 
 import android.app.PendingIntent;
 import android.appwidget.AppWidgetManager;
 import android.appwidget.AppWidgetProvider;
+import android.content.ContentUris;
 import android.content.Context;
 import android.content.Intent;
 import android.content.Loader;
@@ -30,6 +32,7 @@
 import android.graphics.BitmapFactory;
 import android.graphics.Typeface;
 import android.net.Uri;
+import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.QuickContact;
 import android.text.SpannableStringBuilder;
 import android.text.TextUtils;
@@ -40,6 +43,8 @@
 import android.view.View;
 import android.widget.RemoteViews;
 
+import java.util.HashMap;
+
 public class SocialWidgetProvider extends AppWidgetProvider {
     private static final String TAG = "SocialWidgetProvider";
 
@@ -58,7 +63,7 @@
         }
 
         for (int appWidgetId : appWidgetIds) {
-            loadWidgetData(context, appWidgetManager, appWidgetId);
+            loadWidgetData(context, appWidgetManager, appWidgetId, false);
         }
     }
 
@@ -75,41 +80,46 @@
         SocialWidgetSettings.getInstance().remove(context, appWidgetIds);
     }
 
-    public static void loadWidgetData(
-            final Context context, final AppWidgetManager appWidgetManager, final int widgetId) {
-        final ContactLoader previousLoader = sLoaders.get(widgetId);
+    public static void loadWidgetData(final Context context,
+            final AppWidgetManager appWidgetManager, final int widgetId, boolean forceLoad) {
+        ContactLoader previousLoader = sLoaders.get(widgetId);
+
+        if (previousLoader != null && !forceLoad) {
+            previousLoader.startLoading();
+            return;
+        }
 
         if (previousLoader != null) {
-            previousLoader.startLoading();
-        } else {
-            // Show that we are loading
-            final RemoteViews loadingViews =
-                    new RemoteViews(context.getPackageName(), R.layout.social_widget);
-            loadingViews.setTextViewText(R.id.name,
-                    context.getString(R.string.social_widget_loading));
-            loadingViews.setViewVisibility(R.id.name, View.VISIBLE);
-            loadingViews.setViewVisibility(R.id.name_and_snippet, View.GONE);
-            appWidgetManager.updateAppWidget(widgetId, loadingViews);
-
-            // Load
-            final Uri contactUri =
-                    SocialWidgetSettings.getInstance().getContactUri(context, widgetId);
-            if (contactUri == null) {
-                // Not yet set-up (this can happen while the Configuration activity is visible)
-                return;
-            }
-            final ContactLoader contactLoader = new ContactLoader(context, contactUri);
-            contactLoader.registerListener(0,
-                    new ContactLoader.OnLoadCompleteListener<ContactLoader.Result>() {
-                        @Override
-                        public void onLoadComplete(Loader<ContactLoader.Result> loader,
-                                ContactLoader.Result contactData) {
-                            bindRemoteViews(context, widgetId, appWidgetManager, contactData);
-                        }
-                    });
-            contactLoader.startLoading();
-            sLoaders.append(widgetId, contactLoader);
+            previousLoader.reset();
         }
+
+        // Show that we are loading
+        final RemoteViews loadingViews =
+                new RemoteViews(context.getPackageName(), R.layout.social_widget);
+        loadingViews.setTextViewText(R.id.name,
+                context.getString(R.string.social_widget_loading));
+        loadingViews.setViewVisibility(R.id.name, View.VISIBLE);
+        loadingViews.setViewVisibility(R.id.name_and_snippet, View.GONE);
+        appWidgetManager.updateAppWidget(widgetId, loadingViews);
+
+        // Load
+        final Uri contactUri =
+                SocialWidgetSettings.getInstance().getContactUri(context, widgetId);
+        if (contactUri == null) {
+            // Not yet set-up (this can happen while the Configuration activity is visible)
+            return;
+        }
+        final ContactLoader contactLoader = new ContactLoader(context, contactUri);
+        contactLoader.registerListener(0,
+                new ContactLoader.OnLoadCompleteListener<ContactLoader.Result>() {
+                    @Override
+                    public void onLoadComplete(Loader<ContactLoader.Result> loader,
+                            ContactLoader.Result contactData) {
+                        bindRemoteViews(context, widgetId, appWidgetManager, contactData);
+                    }
+                });
+        contactLoader.startLoading();
+        sLoaders.append(widgetId, contactLoader);
     }
 
     private static void bindRemoteViews(final Context context, final int widgetId,
@@ -122,13 +132,10 @@
         if (contactData == ContactLoader.Result.ERROR ||
                 contactData == ContactLoader.Result.NOT_FOUND) {
             setDisplayNameAndSnippet(context, views,
-                    context.getString(R.string.invalidContactMessage), null, null);
+                    context.getString(R.string.invalidContactMessage), null, null, null);
             setPhoto(views, ContactBadgeUtil.loadPlaceholderPhoto(context));
             setStatusAttribution(views, null);
         } else {
-            setDisplayNameAndSnippet(context, views, contactData.getDisplayName(),
-                    contactData.getPhoneticName(), contactData.getSocialSnippet());
-
             byte[] photo = contactData.getPhotoBinaryData();
             setPhoto(views, photo != null
                     ? BitmapFactory.decodeByteArray(photo, 0, photo.length)
@@ -148,6 +155,9 @@
             final PendingIntent pendingIntent = PendingIntent.getActivity(context,
                     0, intent, 0);
             views.setOnClickPendingIntent(R.id.border, pendingIntent);
+
+            setDisplayNameAndSnippet(context, views, contactData.getDisplayName(),
+                    contactData.getPhoneticName(), contactData.getStatuses(), pendingIntent);
         }
 
         // Configure UI
@@ -164,7 +174,7 @@
      */
     private static void setDisplayNameAndSnippet(Context context, RemoteViews views,
             CharSequence displayName, CharSequence phoneticName,
-            CharSequence snippet) {
+            HashMap<Long, DataStatus> statuses, PendingIntent defaultIntent) {
         SpannableStringBuilder sb = new SpannableStringBuilder();
 
         CharSequence name = displayName;
@@ -180,20 +190,41 @@
         sb.setSpan(sizeSpan, 0, name.length(), 0);
         sb.setSpan(styleSpan, 0, name.length(), 0);
 
-        if (TextUtils.isEmpty(snippet)) {
+        long latestStatusId = 0;
+        DataStatus latestStatus = null;
+        if (statuses != null) {
+            for (HashMap.Entry<Long, DataStatus> entry : statuses.entrySet()) {
+                DataStatus status = entry.getValue();
+                if (!TextUtils.isEmpty(status.getStatus())
+                        && (latestStatus == null
+                                || latestStatus.getTimestamp() < status.getTimestamp())) {
+                    latestStatusId = entry.getKey();
+                    latestStatus = status;
+                }
+            }
+        }
+
+        if (latestStatus == null) {
             views.setTextViewText(R.id.name, sb);
             views.setViewVisibility(R.id.name, View.VISIBLE);
             views.setViewVisibility(R.id.name_and_snippet, View.GONE);
+            views.setOnClickPendingIntent(R.id.widget_container, defaultIntent);
         } else {
-            if (snippet.length() <= SHORT_SNIPPET_LENGTH) {
+            CharSequence status = latestStatus.getStatus();
+            if (status.length() <= SHORT_SNIPPET_LENGTH) {
                 sb.append("\n");
             } else {
                 sb.append("  ");
             }
-            sb.append(snippet);
+            sb.append(status);
             views.setTextViewText(R.id.name_and_snippet, sb);
             views.setViewVisibility(R.id.name, View.GONE);
             views.setViewVisibility(R.id.name_and_snippet, View.VISIBLE);
+            final Intent intent = new Intent(Intent.ACTION_VIEW,
+                    ContentUris.withAppendedId(Data.CONTENT_URI, latestStatusId));
+
+            views.setOnClickPendingIntent(R.id.name_and_snippet_container,
+                    PendingIntent.getActivity(context, 0, intent, 0));
         }
     }
 
diff --git a/src/com/android/contacts/util/DataStatus.java b/src/com/android/contacts/util/DataStatus.java
index ec3c1e5..f267615 100644
--- a/src/com/android/contacts/util/DataStatus.java
+++ b/src/com/android/contacts/util/DataStatus.java
@@ -94,6 +94,10 @@
         return mStatus;
     }
 
+    public long getTimestamp() {
+        return mTimestamp;
+    }
+
     /**
      * Build any timestamp and label into a single string.
      */
diff --git a/src/com/android/contacts/util/DateUtils.java b/src/com/android/contacts/util/DateUtils.java
index 40570f0..ed9eb94 100644
--- a/src/com/android/contacts/util/DateUtils.java
+++ b/src/com/android/contacts/util/DateUtils.java
@@ -22,40 +22,51 @@
 import java.text.ParsePosition;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Locale;
+import java.util.TimeZone;
 
 /**
  * Utility methods for processing dates.
  */
 public class DateUtils {
-    public static final SimpleDateFormat NO_YEAR_DATE_FORMAT = new SimpleDateFormat("--MM-dd");
-    public static final SimpleDateFormat FULL_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
+    public static final TimeZone UTC_TIMEZONE = TimeZone.getTimeZone("UTC");
+
+    // All the SimpleDateFormats in this class use the UTC timezone
+    public static final SimpleDateFormat NO_YEAR_DATE_FORMAT =
+            new SimpleDateFormat("--MM-dd", Locale.US);
+    public static final SimpleDateFormat FULL_DATE_FORMAT =
+            new SimpleDateFormat("yyyy-MM-dd", Locale.US);
     public static final SimpleDateFormat DATE_AND_TIME_FORMAT =
-            new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
+            new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
 
     // Variations of ISO 8601 date format.  Do not change the order - it does affect the
     // result in ambiguous cases.
     private static final SimpleDateFormat[] DATE_FORMATS = {
         FULL_DATE_FORMAT,
         DATE_AND_TIME_FORMAT,
-        new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'"),
-        new SimpleDateFormat("yyyyMMdd"),
-        new SimpleDateFormat("yyyyMMdd'T'HHmmssSSS'Z'"),
-        new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"),
-        new SimpleDateFormat("yyyyMMdd'T'HHmm'Z'"),
+        new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US),
+        new SimpleDateFormat("yyyyMMdd", Locale.US),
+        new SimpleDateFormat("yyyyMMdd'T'HHmmssSSS'Z'", Locale.US),
+        new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'", Locale.US),
+        new SimpleDateFormat("yyyyMMdd'T'HHmm'Z'", Locale.US),
     };
 
-    static {
-        for (SimpleDateFormat format : DATE_FORMATS) {
-            format.setLenient(true);
-        }
-    }
-
     private static final java.text.DateFormat FORMAT_WITHOUT_YEAR_MONTH_FIRST =
             new SimpleDateFormat("MMMM dd");
 
     private static final java.text.DateFormat FORMAT_WITHOUT_YEAR_DATE_FIRST =
             new SimpleDateFormat("dd MMMM");
 
+    static {
+        for (SimpleDateFormat format : DATE_FORMATS) {
+            format.setLenient(true);
+            format.setTimeZone(UTC_TIMEZONE);
+        }
+        NO_YEAR_DATE_FORMAT.setTimeZone(UTC_TIMEZONE);
+        FORMAT_WITHOUT_YEAR_MONTH_FIRST.setTimeZone(UTC_TIMEZONE);
+        FORMAT_WITHOUT_YEAR_DATE_FIRST.setTimeZone(UTC_TIMEZONE);
+    }
+
     /**
      * Parses the supplied string to see if it looks like a date. If so,
      * returns the date.  Otherwise, returns null.
@@ -77,7 +88,7 @@
 
     /**
      * Parses the supplied string to see if it looks like a date. If so,
-     * returns the same date in a cleaned-up format.  Otherwise, returns
+     * returns the same date in a cleaned-up format for the user.  Otherwise, returns
      * the supplied string unchanged.
      */
     public static String formatDate(Context context, String string) {
@@ -114,9 +125,8 @@
                 date = f.parse(string, parsePosition);
                 if (parsePosition.getIndex() == string.length()) {
                     java.text.DateFormat outFormat = DateFormat.getDateFormat(context);
-                    synchronized (outFormat) {
-                        return outFormat.format(date);
-                    }
+                    outFormat.setTimeZone(UTC_TIMEZONE);
+                    return outFormat.format(date);
                 }
             }
         }
diff --git a/src/com/android/contacts/util/PhoneCapabilityTester.java b/src/com/android/contacts/util/PhoneCapabilityTester.java
index 961e3c9..23319aa 100644
--- a/src/com/android/contacts/util/PhoneCapabilityTester.java
+++ b/src/com/android/contacts/util/PhoneCapabilityTester.java
@@ -58,7 +58,7 @@
     private static void initialize(Context context) {
         final TelephonyManager telephonyManager = new TelephonyManager(context);
         sIsPhone = telephonyManager.isVoiceCapable();
-        sIsSipPhone = SipManager.isVoipSupported(context);
+        sIsSipPhone = sIsPhone && SipManager.isVoipSupported(context);
         sIsInitialized = true;
     }
 
diff --git a/src/com/android/contacts/vcard/ExportProcessor.java b/src/com/android/contacts/vcard/ExportProcessor.java
index c5f293b..67c9c4a 100644
--- a/src/com/android/contacts/vcard/ExportProcessor.java
+++ b/src/com/android/contacts/vcard/ExportProcessor.java
@@ -109,7 +109,7 @@
                 final String errorReason =
                     mService.getString(R.string.fail_reason_could_not_open_file,
                             uri, e.getMessage());
-                doFinishNotification(errorReason, "");
+                doFinishNotification(errorReason, null);
                 return;
             }
 
@@ -139,7 +139,7 @@
                 final String title =
                         mService.getString(R.string.fail_reason_could_not_initialize_exporter,
                                 translatedErrorReason);
-                doFinishNotification(title, "");
+                doFinishNotification(title, null);
                 return;
             }
 
@@ -147,7 +147,7 @@
             if (total == 0) {
                 final String title =
                         mService.getString(R.string.fail_reason_no_exportable_contact);
-                doFinishNotification(title, "");
+                doFinishNotification(title, null);
                 return;
             }
 
@@ -165,7 +165,7 @@
                     final String title =
                             mService.getString(R.string.fail_reason_error_occurred_during_export,
                                     translatedErrorReason);
-                    doFinishNotification(title, "");
+                    doFinishNotification(title, null);
                     return;
                 }
 
@@ -178,11 +178,16 @@
             }
             Log.i(LOG_TAG, "Successfully finished exporting vCard " + request.destUri);
 
+            if (DEBUG) {
+                Log.d(LOG_TAG, "Ask MediaScanner to scan the file: " + request.destUri.getPath());
+            }
+            mService.updateMediaScanner(request.destUri.getPath());
+
             successful = true;
             final String filename = uri.getLastPathSegment();
             final String title = mService.getString(R.string.exporting_vcard_finished_title,
                     filename);
-            doFinishNotification(title, "");
+            doFinishNotification(title, null);
         } finally {
             if (composer != null) {
                 composer.terminate();
diff --git a/src/com/android/contacts/vcard/ImportProcessor.java b/src/com/android/contacts/vcard/ImportProcessor.java
index 1b70025..4ea1ead 100644
--- a/src/com/android/contacts/vcard/ImportProcessor.java
+++ b/src/com/android/contacts/vcard/ImportProcessor.java
@@ -198,7 +198,7 @@
         }
         final Notification notification =
                    VCardService.constructFinishNotification(mService,
-                           description, description, intent);
+                           description, null, intent);
         mNotificationManager.notify(mJobId, notification);
     }
 
diff --git a/src/com/android/contacts/vcard/ProcessorBase.java b/src/com/android/contacts/vcard/ProcessorBase.java
index 833090d..073bcbb 100644
--- a/src/com/android/contacts/vcard/ProcessorBase.java
+++ b/src/com/android/contacts/vcard/ProcessorBase.java
@@ -39,6 +39,7 @@
      */
     public abstract int getType();
 
+    @Override
     public abstract void run();
 
     /**
@@ -49,8 +50,11 @@
      *
      * @see Future#cancel(boolean)
      */
+    @Override
     public abstract boolean cancel(boolean mayInterruptIfRunning);
+    @Override
     public abstract boolean isCancelled();
+    @Override
     public abstract boolean isDone();
 
     /**
diff --git a/src/com/android/contacts/vcard/VCardService.java b/src/com/android/contacts/vcard/VCardService.java
index 6422163..a4c0480 100644
--- a/src/com/android/contacts/vcard/VCardService.java
+++ b/src/com/android/contacts/vcard/VCardService.java
@@ -24,6 +24,8 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
+import android.media.MediaScannerConnection;
+import android.media.MediaScannerConnection.MediaScannerConnectionClient;
 import android.net.Uri;
 import android.os.Handler;
 import android.os.IBinder;
@@ -36,8 +38,10 @@
 import android.widget.Toast;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
@@ -101,6 +105,33 @@
         }
     });
 
+    private class CustomMediaScannerConnectionClient implements MediaScannerConnectionClient {
+        final MediaScannerConnection mConnection;
+        final String mPath;
+
+        public CustomMediaScannerConnectionClient(String path) {
+            mConnection = new MediaScannerConnection(VCardService.this, this);
+            mPath = path;
+        }
+
+        public void start() {
+            mConnection.connect();
+        }
+
+        @Override
+        public void onMediaScannerConnected() {
+            if (DEBUG) { Log.d(LOG_TAG, "Connected to MediaScanner. Start scanning."); }
+            mConnection.scanFile(mPath, null);
+        }
+
+        @Override
+        public void onScanCompleted(String path, Uri uri) {
+            if (DEBUG) { Log.d(LOG_TAG, "scan completed: " + path); }
+            mConnection.disconnect();
+            removeConnectionClient(this);
+        }
+    }
+
     private NotificationManager mNotificationManager;
 
     // Should be single thread, as we don't want to simultaneously handle import and export
@@ -113,6 +144,11 @@
     // Key is jobId.
     private final Map<Integer, ProcessorBase> mRunningJobMap =
             new HashMap<Integer, ProcessorBase>();
+    // Stores ScannerConnectionClient objects until they finish scanning requested files.
+    // Uses List class for simplicity. It's not costly as we won't have multiple objects in
+    // almost all cases.
+    private final List<CustomMediaScannerConnectionClient> mRemainingScannerConnections =
+            new ArrayList<CustomMediaScannerConnectionClient>();
 
     /* ** vCard exporter params ** */
     // If true, VCardExporter is able to emits files longer than 8.3 format.
@@ -286,7 +322,7 @@
         } else {
             Log.w(LOG_TAG, String.format("Tried to remove unknown job (id: %d)", jobId));
         }
-        stopServiceWhenNoJob();
+        stopServiceIfAppropriate();
     }
 
     private synchronized void handleRequestAvailableExportDestination(Message msg) {
@@ -310,10 +346,11 @@
     }
 
     /**
-     * Checks job list and call {@link #stopSelf()} when there's no job now.
-     * A new job cannot be submitted any more after this call.
+     * Checks job list and call {@link #stopSelf()} when there's no job and no scanner connection
+     * is remaining.
+     * A new job (import/export) cannot be submitted any more after this call.
      */
-    private synchronized void stopServiceWhenNoJob() {
+    private synchronized void stopServiceIfAppropriate() {
         if (mRunningJobMap.size() > 0) {
             for (final Map.Entry<Integer, ProcessorBase> entry : mRunningJobMap.entrySet()) {
                 final int jobId = entry.getKey();
@@ -327,11 +364,41 @@
             }
         }
 
+        if (!mRemainingScannerConnections.isEmpty()) {
+            Log.i(LOG_TAG, "MediaScanner update is in progress.");
+            return;
+        }
+
         Log.i(LOG_TAG, "No unfinished job. Stop this service.");
         mExecutorService.shutdown();
         stopSelf();
     }
 
+    /* package */ synchronized void updateMediaScanner(String path) {
+        if (DEBUG) {
+            Log.d(LOG_TAG, "MediaScanner is being updated: " + path);
+        }
+
+        if (mExecutorService.isShutdown()) {
+            Log.w(LOG_TAG, "MediaScanner update is requested after executor's being shut down. " +
+                    "Ignoring the update request");
+            return;
+        }
+        final CustomMediaScannerConnectionClient client =
+                new CustomMediaScannerConnectionClient(path);
+        mRemainingScannerConnections.add(client);
+        client.start();
+    }
+
+    private synchronized void removeConnectionClient(
+            CustomMediaScannerConnectionClient client) {
+        if (DEBUG) {
+            Log.d(LOG_TAG, "Removing custom MediaScannerConnectionClient.");
+        }
+        mRemainingScannerConnections.remove(client);
+        stopServiceIfAppropriate();
+    }
+
     /* package */ synchronized void handleFinishImportNotification(
             int jobId, boolean successful) {
         if (DEBUG) {
@@ -341,7 +408,7 @@
         if (mRunningJobMap.remove(jobId) == null) {
             Log.w(LOG_TAG, String.format("Tried to remove unknown job (id: %d)", jobId));
         }
-        stopServiceWhenNoJob();
+        stopServiceIfAppropriate();
     }
 
     /* package */ synchronized void handleFinishExportNotification(
@@ -362,7 +429,7 @@
             mReservedDestination.remove(path);
         }
 
-        stopServiceWhenNoJob();
+        stopServiceIfAppropriate();
     }
 
     /**
diff --git a/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
index 4514e1e..1db0f4c 100644
--- a/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
+++ b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
@@ -132,7 +132,7 @@
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                mFragment = ContactDeletionInteraction.start(activity, CONTACT_URI);
+                mFragment = ContactDeletionInteraction.start(activity, CONTACT_URI, false);
             }
         });
 
