diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 949bfc8..2a4bf80 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -227,6 +227,16 @@
 
         </activity-alias>
 
+        <activity android:name="CallDetailActivity"
+            android:label="@string/callDetailTitle"
+        >
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="vnd.android.cursor.item/calls" />
+            </intent-filter>
+        </activity>
+
         <!-- Views the details of a single contact -->
         <activity android:name="ViewContactActivity"
             android:label="@string/viewContactTitle"
diff --git a/res/layout-finger/call_detail.xml b/res/layout-finger/call_detail.xml
new file mode 100644
index 0000000..c9fc500
--- /dev/null
+++ b/res/layout-finger/call_detail.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<ListView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/list"
+    android:layout_width="fill_parent" 
+    android:layout_height="fill_parent"
+    android:scrollbarStyle="outsideOverlay"
+/>
\ No newline at end of file
diff --git a/res/layout-finger/call_detail_item.xml b/res/layout-finger/call_detail_item.xml
new file mode 100644
index 0000000..7970735
--- /dev/null
+++ b/res/layout-finger/call_detail_item.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:stretchColumns="1"
+    android:shrinkColumns="0,1,2"
+    android:paddingLeft="12dip"
+    android:paddingRight="12dip"
+>
+
+    <TableRow
+        android:paddingTop="12dip"
+        android:paddingBottom="12dip"
+        android:gravity="center_vertical"
+    >
+
+        <TextView
+            android:text="@string/call_type"
+            android:layout_width="80dip"
+            android:layout_marginRight="12dip"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+        />
+
+        <TextView android:id="@+id/call_type"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+        />
+
+        <ImageView android:id="@+id/call_type_icon" />
+
+    </TableRow>
+
+    <TableRow
+        android:paddingBottom="12dip"
+        android:gravity="center_vertical"
+    >
+
+        <TextView
+            android:text="@string/call_time"
+            android:layout_marginRight="12dip"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+        />
+
+        <TextView android:id="@+id/call_time"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_span="2"
+        />
+
+    </TableRow>
+
+    <TableRow android:id="@+id/call_duration_row"
+        android:paddingBottom="12dip"
+        android:gravity="center_vertical"
+        >
+
+        <TextView
+            android:text="@string/call_duration"
+            android:layout_marginRight="12dip"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+        />
+
+        <TextView android:id="@+id/call_duration"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_span="2"
+        />
+
+    </TableRow>
+
+</TableLayout>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 9b8f033..17aaa16 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -2,176 +2,122 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="contactsList">"Kontakty"</string>
-    <!-- no translation found for shortcutContact (1520089872483067797) -->
-    <skip />
-    <string name="starredList">"Hlavní"</string>
+    <string name="shortcutContact">"Kontakt"</string>
+    <string name="starredList">"Označené hvězdičkou"</string>
     <string name="frequentList">"Časté"</string>
-    <string name="strequentList">"Oblíbené položky"</string>
-    <!-- no translation found for viewContactTitle (5340316765801746261) -->
-    <skip />
-    <!-- no translation found for viewContactDesription (5593543465183236254) -->
-    <skip />
-    <!-- no translation found for editContactDescription (207393633337592309) -->
-    <skip />
-    <!-- no translation found for insertContactDescription (8392185611221432248) -->
-    <skip />
-    <string name="searchHint">"Hledat v kontaktech"</string>
+    <string name="strequentList">"Oblíbené"</string>
+    <string name="viewContactTitle">"Kontaktní informace"</string>
+    <string name="viewContactDesription">"Zobrazit kontakt"</string>
+    <string name="editContactDescription">"Upravit kontakt"</string>
+    <string name="insertContactDescription">"Vytvořit kontakt"</string>
+    <string name="searchHint">"Vyhledat kontakty"</string>
     <string name="menu_newContact">"Nový kontakt"</string>
     <string name="menu_viewContact">"Zobrazit kontakt"</string>
-    <!-- unknown placeholder CONTACT in menu_callNumber -->
-    <skip />
-    <string name="menu_addStar">"Přidat hvězdičku"</string>
-    <string name="menu_removeStar">"Odebrat hvězdičku"</string>
-    <!-- no translation found for menu_showBarcode (4627916987700748636) -->
-    <skip />
+    <string name="menu_callNumber">"Volat kontakt <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="menu_addStar">"Přidat k oblíbeným položkám"</string>
+    <string name="menu_removeStar">"Odebrat z oblíbených položek"</string>
+    <string name="menu_showBarcode">"Zobrazit čárový kód"</string>
     <string name="menu_editContact">"Upravit kontakt"</string>
-    <string name="menu_deleteContact">"Odstranit kontakt"</string>
+    <string name="menu_deleteContact">"Smazat kontakt"</string>
     <string name="menu_call">"Volat"</string>
-    <string name="menu_sendSMS">"Odeslat text"</string>
+    <string name="menu_sendSMS">"Odeslat SMS nebo MMS"</string>
     <string name="menu_sendEmail">"Odeslat e-mail"</string>
     <string name="menu_viewAddress">"Adresa na mapě"</string>
-    <string name="menu_makeDefaultNumber">"Vytvořit výchozí číslo"</string>
-    <!-- no translation found for deleteConfirmation_title (1628057421142368583) -->
-    <skip />
-    <string name="deleteConfirmation">"Odstranit tento kontakt?"</string>
+    <string name="menu_makeDefaultNumber">"Nastavit jako výchozí číslo"</string>
+    <string name="deleteConfirmation_title">"Smazat"</string>
+    <string name="deleteConfirmation">"Tento kontakt bude smazán."</string>
     <string name="menu_done">"Uložit"</string>
     <string name="menu_doNotSave">"Zrušit změny"</string>
     <string name="button_save">"Uložit"</string>
     <string name="button_discard">"Zrušit změny"</string>
     <string name="editContact_title_edit">"Upravit kontakt"</string>
     <string name="editContact_title_insert">"Nový kontakt"</string>
-    <string name="menu_addItem">"a další"</string>
-    <string name="label_notes">"Poznámky"</string>
-    <!-- no translation found for label_ringtone (1269538172838343970) -->
+    <string name="menu_addItem">"Další informace"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
     <skip />
-    <string name="ghostData_name">"První a poslední"</string>
+    <string name="label_notes">"Poznámky"</string>
+    <string name="label_ringtone">"Vyzváněcí tón"</string>
+    <string name="ghostData_name">"Jméno a příjmení"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
     <string name="ghostData_company">"Společnost"</string>
-    <string name="ghostData_title">"Poloha"</string>
-    <string name="ghostData_im">"Jméno pro zasílání rychlých zpráv"</string>
-    <string name="ghostData_notes">"Poznámka"</string>
+    <string name="ghostData_title">"Funkce"</string>
+    <string name="ghostData_im">"Název v chatu"</string>
+    <string name="ghostData_notes">"Má poznámka"</string>
     <string name="ghostData_phone">"Telefonní číslo"</string>
     <string name="ghostData_email">"E-mailová adresa"</string>
-    <!-- unknown placeholder BREAK_0 in ghostData_postal -->
-    <skip />
-    <string name="invalidContactMessage">"Kontakty musí mít názvy"</string>
+    <string name="ghostData_postal">"Poštovní adresa"</string>
+    <string name="invalidContactMessage">"Kontakt neexistuje."</string>
     <string name="pickerNewContactHeader">"Vytvořit nový kontakt"</string>
-    <string name="selectLabel">"Vybrat štítek"</string>
+    <string name="selectLabel">"Vyberte štítek"</string>
     <string name="phoneLabelsGroup">"Telefon"</string>
     <string name="emailLabelsGroup">"E-mail"</string>
-    <string name="imLabelsGroup">"Rych. zpr."</string>
+    <string name="imLabelsGroup">"Chat"</string>
     <string name="postalLabelsGroup">"Poštovní adresa"</string>
-    <string name="otherLabelsGroup">"Jiné"</string>
-    <!-- no translation found for otherLabels:0 (3318569574569948132) -->
-    <!-- no translation found for otherLabels:1 (3325413568383685728) -->
-    <string name="errorDialogTitle">"Upozornění!"</string>
-    <string name="photoPickerNotFoundText">"Žádné obrázky nejsou k dispozici."</string>
-    <string name="attachToContact">"Obrázek kontaktu"</string>
-    <string name="customLabelPickerTitle">"Vlastní štítek"</string>
-    <!-- no translation found for menu_displayGroup (2835746769742496686) -->
-    <skip />
-    <!-- no translation found for syncGroupPreference (759121296595419145) -->
-    <skip />
-    <string name="importFromSim">"Importovat z karty SIM"</string>
-    <!-- no translation found for alphabet (4977128516779796464) -->
-    <skip />
-    <!-- no translation found for send_to_voicemail_checkbox (1699633783417579410) -->
-    <skip />
-    <!-- no translation found for send_to_voicemail_view (4299389800446371057) -->
-    <skip />
-    <!-- no translation found for default_ringtone (3998437793418131562) -->
-    <skip />
-    <!-- no translation found for addPicture (7010902051370875352) -->
-    <skip />
-    <!-- no translation found for removePicture (2322840177008417519) -->
-    <skip />
-    <!-- no translation found for noContacts (7515781671301309298) -->
-    <skip />
-    <!-- no translation found for noContactsWithPhoneNumbers (3105170743499016241) -->
-    <skip />
-    <!-- no translation found for noFavorites (7957536428532225634) -->
-    <skip />
-    <!-- no translation found for select_group_title (8821785850959403592) -->
-    <skip />
-    <!-- no translation found for groupEmpty (1733723844723885242) -->
-    <skip />
-    <!-- no translation found for showAllGroups (4524662887308889400) -->
-    <skip />
-    <!-- no translation found for syncAllGroups (8415112909188430211) -->
-    <skip />
-    <!-- no translation found for groupNameMyContacts (1298661863710879264) -->
-    <skip />
-    <!-- no translation found for groupNameWithPhones (4051877952712463294) -->
-    <skip />
-    <!-- no translation found for contactCreatedToast (5309869712901550955) -->
-    <skip />
-    <!-- no translation found for contactSavedToast (1228932477738680325) -->
-    <skip />
-    <!-- no translation found for listSeparatorCallNumber (9142725721395758026) -->
-    <skip />
-    <!-- no translation found for listSeparatorSendSmsMms (8878062000446372333) -->
-    <skip />
-    <!-- no translation found for listSeparatorSendEmail (3813935531061488274) -->
-    <skip />
-    <!-- no translation found for listSeparatorSendIm (3885045096980470847) -->
-    <skip />
-    <!-- no translation found for listSeparatorMapAddress (7749519405208811410) -->
-    <skip />
-    <!-- no translation found for listSeparatorOrganizations (5731454670822188295) -->
-    <skip />
-    <!-- no translation found for listSeparatorOtherInformation (3399084175925138065) -->
-    <skip />
-    <!-- no translation found for contactsIconLabel (392729648321810378) -->
-    <skip />
-    <!-- no translation found for contactsFavoritesLabel (6274307000699136596) -->
-    <skip />
-    <!-- no translation found for dialerIconLabel (396765298398417139) -->
-    <skip />
-    <!-- no translation found for recentCallsIconLabel (7432201162713288826) -->
-    <skip />
-    <!-- no translation found for liveFolderAll (5991510762804226223) -->
-    <skip />
-    <!-- no translation found for liveFolderFavorites (8755759874416875970) -->
-    <skip />
-    <!-- no translation found for liveFolderPhone (3440101264360244544) -->
-    <skip />
-    <!-- no translation found for menu_sendTextMessage (3055919380461974147) -->
-    <skip />
-    <!-- no translation found for recentCalls_callNumber (924407199258234369) -->
-    <skip />
-    <!-- no translation found for recentCalls_editNumberBeforeCall (7859145185424954030) -->
-    <skip />
-    <!-- no translation found for recentCalls_addToContact (6950267092567953305) -->
-    <skip />
-    <!-- no translation found for recentCalls_removeFromRecentList (5273789011391059975) -->
-    <skip />
-    <!-- no translation found for recentCalls_deleteAll (425798199678070888) -->
-    <skip />
-    <!-- no translation found for recentCalls_empty (7787624895504983911) -->
-    <skip />
-    <!-- no translation found for imei (1052536402066249452) -->
-    <skip />
-    <!-- no translation found for voicemail (1135686231023059817) -->
-    <skip />
-    <!-- no translation found for unknown (6231893925212017656) -->
-    <skip />
-    <!-- no translation found for private_num (3065614133902647350) -->
-    <skip />
-    <!-- no translation found for dialerKeyboardHintText (2013777173021862941) -->
-    <skip />
-    <!-- no translation found for simContacts_emptyLoading (4828419758306519589) -->
-    <skip />
-    <!-- no translation found for simContacts_title (4162577066960174009) -->
-    <skip />
-    <!-- no translation found for contactsSyncPlug (1549212649158409469) -->
-    <skip />
-    <!-- no translation found for noContactsHelpText (6155730972704522463) -->
-    <skip />
-    <!-- no translation found for seclectSyncGroups_title (7675331949118054911) -->
-    <skip />
-    <!-- no translation found for liveFolder_all_label (3716551598022430019) -->
-    <skip />
-    <!-- no translation found for liveFolder_favorites_label (9053985659909059395) -->
-    <skip />
-    <!-- no translation found for liveFolder_phones_label (8943901400107401868) -->
-    <skip />
+    <string name="otherLabelsGroup">"Ostatní"</string>
+  <string-array name="otherLabels">
+    <item>"Organizace"</item>
+    <item>"Poznámka"</item>
+  </string-array>
+    <string name="errorDialogTitle">"Žádné fotografie"</string>
+    <string name="photoPickerNotFoundText">"V telefonu nejsou žádné fotografie."</string>
+    <string name="attachToContact">"Ikona kontaktu"</string>
+    <string name="customLabelPickerTitle">"Vlastní název štítku"</string>
+    <string name="menu_displayGroup">"Zobrazit skupinu"</string>
+    <string name="syncGroupPreference">"Upravit synchronizované skupiny"</string>
+    <string name="importFromSim">"Importovat kontakty"</string>
+    <string name="send_to_voicemail_checkbox">"Přesměrovat hovory přímo do hlasové schránky."</string>
+    <string name="send_to_voicemail_view">"Hovory jsou přesměrovány přímo do hlasové schránky."</string>
+    <string name="default_ringtone">"Výchozí"</string>
+    <string name="addPicture">"Přidat ikonu"</string>
+    <string name="removePicture">"Odstranit ikonu"</string>
+    <string name="noContacts">"Žádné kontakty."</string>
+    <string name="noContactsWithPhoneNumbers">"Ke kontaktům nejsou přiřazena žádná telefonní čísla."</string>
+    <string name="noFavorites">"Žádné oblíbené položky."</string>
+    <string name="select_group_title">"Skupiny"</string>
+    <string name="groupEmpty">"Skupina <xliff:g id="GROUPNAME">%s</xliff:g> je prázdná."</string>
+    <string name="showAllGroups">"Všechny kontakty"</string>
+    <string name="syncAllGroups">"Synchronizovat všechny kontakty"</string>
+    <string name="groupNameMyContacts">"Moje kontakty"</string>
+    <string name="groupNameWithPhones">"Kontakty s telefonním číslem"</string>
+    <string name="contactCreatedToast">"Kontakt byl vytvořen."</string>
+    <string name="contactSavedToast">"Kontakt byl uložen."</string>
+    <string name="listSeparatorCallNumber">"Vytočit číslo"</string>
+    <string name="listSeparatorSendSmsMms">"Odeslat SMS nebo MMS"</string>
+    <string name="listSeparatorSendEmail">"Odeslat e-mail"</string>
+    <string name="listSeparatorSendIm">"Odeslat zprávu chatu"</string>
+    <string name="listSeparatorMapAddress">"Adresa na mapě"</string>
+    <string name="listSeparatorOrganizations">"Organizace"</string>
+    <string name="listSeparatorOtherInformation">"Ostatní informace"</string>
+    <string name="contactsIconLabel">"Kontakty"</string>
+    <string name="contactsFavoritesLabel">"Oblíbené"</string>
+    <string name="dialerIconLabel">"Vytáčení"</string>
+    <string name="recentCallsIconLabel">"Hovory"</string>
+    <string name="liveFolderAll">"Všechny kontakty"</string>
+    <string name="liveFolderFavorites">"Kontakty označené hvězdičkou"</string>
+    <string name="liveFolderPhone">"Kontakty s telefonními čísly"</string>
+    <string name="menu_sendTextMessage">"Odeslat zprávu SMS"</string>
+    <string name="recentCalls_callNumber">"Volat kontakt <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="recentCalls_editNumberBeforeCall">"Před voláním upravit číslo"</string>
+    <string name="recentCalls_addToContact">"Přidat mezi kontakty"</string>
+    <string name="recentCalls_removeFromRecentList">"Odstranit z hovorů"</string>
+    <string name="recentCalls_deleteAll">"Vymazat hovory"</string>
+    <string name="recentCalls_empty">"Záznam hovorů je prázdný."</string>
+    <string name="imei">"IMEI"</string>
+    <string name="voicemail">"Hlasová schránka"</string>
+    <string name="unknown">"Neznámé číslo"</string>
+    <string name="private_num">"Soukromé číslo"</string>
+    <string name="dialerKeyboardHintText">"Číslo vytočíte pomocí klávesnice"</string>
+    <string name="dialerDialpadHintText">"Vytočením přidat hovor"</string>
+    <string name="simContacts_emptyLoading">"Načítání z karty SIM..."</string>
+    <string name="simContacts_title">"Kontakty na kartě SIM"</string>
+    <string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Synchronizujte své kontakty Google!"</font>" "\n"Po synchronizaci telefonu budete mít kontaktní informace vždy u sebe."</string>
+    <string name="noContactsHelpText">"Nemáte žádné kontakty."\n\n"Chcete-li přidat kontakty, stiskněte tlačítko "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" a vyberte:"\n\n"        "\n<li><font fgcolor="#ffffffff"><b>"Upravit synchronizované skupiny"</b></font>", chcete-li přidat kontakty z nového nebo existujícího účtu Google"\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>"Nový kontakt"</b></font>", chcete-li vytvořit zcela nový kontakt"\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>"Importovat kontakty"</b></font>", chcete-li přidat kontakty ze své karty SIM"\n</li></string>
+    <string name="seclectSyncGroups_title">"Vyberte skupiny, které chcete synchronizovat"</string>
+    <string name="liveFolder_all_label">"Všechny kontakty"</string>
+    <string name="liveFolder_favorites_label">"S hvězdičkou"</string>
+    <string name="liveFolder_phones_label">"Telefony"</string>
+    <string name="dialer_useDtmfDialpad">"Použít dotykovou tónovou klávesnici"</string>
+    <string name="dialer_returnToInCallScreen">"Návrat k probíhajícímu hovoru"</string>
+    <string name="dialer_addAnotherCall">"Přidat hovor"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 0b98318..e826bf6 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -34,9 +34,13 @@
     <string name="editContact_title_edit">"Kontakt bearbeiten"</string>
     <string name="editContact_title_insert">"Neuer Kontakt"</string>
     <string name="menu_addItem">"Weitere Informationen"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
+    <skip />
     <string name="label_notes">"Notizen"</string>
     <string name="label_ringtone">"Klingelton"</string>
     <string name="ghostData_name">"Vor- und Nachname"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
     <string name="ghostData_company">"Unternehmen"</string>
     <string name="ghostData_title">"Position"</string>
     <string name="ghostData_im">"IM-Name"</string>
@@ -64,7 +68,6 @@
     <string name="menu_displayGroup">"Gruppe anzeigen"</string>
     <string name="syncGroupPreference">"Synchron. bearbeiten"</string>
     <string name="importFromSim">"Kontakte importieren"</string>
-    <string name="alphabet">"ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="send_to_voicemail_checkbox">"Anrufe direkt an Mailbox senden"</string>
     <string name="send_to_voicemail_view">"Anrufe werden direkt an Mailbox gesendet"</string>
     <string name="default_ringtone">"Standard"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
new file mode 100644
index 0000000..03ba12e
--- /dev/null
+++ b/res/values-es/strings.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="contactsList">"Contactos"</string>
+    <string name="shortcutContact">"Contacto"</string>
+    <string name="starredList">"Destacados"</string>
+    <string name="frequentList">"Frecuentes"</string>
+    <string name="strequentList">"Favoritos"</string>
+    <string name="viewContactTitle">"Detalles del contacto"</string>
+    <string name="viewContactDesription">"Ver contacto"</string>
+    <string name="editContactDescription">"Editar contacto"</string>
+    <string name="insertContactDescription">"Crear contacto"</string>
+    <string name="searchHint">"Buscar contactos"</string>
+    <string name="menu_newContact">"Contacto nuevo"</string>
+    <string name="menu_viewContact">"Ver contacto"</string>
+    <string name="menu_callNumber">"Llamar a <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="menu_addStar">"Añadir a \"Favoritos\""</string>
+    <string name="menu_removeStar">"Eliminar de \"Favoritos\""</string>
+    <string name="menu_showBarcode">"Mostrar código de barras"</string>
+    <string name="menu_editContact">"Editar contacto"</string>
+    <string name="menu_deleteContact">"Eliminar contacto"</string>
+    <string name="menu_call">"Llamar"</string>
+    <string name="menu_sendSMS">"Enviar SMS/MMS"</string>
+    <string name="menu_sendEmail">"Enviar mensaje de correo electrónico"</string>
+    <string name="menu_viewAddress">"Dirección en mapa"</string>
+    <string name="menu_makeDefaultNumber">"Convertir en número predeterminado"</string>
+    <string name="deleteConfirmation_title">"Suprimir"</string>
+    <string name="deleteConfirmation">"El contacto se eliminará."</string>
+    <string name="menu_done">"Guardar"</string>
+    <string name="menu_doNotSave">"Descartar cambios"</string>
+    <string name="button_save">"Guardar"</string>
+    <string name="button_discard">"Descartar cambios"</string>
+    <string name="editContact_title_edit">"Editar contacto"</string>
+    <string name="editContact_title_insert">"Contacto nuevo"</string>
+    <string name="menu_addItem">"Más información"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
+    <skip />
+    <string name="label_notes">"Notas"</string>
+    <string name="label_ringtone">"Tono"</string>
+    <string name="ghostData_name">"Nombre y apellido"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
+    <string name="ghostData_company">"Empresa"</string>
+    <string name="ghostData_title">"Posición"</string>
+    <string name="ghostData_im">"Nombre de MI"</string>
+    <string name="ghostData_notes">"Mi nota"</string>
+    <string name="ghostData_phone">"Número de teléfono"</string>
+    <string name="ghostData_email">"Dirección de correo electrónico"</string>
+    <string name="ghostData_postal">"Dirección postal"</string>
+    <string name="invalidContactMessage">"Ese contacto no existe."</string>
+    <string name="pickerNewContactHeader">"Crear contacto nuevo"</string>
+    <string name="selectLabel">"Seleccionar etiqueta"</string>
+    <string name="phoneLabelsGroup">"Teléfono"</string>
+    <string name="emailLabelsGroup">"Correo electrónico"</string>
+    <string name="imLabelsGroup">"MI"</string>
+    <string name="postalLabelsGroup">"Dirección postal"</string>
+    <string name="otherLabelsGroup">"Otros"</string>
+  <string-array name="otherLabels">
+    <item>"Organización"</item>
+    <item>"Nota"</item>
+  </string-array>
+    <string name="errorDialogTitle">"Ninguna imagen"</string>
+    <string name="photoPickerNotFoundText">"No hay ninguna imagen disponible en el teléfono."</string>
+    <string name="attachToContact">"Icono de contacto"</string>
+    <string name="customLabelPickerTitle">"Nombre de etiqueta personalizada"</string>
+    <string name="menu_displayGroup">"Mostrar grupo"</string>
+    <string name="syncGroupPreference">"Editar grupos de sincronización"</string>
+    <string name="importFromSim">"Importar contactos"</string>
+    <string name="send_to_voicemail_checkbox">"Enviar llamadas directamente al buzón de voz"</string>
+    <string name="send_to_voicemail_view">"Las llamadas se envían directamente al buzón de voz."</string>
+    <string name="default_ringtone">"Predeterminado"</string>
+    <string name="addPicture">"Añadir icono"</string>
+    <string name="removePicture">"Eliminar icono"</string>
+    <string name="noContacts">"No hay ningún contacto."</string>
+    <string name="noContactsWithPhoneNumbers">"No hay ningún contacto con número de teléfono."</string>
+    <string name="noFavorites">"No hay ningún favorito."</string>
+    <string name="select_group_title">"Grupos"</string>
+    <string name="groupEmpty">"El grupo \"<xliff:g id="GROUPNAME">%s</xliff:g>\" está vacío."</string>
+    <string name="showAllGroups">"Todos los contactos"</string>
+    <string name="syncAllGroups">"Sincronizar todos los contactos"</string>
+    <string name="groupNameMyContacts">"Mis contactos"</string>
+    <string name="groupNameWithPhones">"Contactos con números de teléfono"</string>
+    <string name="contactCreatedToast">"Se ha creado el contacto."</string>
+    <string name="contactSavedToast">"El contacto se ha guardado."</string>
+    <string name="listSeparatorCallNumber">"Marcar número"</string>
+    <string name="listSeparatorSendSmsMms">"Enviar SMS/MMS"</string>
+    <string name="listSeparatorSendEmail">"Enviar mensaje de correo electrónico"</string>
+    <string name="listSeparatorSendIm">"Enviar mensaje instantáneo"</string>
+    <string name="listSeparatorMapAddress">"Dirección en mapa"</string>
+    <string name="listSeparatorOrganizations">"Organizaciones"</string>
+    <string name="listSeparatorOtherInformation">"Otra información"</string>
+    <string name="contactsIconLabel">"Contactos"</string>
+    <string name="contactsFavoritesLabel">"Favoritos"</string>
+    <string name="dialerIconLabel">"Marcación"</string>
+    <string name="recentCallsIconLabel">"Registro de llamadas"</string>
+    <string name="liveFolderAll">"Todos los contactos"</string>
+    <string name="liveFolderFavorites">"Contactos destacados"</string>
+    <string name="liveFolderPhone">"Contactos con números de teléfono"</string>
+    <string name="menu_sendTextMessage">"Enviar mensaje SMS"</string>
+    <string name="recentCalls_callNumber">"Llamar a <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="recentCalls_editNumberBeforeCall">"Editar número antes de llamar"</string>
+    <string name="recentCalls_addToContact">"Añadir a contactos"</string>
+    <string name="recentCalls_removeFromRecentList">"Eliminar del registro de llamadas"</string>
+    <string name="recentCalls_deleteAll">"Borrar registro de llamadas"</string>
+    <string name="recentCalls_empty">"El registro de llamadas está vacío."</string>
+    <string name="imei">"IMEI"</string>
+    <string name="voicemail">"Buzón de voz"</string>
+    <string name="unknown">"Desconocidos"</string>
+    <string name="private_num">"Número privado"</string>
+    <string name="dialerKeyboardHintText">"Utilizar teclado para marcar"</string>
+    <string name="dialerDialpadHintText">"Marcar para añadir una llamada"</string>
+    <string name="simContacts_emptyLoading">"Cargando desde tarjeta SIM…"</string>
+    <string name="simContacts_title">"Contactos de tarjeta SIM"</string>
+    <string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Sincroniza tus contactos de Google"</font>" "\n"Después de sincronizarlos con tu teléfono, podrás acceder a tus contactos desde cualquier lugar."</string>
+    <string name="noContactsHelpText">"No tienes ningún contacto."\n\n"Para añadir contactos, pulsa "<font fgcolor="#ffffffff"><b>"Menú"</b></font>" y selecciona:"\n\n"        "\n<li><font fgcolor="#ffffffff"><b>"Editar grupos de sincronización"</b></font>" para añadir contactos de una cuenta de Google nueva o existente"\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>"Contacto nuevo"</b></font>" para crear un contacto desde cero"\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>"Importar contactos"</b></font>" para añadir contactos de tu tarjeta SIM"\n</li></string>
+    <string name="seclectSyncGroups_title">"Seleccionar grupos para la sincronización"</string>
+    <string name="liveFolder_all_label">"Todos los contactos"</string>
+    <string name="liveFolder_favorites_label">"Destacados"</string>
+    <string name="liveFolder_phones_label">"Teléfonos"</string>
+    <string name="dialer_useDtmfDialpad">"Usar el teclado de tonos"</string>
+    <string name="dialer_returnToInCallScreen">"Volver a la llamada en curso"</string>
+    <string name="dialer_addAnotherCall">"Añadir llamada"</string>
+</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index a84d26e..aeed55f 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -33,9 +33,13 @@
     <string name="editContact_title_edit">"Modifier le contact"</string>
     <string name="editContact_title_insert">"Nouveau contact"</string>
     <string name="menu_addItem">"Plus d\'infos"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
+    <skip />
     <string name="label_notes">"Remarques"</string>
     <string name="label_ringtone">"Sonnerie"</string>
     <string name="ghostData_name">"Premier et dernier"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
     <string name="ghostData_company">"Société"</string>
     <string name="ghostData_title">"Position"</string>
     <string name="ghostData_im">"Nom du compte de MI"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 9426b69..b0a8f54 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -33,9 +33,13 @@
     <string name="editContact_title_edit">"Modifica contatto"</string>
     <string name="editContact_title_insert">"Nuovo contatto"</string>
     <string name="menu_addItem">"Altre info"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
+    <skip />
     <string name="label_notes">"Note"</string>
     <string name="label_ringtone">"Suoneria"</string>
     <string name="ghostData_name">"Nome e cognome"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
     <string name="ghostData_company">"Società"</string>
     <string name="ghostData_title">"Mansione"</string>
     <string name="ghostData_im">"Nome IM"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 3b911fb..d5ec049 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -14,18 +14,15 @@
     <string name="menu_newContact">"新しい連絡先"</string>
     <string name="menu_viewContact">"連絡先を表示"</string>
     <string name="menu_callNumber">"<xliff:g id="NAME">%s</xliff:g>さんに発信"</string>
-    <!-- no translation found for menu_addStar (2908478235715404876) -->
-    <skip />
-    <!-- no translation found for menu_removeStar (5844227078364227030) -->
-    <skip />
-    <!-- no translation found for menu_showBarcode (309973637178814132) -->
-    <skip />
+    <string name="menu_addStar">"お気に入りに追加"</string>
+    <string name="menu_removeStar">"お気に入りから削除"</string>
+    <string name="menu_showBarcode">"バーコードを表示"</string>
     <string name="menu_editContact">"連絡先を編集"</string>
     <string name="menu_deleteContact">"連絡先を削除"</string>
     <string name="menu_call">"発信"</string>
     <string name="menu_sendSMS">"SMS/MMSを送信"</string>
     <string name="menu_sendEmail">"メールを送信"</string>
-    <string name="menu_viewAddress">"地図の住所"</string>
+    <string name="menu_viewAddress">"地図でみる"</string>
     <string name="menu_makeDefaultNumber">"デフォルトの番号に設定"</string>
     <string name="deleteConfirmation_title">"削除"</string>
     <string name="deleteConfirmation">"この連絡先を削除します。"</string>
@@ -35,12 +32,14 @@
     <string name="button_discard">"変更を破棄"</string>
     <string name="editContact_title_edit">"連絡先を編集"</string>
     <string name="editContact_title_insert">"新しい連絡先"</string>
-    <string name="menu_addItem">"詳細情報"</string>
-    <string name="label_phonetic_name">フリガナ</string>
+    <string name="menu_addItem">"情報を追加"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
+    <skip />
     <string name="label_notes">"メモ"</string>
     <string name="label_ringtone">"着信音"</string>
-    <string name="ghostData_name">"氏名を入力してください"</string>
-    <string name="ghostData_phonetic_name">ﾌﾘｶﾞﾅ</string>
+    <string name="ghostData_name">"名前"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
     <string name="ghostData_company">"会社"</string>
     <string name="ghostData_title">"役職"</string>
     <string name="ghostData_im">"IM名"</string>
@@ -63,13 +62,11 @@
     <string name="errorDialogTitle">"写真なし"</string>
     <string name="photoPickerNotFoundText">"使用できる写真が携帯電話にありません。"</string>
     <string name="attachToContact">"連絡先のアイコン"</string>
-    <!-- no translation found for customLabelPickerTitle (1081475101983255212) -->
-    <skip />
+    <string name="customLabelPickerTitle">"独自のラベル名"</string>
     <string name="menu_displayGroup">"グループを表示"</string>
     <string name="syncGroupPreference">"同期グループを編集"</string>
     <string name="importFromSim">"連絡先をインポート"</string>
-    <string name="alphabet">"ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
-    <string name="send_to_voicemail_checkbox">"着信を直接ボイスメールに転送する"</string>
+    <string name="send_to_voicemail_checkbox">"電話はボイスメールに送信する"</string>
     <string name="send_to_voicemail_view">"着信はボイスメールに直接転送されます。"</string>
     <string name="default_ringtone">"デフォルト"</string>
     <string name="addPicture">"アイコンを追加"</string>
@@ -77,12 +74,11 @@
     <string name="noContacts">"連絡先がありません。"</string>
     <string name="noContactsWithPhoneNumbers">"電話番号のある連絡先がありません。"</string>
     <string name="noFavorites">"お気に入りがありません。"</string>
-    <!-- no translation found for select_group_title (7955698611959835612) -->
-    <skip />
+    <string name="select_group_title">"グループ"</string>
     <string name="groupEmpty">"「<xliff:g id="GROUPNAME">%s</xliff:g>」グループには何も登録されていません。"</string>
     <string name="showAllGroups">"すべての連絡先"</string>
     <string name="syncAllGroups">"全連絡先の同期を取る"</string>
-    <string name="groupNameMyContacts">"連絡先リスト"</string>
+    <string name="groupNameMyContacts">"Myコンタクト"</string>
     <string name="groupNameWithPhones">"電話番号のある連絡先"</string>
     <string name="contactCreatedToast">"連絡先を作成しました。"</string>
     <string name="contactSavedToast">"連絡先を保存しました。"</string>
@@ -90,19 +86,16 @@
     <string name="listSeparatorSendSmsMms">"SMS/MMSを送信"</string>
     <string name="listSeparatorSendEmail">"メールを送信"</string>
     <string name="listSeparatorSendIm">"インスタントメッセージを送信"</string>
-    <string name="listSeparatorMapAddress">"地図の住所"</string>
+    <string name="listSeparatorMapAddress">"住所を地図でみる"</string>
     <string name="listSeparatorOrganizations">"組織"</string>
     <string name="listSeparatorOtherInformation">"その他の情報"</string>
     <string name="contactsIconLabel">"連絡先"</string>
     <string name="contactsFavoritesLabel">"お気に入り"</string>
-    <string name="dialerIconLabel">"ダイヤラ"</string>
+    <string name="dialerIconLabel">"通話"</string>
     <string name="recentCallsIconLabel">"通話ログ"</string>
-    <!-- no translation found for liveFolderAll (4789010460767506206) -->
-    <skip />
-    <!-- no translation found for liveFolderFavorites (3100957542927222282) -->
-    <skip />
-    <!-- no translation found for liveFolderPhone (3739376066610926780) -->
-    <skip />
+    <string name="liveFolderAll">"すべての連絡先"</string>
+    <string name="liveFolderFavorites">"スター付きの連絡先"</string>
+    <string name="liveFolderPhone">"電話番号が登録されている連絡先"</string>
     <string name="menu_sendTextMessage">"SMSメッセージを送信"</string>
     <string name="recentCalls_callNumber">"<xliff:g id="NAME">%s</xliff:g>さんに発信"</string>
     <string name="recentCalls_editNumberBeforeCall">"番号を編集して発信"</string>
@@ -115,23 +108,16 @@
     <string name="unknown">"不明"</string>
     <string name="private_num">"非通知番号"</string>
     <string name="dialerKeyboardHintText">"番号をキーボードから入力してください"</string>
-    <!-- no translation found for dialerDialpadHintText (5824490365898349041) -->
-    <skip />
+    <string name="dialerDialpadHintText">"ダイヤルして通話を追加します"</string>
     <string name="simContacts_emptyLoading">"SIMカードからロードしています..."</string>
     <string name="simContacts_title">"SIMカードの連絡先"</string>
     <string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Googleコンタクトと同期を取ります。"</font>" "\n"同期が終わると、いつでもこの携帯電話で連絡先を使用できます。"</string>
     <string name="noContactsHelpText">"登録されている連絡先がありません。"\n\n"連絡先を追加するには["<font fgcolor="#ffffffff"><b>"メニュー"</b></font>"]を押して、次のどれかを選択します。"\n\n"        "\n<li>"["<font fgcolor="#ffffffff"><b>"同期グループを編集"</b></font>"]-新規または既存のGoogleアカウントから追加する場合"\n</li>\n"        "\n<li>"["<font fgcolor="#ffffffff"><b>"新しい連絡先"</b></font>"]-最初から新しい連絡先を作成する場合"\n</li>\n"        "\n<li>"["<font fgcolor="#ffffffff"><b>"連絡先をインポート"</b></font>"]-SIMカードから連絡先を追加する場合"\n</li></string>
     <string name="seclectSyncGroups_title">"同期を取るグループを選択"</string>
-    <!-- no translation found for liveFolder_all_label (1552523730090319259) -->
-    <skip />
-    <!-- no translation found for liveFolder_favorites_label (2674341514070517105) -->
-    <skip />
-    <!-- no translation found for liveFolder_phones_label (1709786878793436245) -->
-    <skip />
-    <!-- no translation found for dialer_useDtmfDialpad (1707548397435075040) -->
-    <skip />
-    <!-- no translation found for dialer_returnToInCallScreen (3719386377550913067) -->
-    <skip />
-    <!-- no translation found for dialer_addAnotherCall (4205688819890074468) -->
-    <skip />
+    <string name="liveFolder_all_label">"すべての連絡先"</string>
+    <string name="liveFolder_favorites_label">"スター付き"</string>
+    <string name="liveFolder_phones_label">"電話"</string>
+    <string name="dialer_useDtmfDialpad">"タッチ トーン キーパッドを使用する"</string>
+    <string name="dialer_returnToInCallScreen">"保留中の通話に戻る"</string>
+    <string name="dialer_addAnotherCall">"通話を追加"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
new file mode 100644
index 0000000..bf407f9
--- /dev/null
+++ b/res/values-nl/strings.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="contactsList">"Contactpersonen"</string>
+    <string name="shortcutContact">"Contactpersonen"</string>
+    <string name="starredList">"Met ster"</string>
+    <string name="frequentList">"Vaak"</string>
+    <string name="strequentList">"Favorieten"</string>
+    <string name="viewContactTitle">"Details van contactpersoon"</string>
+    <string name="viewContactDesription">"Contactpersoon weergeven"</string>
+    <string name="editContactDescription">"Contactpersoon bewerken"</string>
+    <string name="insertContactDescription">"Contactpersoon maken"</string>
+    <string name="searchHint">"Contactpersonen zoeken"</string>
+    <string name="menu_newContact">"Nieuwe contactpersoon"</string>
+    <string name="menu_viewContact">"Contactpersoon weergeven"</string>
+    <string name="menu_callNumber">"<xliff:g id="NAME">%s</xliff:g> bellen"</string>
+    <string name="menu_addStar">"Toevoegen aan favorieten"</string>
+    <string name="menu_removeStar">"Uit favorieten verwijderen"</string>
+    <string name="menu_showBarcode">"Barcode weergeven"</string>
+    <string name="menu_editContact">"Contactpersoon bewerken"</string>
+    <string name="menu_deleteContact">"Contactpersoon verwijderen"</string>
+    <string name="menu_call">"Bellen"</string>
+    <string name="menu_sendSMS">"SMS/MMS verzenden"</string>
+    <string name="menu_sendEmail">"E-mail verzenden"</string>
+    <string name="menu_viewAddress">"Adres op kaart weergeven"</string>
+    <string name="menu_makeDefaultNumber">"Als standaardnummer instellen"</string>
+    <string name="deleteConfirmation_title">"Verwijderen"</string>
+    <string name="deleteConfirmation">"Deze contactpersoon wordt verwijderd."</string>
+    <string name="menu_done">"Opslaan"</string>
+    <string name="menu_doNotSave">"Wijzigingen ongedaan maken"</string>
+    <string name="button_save">"Opslaan"</string>
+    <string name="button_discard">"Wijzigingen ongedaan maken"</string>
+    <string name="editContact_title_edit">"Contactpersoon bewerken"</string>
+    <string name="editContact_title_insert">"Nieuwe contactpersoon"</string>
+    <string name="menu_addItem">"Meer informatie"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
+    <skip />
+    <string name="label_notes">"Opmerkingen"</string>
+    <string name="label_ringtone">"Beltoon"</string>
+    <string name="ghostData_name">"Voor- en achternaam"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
+    <string name="ghostData_company">"Bedrijf"</string>
+    <string name="ghostData_title">"Positie"</string>
+    <string name="ghostData_im">"Chatnaam"</string>
+    <string name="ghostData_notes">"Mijn opmerking"</string>
+    <string name="ghostData_phone">"Telefoonnummer"</string>
+    <string name="ghostData_email">"E-mailadres"</string>
+    <string name="ghostData_postal">"Postadres"</string>
+    <string name="invalidContactMessage">"De contactpersoon bestaat niet."</string>
+    <string name="pickerNewContactHeader">"Nieuwe contactpersoon maken"</string>
+    <string name="selectLabel">"Label selecteren"</string>
+    <string name="phoneLabelsGroup">"Telefoon"</string>
+    <string name="emailLabelsGroup">"E-mailadres"</string>
+    <string name="imLabelsGroup">"Chat"</string>
+    <string name="postalLabelsGroup">"Postadres"</string>
+    <string name="otherLabelsGroup">"Overig"</string>
+  <string-array name="otherLabels">
+    <item>"Organisatie"</item>
+    <item>"Opmerking"</item>
+  </string-array>
+    <string name="errorDialogTitle">"Geen foto\'s"</string>
+    <string name="photoPickerNotFoundText">"Er zijn geen foto\'s beschikbaar op de telefoon."</string>
+    <string name="attachToContact">"Pictogram voor contactpersoon"</string>
+    <string name="customLabelPickerTitle">"Aangepaste labelnaam"</string>
+    <string name="menu_displayGroup">"Groep weergeven"</string>
+    <string name="syncGroupPreference">"Gesynchroniseerde groepen bewerken"</string>
+    <string name="importFromSim">"Contactpersonen importeren"</string>
+    <string name="send_to_voicemail_checkbox">"Oproepen rechtstreeks naar voicemail."</string>
+    <string name="send_to_voicemail_view">"Oproepen worden rechtstreeks naar voicemail verzonden."</string>
+    <string name="default_ringtone">"Standaard"</string>
+    <string name="addPicture">"Pictogram toevoegen"</string>
+    <string name="removePicture">"Pictogram verwijderen"</string>
+    <string name="noContacts">"Geen contactpersonen."</string>
+    <string name="noContactsWithPhoneNumbers">"Geen contactpersonen met telefoonnummers."</string>
+    <string name="noFavorites">"Geen favorieten."</string>
+    <string name="select_group_title">"Groepen"</string>
+    <string name="groupEmpty">"De groep \'<xliff:g id="GROUPNAME">%s</xliff:g>\' is leeg."</string>
+    <string name="showAllGroups">"Alle contactpersonen"</string>
+    <string name="syncAllGroups">"Alle contactpersonen synchroniseren"</string>
+    <string name="groupNameMyContacts">"Mijn contactpersonen"</string>
+    <string name="groupNameWithPhones">"Contactpersonen met telefoonnummers"</string>
+    <string name="contactCreatedToast">"Contactpersoon is gemaakt."</string>
+    <string name="contactSavedToast">"Contactpersoon opgeslagen."</string>
+    <string name="listSeparatorCallNumber">"Nummer bellen"</string>
+    <string name="listSeparatorSendSmsMms">"SMS/MMS verzenden"</string>
+    <string name="listSeparatorSendEmail">"E-mail verzenden"</string>
+    <string name="listSeparatorSendIm">"Chatbericht verzenden"</string>
+    <string name="listSeparatorMapAddress">"Adres op kaart weergeven"</string>
+    <string name="listSeparatorOrganizations">"Organisaties"</string>
+    <string name="listSeparatorOtherInformation">"Overige informatie"</string>
+    <string name="contactsIconLabel">"Contactpersonen"</string>
+    <string name="contactsFavoritesLabel">"Favorieten"</string>
+    <string name="dialerIconLabel">"Dialer"</string>
+    <string name="recentCallsIconLabel">"Gesprekslogboek"</string>
+    <string name="liveFolderAll">"Alle contactpersonen"</string>
+    <string name="liveFolderFavorites">"Contactpersonen met ster"</string>
+    <string name="liveFolderPhone">"Contactpersonen met telefoonnummers"</string>
+    <string name="menu_sendTextMessage">"SMS-bericht verzenden"</string>
+    <string name="recentCalls_callNumber">"<xliff:g id="NAME">%s</xliff:g> bellen"</string>
+    <string name="recentCalls_editNumberBeforeCall">"Nummer bewerken voor bellen"</string>
+    <string name="recentCalls_addToContact">"Toevoegen aan contactpersonen"</string>
+    <string name="recentCalls_removeFromRecentList">"Verwijderen uit gesprekslogboek"</string>
+    <string name="recentCalls_deleteAll">"Gesprekslogboek wissen"</string>
+    <string name="recentCalls_empty">"Gesprekslogboek is leeg."</string>
+    <string name="imei">"IMEI"</string>
+    <string name="voicemail">"Voicemail"</string>
+    <string name="unknown">"Onbekend"</string>
+    <string name="private_num">"Privénummer"</string>
+    <string name="dialerKeyboardHintText">"Toetsen gebruiken om te bellen"</string>
+    <string name="dialerDialpadHintText">"Bellen om een oproep toe te voegen"</string>
+    <string name="simContacts_emptyLoading">"Laden vanaf SIM-kaart..."</string>
+    <string name="simContacts_title">"Contactpersonen op SIM-kaart"</string>
+    <string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Synchroniseer uw Google-contactpersonen!"</font>" "\n"Zodra uw telefoon is gesynchroniseerd, heeft u uw contactpersonen altijd ter beschikking."</string>
+    <string name="noContactsHelpText">"U heeft geen contactpersonen."\n\n"Als u contactpersonen wilt toevoegen, drukt u op "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" en selecteert u:"\n\n"        "\n<li><font fgcolor="#ffffffff"><b>"Gesynchroniseerde groepen bewerken"</b></font>" als u contactpersonen vanuit een nieuwe of bestaande Google-account wilt toevoegen."\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>"Nieuwe contactpersoon"</b></font>" als u een nieuwe contactpersoon wilt invoeren"\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>"Contactpersonen importeren"</b></font>" als u contactpersonen wilt toevoegen vanaf uw SIM-kaart"\n</li></string>
+    <string name="seclectSyncGroups_title">"Groepen selecteren om te synchroniseren"</string>
+    <string name="liveFolder_all_label">"Alle contactpersonen"</string>
+    <string name="liveFolder_favorites_label">"Met ster"</string>
+    <string name="liveFolder_phones_label">"Telefoons"</string>
+    <string name="dialer_useDtmfDialpad">"Toetsen voor toonkiezen gebruiken"</string>
+    <string name="dialer_returnToInCallScreen">"Terug naar actief gesprek"</string>
+    <string name="dialer_addAnotherCall">"Oproep toevoegen"</string>
+</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
new file mode 100644
index 0000000..301b9dc
--- /dev/null
+++ b/res/values-pl/strings.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="contactsList">"Kontakty"</string>
+    <string name="shortcutContact">"Kontakt"</string>
+    <string name="starredList">"Oznaczony gwiazdką"</string>
+    <string name="frequentList">"Częste"</string>
+    <string name="strequentList">"Ulubione"</string>
+    <string name="viewContactTitle">"Szczegóły kontaktu"</string>
+    <string name="viewContactDesription">"Wyświetl kontakt"</string>
+    <string name="editContactDescription">"Edytuj kontakt"</string>
+    <string name="insertContactDescription">"Utwórz kontakt"</string>
+    <string name="searchHint">"Przeszukuj kontakty"</string>
+    <string name="menu_newContact">"Nowy kontakt"</string>
+    <string name="menu_viewContact">"Wyświetl kontakt"</string>
+    <string name="menu_callNumber">"Zadzwoń do kontaktu <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="menu_addStar">"Dodaj do ulubionych"</string>
+    <string name="menu_removeStar">"Usuń z ulubionych"</string>
+    <string name="menu_showBarcode">"Pokaż kod kreskowy"</string>
+    <string name="menu_editContact">"Edytuj kontakt"</string>
+    <string name="menu_deleteContact">"Usuń kontakt"</string>
+    <string name="menu_call">"Zadzwoń"</string>
+    <string name="menu_sendSMS">"Wyślij wiadomość SMS/MMS"</string>
+    <string name="menu_sendEmail">"Wyślij wiadomość e-mail"</string>
+    <string name="menu_viewAddress">"Pokaż adres na mapie"</string>
+    <string name="menu_makeDefaultNumber">"Ustaw ten numer jako domyślny"</string>
+    <string name="deleteConfirmation_title">"Usuń"</string>
+    <string name="deleteConfirmation">"Ten kontakt zostanie usunięty."</string>
+    <string name="menu_done">"Zapisz"</string>
+    <string name="menu_doNotSave">"Odrzuć zmiany"</string>
+    <string name="button_save">"Zapisz"</string>
+    <string name="button_discard">"Odrzuć zmiany"</string>
+    <string name="editContact_title_edit">"Edytuj kontakt"</string>
+    <string name="editContact_title_insert">"Nowy kontakt"</string>
+    <string name="menu_addItem">"Więcej informacji"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
+    <skip />
+    <string name="label_notes">"Notatki"</string>
+    <string name="label_ringtone">"Dzwonek"</string>
+    <string name="ghostData_name">"Imię i nazwisko"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
+    <string name="ghostData_company">"Firma"</string>
+    <string name="ghostData_title">"Pozycja"</string>
+    <string name="ghostData_im">"Nazwa w komunikatorze"</string>
+    <string name="ghostData_notes">"Moja notatka"</string>
+    <string name="ghostData_phone">"Numer telefonu"</string>
+    <string name="ghostData_email">"Adres e-mail"</string>
+    <string name="ghostData_postal">"Adres pocztowy"</string>
+    <string name="invalidContactMessage">"Kontakt nie istnieje."</string>
+    <string name="pickerNewContactHeader">"Utwórz nowy kontakt"</string>
+    <string name="selectLabel">"Wybierz etykietę"</string>
+    <string name="phoneLabelsGroup">"Telefon"</string>
+    <string name="emailLabelsGroup">"E-mail"</string>
+    <string name="imLabelsGroup">"Komunikatory"</string>
+    <string name="postalLabelsGroup">"Adres pocztowy"</string>
+    <string name="otherLabelsGroup">"Inne"</string>
+  <string-array name="otherLabels">
+    <item>"Organizacja"</item>
+    <item>"Notatka"</item>
+  </string-array>
+    <string name="errorDialogTitle">"Brak zdjęć"</string>
+    <string name="photoPickerNotFoundText">"W telefonie brak dostępnych zdjęć."</string>
+    <string name="attachToContact">"Ikona kontaktu"</string>
+    <string name="customLabelPickerTitle">"Nazwa etykiety niestandardowej"</string>
+    <string name="menu_displayGroup">"Wyświetl grupę"</string>
+    <string name="syncGroupPreference">"Edytuj grupy synchronizacji"</string>
+    <string name="importFromSim">"Importuj kontakty"</string>
+    <string name="send_to_voicemail_checkbox">"Kieruj połączenia bezpośrednio do poczty głosowej."</string>
+    <string name="send_to_voicemail_view">"Połączenia są przekazywane bezpośrednio do poczty głosowej."</string>
+    <string name="default_ringtone">"Domyślny"</string>
+    <string name="addPicture">"Dodaj ikonę"</string>
+    <string name="removePicture">"Usuń ikonę"</string>
+    <string name="noContacts">"Brak kontaktów."</string>
+    <string name="noContactsWithPhoneNumbers">"Brak kontaktów z numerami telefonów."</string>
+    <string name="noFavorites">"Brak ulubionych"</string>
+    <string name="select_group_title">"Grupy"</string>
+    <string name="groupEmpty">"Grupa „<xliff:g id="GROUPNAME">%s</xliff:g>” jest pusta."</string>
+    <string name="showAllGroups">"Wszystkie kontakty"</string>
+    <string name="syncAllGroups">"Synchronizuj wszystkie kontakty"</string>
+    <string name="groupNameMyContacts">"Moje kontakty"</string>
+    <string name="groupNameWithPhones">"Kontakty z numerami telefonu"</string>
+    <string name="contactCreatedToast">"Utworzono kontakt."</string>
+    <string name="contactSavedToast">"Kontakt został zapisany."</string>
+    <string name="listSeparatorCallNumber">"Wybierz numer"</string>
+    <string name="listSeparatorSendSmsMms">"Wyślij wiadomość SMS/MMS"</string>
+    <string name="listSeparatorSendEmail">"Wyślij wiadomość e-mail"</string>
+    <string name="listSeparatorSendIm">"Wyślij wiadomość błyskawiczną"</string>
+    <string name="listSeparatorMapAddress">"Pokaż adres na mapie"</string>
+    <string name="listSeparatorOrganizations">"Organizacje"</string>
+    <string name="listSeparatorOtherInformation">"Inne informacje"</string>
+    <string name="contactsIconLabel">"Kontakty"</string>
+    <string name="contactsFavoritesLabel">"Ulubione"</string>
+    <string name="dialerIconLabel">"Klawisze"</string>
+    <string name="recentCallsIconLabel">"Rejestr połączeń"</string>
+    <string name="liveFolderAll">"Wszystkie kontakty"</string>
+    <string name="liveFolderFavorites">"Kontakty oznaczone gwiazdkami"</string>
+    <string name="liveFolderPhone">"Kontakty z numerami telefonów"</string>
+    <string name="menu_sendTextMessage">"Wyślij wiadomość SMS"</string>
+    <string name="recentCalls_callNumber">"Zadzwoń do kontaktu <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="recentCalls_editNumberBeforeCall">"Edytuj numer przed nawiązaniem połączenia"</string>
+    <string name="recentCalls_addToContact">"Dodaj do kontaktów"</string>
+    <string name="recentCalls_removeFromRecentList">"Usuń z rejestru połączeń"</string>
+    <string name="recentCalls_deleteAll">"Wyczyść rejestr połączeń"</string>
+    <string name="recentCalls_empty">"Rejestr połączeń jest pusty."</string>
+    <string name="imei">"IMEI"</string>
+    <string name="voicemail">"Poczta głosowa"</string>
+    <string name="unknown">"Nieznane"</string>
+    <string name="private_num">"Numer prywatny"</string>
+    <string name="dialerKeyboardHintText">"Wybierz numer za pomocą klawiatury"</string>
+    <string name="dialerDialpadHintText">"Wybierz numer, aby dodać połączenie"</string>
+    <string name="simContacts_emptyLoading">"Wczytywanie z karty SIM…"</string>
+    <string name="simContacts_title">"Kontakty z karty SIM"</string>
+    <string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Zsynchronizuj kontakty Google!"</font>" "\n"Po zsynchronizowaniu telefonu zawsze będziesz mieć kontakty pod ręką."</string>
+    <string name="noContactsHelpText">"Nie masz kontaktów."\n\n"Aby dodać kontakty, naciśnij przycisk "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" i wybierz jedną z opcji:"\n\n"        "\n<li><font fgcolor="#ffffffff"><b>"Edytuj grupy synchronizacji"</b></font>", aby dodać kontakty z nowego lub istniejącego konta Google;"\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>"Nowy kontakt"</b></font>", aby utworzyć nowy kontakt od podstaw;"\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>"Importuj kontakty"</b></font>", aby dodać kontakty z karty SIM."\n</li></string>
+    <string name="seclectSyncGroups_title">"Wybierz grupy do zsynchronizowania"</string>
+    <string name="liveFolder_all_label">"Wszystkie kontakty"</string>
+    <string name="liveFolder_favorites_label">"Oznaczone gwiazdkami"</string>
+    <string name="liveFolder_phones_label">"Telefony"</string>
+    <string name="dialer_useDtmfDialpad">"Użyj klawiatury tonowej"</string>
+    <string name="dialer_returnToInCallScreen">"Powrót do aktywnego połączenia"</string>
+    <string name="dialer_addAnotherCall">"Dodaj połączenie"</string>
+</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
new file mode 100644
index 0000000..1c45a2d
--- /dev/null
+++ b/res/values-ru/strings.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="contactsList">"Контакты"</string>
+    <string name="shortcutContact">"Контакт"</string>
+    <string name="starredList">"Помеченные"</string>
+    <string name="frequentList">"Частые"</string>
+    <string name="strequentList">"Избранные"</string>
+    <string name="viewContactTitle">"Сведения о контакте"</string>
+    <string name="viewContactDesription">"Просмотреть контакт"</string>
+    <string name="editContactDescription">"Изменить контакт"</string>
+    <string name="insertContactDescription">"Создать контакт"</string>
+    <string name="searchHint">"Искать контакты"</string>
+    <string name="menu_newContact">"Создать контакт"</string>
+    <string name="menu_viewContact">"Просмотреть контакт"</string>
+    <string name="menu_callNumber">"Позвонить: <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="menu_addStar">"Добавить к избранному"</string>
+    <string name="menu_removeStar">"Удалить из избранного"</string>
+    <string name="menu_showBarcode">"Показать штрихкод"</string>
+    <string name="menu_editContact">"Изменить контакт"</string>
+    <string name="menu_deleteContact">"Удалить контакт"</string>
+    <string name="menu_call">"Позвонить"</string>
+    <string name="menu_sendSMS">"Отправить SMS/MMS"</string>
+    <string name="menu_sendEmail">"Отправить сообщение электронной почты"</string>
+    <string name="menu_viewAddress">"Адрес на карте"</string>
+    <string name="menu_makeDefaultNumber">"Сделать номером по умолчанию"</string>
+    <string name="deleteConfirmation_title">"Удаление"</string>
+    <string name="deleteConfirmation">"Этот контакт будет удален."</string>
+    <string name="menu_done">"Сохранить"</string>
+    <string name="menu_doNotSave">"Отменить изменения"</string>
+    <string name="button_save">"Сохранить"</string>
+    <string name="button_discard">"Отменить изменения"</string>
+    <string name="editContact_title_edit">"Изменить контакт"</string>
+    <string name="editContact_title_insert">"Создание контакта"</string>
+    <string name="menu_addItem">"Подробнее"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
+    <skip />
+    <string name="label_notes">"Примечания"</string>
+    <string name="label_ringtone">"Мелодия звонка"</string>
+    <string name="ghostData_name">"Первый и последний"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
+    <string name="ghostData_company">"Компания"</string>
+    <string name="ghostData_title">"Должность"</string>
+    <string name="ghostData_im">"Имя в чате"</string>
+    <string name="ghostData_notes">"Мое примечание"</string>
+    <string name="ghostData_phone">"Телефонный номер"</string>
+    <string name="ghostData_email">"Адрес электронной почты"</string>
+    <string name="ghostData_postal">"Почтовый адрес"</string>
+    <string name="invalidContactMessage">"Контакт не существует."</string>
+    <string name="pickerNewContactHeader">"Создать новый контакт"</string>
+    <string name="selectLabel">"Выбор ярлыка"</string>
+    <string name="phoneLabelsGroup">"Телефон"</string>
+    <string name="emailLabelsGroup">"Электронная почта"</string>
+    <string name="imLabelsGroup">"Чат"</string>
+    <string name="postalLabelsGroup">"Почтовый адрес"</string>
+    <string name="otherLabelsGroup">"Прочее"</string>
+  <string-array name="otherLabels">
+    <item>"Организация"</item>
+    <item>"Примечание"</item>
+  </string-array>
+    <string name="errorDialogTitle">"Нет изображений"</string>
+    <string name="photoPickerNotFoundText">"На телефоне нет изображений."</string>
+    <string name="attachToContact">"Значок контакта"</string>
+    <string name="customLabelPickerTitle">"Имя персонализированного ярлыка"</string>
+    <string name="menu_displayGroup">"Показать группу"</string>
+    <string name="syncGroupPreference">"Изменить группы синхронизации"</string>
+    <string name="importFromSim">"Импортировать контакты"</string>
+    <string name="send_to_voicemail_checkbox">"Направлять вызовы прямо в голосовую почту."</string>
+    <string name="send_to_voicemail_view">"Вызовы направляются прямо в голосовую почту."</string>
+    <string name="default_ringtone">"По умолчанию"</string>
+    <string name="addPicture">"Добавить значок"</string>
+    <string name="removePicture">"Убрать значок"</string>
+    <string name="noContacts">"Нет контактов."</string>
+    <string name="noContactsWithPhoneNumbers">"Нет контактов с телефонными номерами."</string>
+    <string name="noFavorites">"Нет избранных."</string>
+    <string name="select_group_title">"Группы"</string>
+    <string name="groupEmpty">"Группа \"<xliff:g id="GROUPNAME">%s</xliff:g>\" пуста."</string>
+    <string name="showAllGroups">"Все контакты"</string>
+    <string name="syncAllGroups">"Синхронизировать все контакты"</string>
+    <string name="groupNameMyContacts">"Мои контакты"</string>
+    <string name="groupNameWithPhones">"Контакты с телефонными номерами"</string>
+    <string name="contactCreatedToast">"Контакт создан."</string>
+    <string name="contactSavedToast">"Контакт сохранен."</string>
+    <string name="listSeparatorCallNumber">"Набрать номер"</string>
+    <string name="listSeparatorSendSmsMms">"Отправить SMS/MMS"</string>
+    <string name="listSeparatorSendEmail">"Отправить сообщение электронной почты"</string>
+    <string name="listSeparatorSendIm">"Отправить мгновенное сообщение"</string>
+    <string name="listSeparatorMapAddress">"Адрес на карте"</string>
+    <string name="listSeparatorOrganizations">"Организации"</string>
+    <string name="listSeparatorOtherInformation">"Другие сведения"</string>
+    <string name="contactsIconLabel">"Контакты"</string>
+    <string name="contactsFavoritesLabel">"Избранные"</string>
+    <string name="dialerIconLabel">"Набор номеров"</string>
+    <string name="recentCallsIconLabel">"Журнал вызовов"</string>
+    <string name="liveFolderAll">"Все контакты"</string>
+    <string name="liveFolderFavorites">"Помеченные контакты"</string>
+    <string name="liveFolderPhone">"Контакты с номерами телефонов"</string>
+    <string name="menu_sendTextMessage">"Отправить сообщение SMS"</string>
+    <string name="recentCalls_callNumber">"Позвонить: <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="recentCalls_editNumberBeforeCall">"Изменить номер перед вызовом"</string>
+    <string name="recentCalls_addToContact">"Добавить в контакты"</string>
+    <string name="recentCalls_removeFromRecentList">"Удалить из журнала вызовов"</string>
+    <string name="recentCalls_deleteAll">"Очистить журнал вызовов"</string>
+    <string name="recentCalls_empty">"Журнал вызовов пуст."</string>
+    <string name="imei">"IMEI"</string>
+    <string name="voicemail">"Голосовая почта"</string>
+    <string name="unknown">"Неизвестно"</string>
+    <string name="private_num">"Частный номер"</string>
+    <string name="dialerKeyboardHintText">"Для набора воспользуйтесь клавиатурой"</string>
+    <string name="dialerDialpadHintText">"Звонок для добавления вызова"</string>
+    <string name="simContacts_emptyLoading">"Идет загрузка с SIM-карты…"</string>
+    <string name="simContacts_title">"Контакты на SIM-карте"</string>
+    <string name="contactsSyncPlug"><font fgcolor="#ffffffff">"Синхронизируйте свои контакты Google!"</font>" "\n"После синхронизации с телефоном вы сможете общаться со знакомыми, где бы вы ни были."</string>
+    <string name="noContactsHelpText">"У вас пока нет контактов."\n\n"Чтобы добавить контакты, нажмите кнопку "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" и выберите:"\n\n"        "\n<li><font fgcolor="#ffffffff"><b>"Изменить группы синхронизации"</b></font>" для добавления из нового или существующего аккаунта Google"\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>"Создать контакт"</b></font>" для создания контакта с нуля"\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>"Импортировать контакты"</b></font>" для добавления контактов с SIM-карты"\n</li></string>
+    <string name="seclectSyncGroups_title">"Выбор групп для синхронизации"</string>
+    <string name="liveFolder_all_label">"Все контакты"</string>
+    <string name="liveFolder_favorites_label">"Помеченные"</string>
+    <string name="liveFolder_phones_label">"Телефоны"</string>
+    <string name="dialer_useDtmfDialpad">"Использовать клавиатуру тонального набора"</string>
+    <string name="dialer_returnToInCallScreen">"Отобразить текущий вызов"</string>
+    <string name="dialer_addAnotherCall">"Добавить вызов"</string>
+</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 5d472c1..0533f6b 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -33,9 +33,13 @@
     <string name="editContact_title_edit">"编辑联系人"</string>
     <string name="editContact_title_insert">"添加联系人"</string>
     <string name="menu_addItem">"详细信息"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
+    <skip />
     <string name="label_notes">"备注"</string>
     <string name="label_ringtone">"铃声"</string>
     <string name="ghostData_name">"第一个和最后一个"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
     <string name="ghostData_company">"公司"</string>
     <string name="ghostData_title">"位置"</string>
     <string name="ghostData_im">"即时消息名称"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..016689c
--- /dev/null
+++ b/res/values-zh-rTW/strings.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="contactsList">"連絡人"</string>
+    <string name="shortcutContact">"連絡人"</string>
+    <string name="starredList">"已標記星號"</string>
+    <string name="frequentList">"經常聯絡"</string>
+    <string name="strequentList">"我的最愛"</string>
+    <string name="viewContactTitle">"連絡人詳細資料"</string>
+    <string name="viewContactDesription">"檢視連絡人"</string>
+    <string name="editContactDescription">"編輯連絡人"</string>
+    <string name="insertContactDescription">"建立連絡人"</string>
+    <string name="searchHint">"搜尋連絡人"</string>
+    <string name="menu_newContact">"新增連絡人"</string>
+    <string name="menu_viewContact">"檢視連絡人"</string>
+    <string name="menu_callNumber">"撥打電話給 <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="menu_addStar">"新增至我的最愛"</string>
+    <string name="menu_removeStar">"從我的最愛中移除"</string>
+    <string name="menu_showBarcode">"顯示條碼"</string>
+    <string name="menu_editContact">"編輯連絡人"</string>
+    <string name="menu_deleteContact">"刪除連絡人"</string>
+    <string name="menu_call">"通話"</string>
+    <string name="menu_sendSMS">"傳送 SMS/MMS"</string>
+    <string name="menu_sendEmail">"傳送電子郵件"</string>
+    <string name="menu_viewAddress">"在地圖上顯示地址"</string>
+    <string name="menu_makeDefaultNumber">"設為預設號碼"</string>
+    <string name="deleteConfirmation_title">"刪除"</string>
+    <string name="deleteConfirmation">"此連絡人會被刪除。"</string>
+    <string name="menu_done">"儲存"</string>
+    <string name="menu_doNotSave">"放棄變更"</string>
+    <string name="button_save">"儲存"</string>
+    <string name="button_discard">"放棄變更"</string>
+    <string name="editContact_title_edit">"編輯連絡人"</string>
+    <string name="editContact_title_insert">"新增連絡人"</string>
+    <string name="menu_addItem">"更多資訊"</string>
+    <!-- no translation found for label_phonetic_name (2288082649573927286) -->
+    <skip />
+    <string name="label_notes">"附註"</string>
+    <string name="label_ringtone">"鈴聲"</string>
+    <string name="ghostData_name">"姓名"</string>
+    <!-- no translation found for ghostData_phonetic_name (7852749081984070902) -->
+    <skip />
+    <string name="ghostData_company">"公司"</string>
+    <string name="ghostData_title">"職位"</string>
+    <string name="ghostData_im">"即時訊息帳號"</string>
+    <string name="ghostData_notes">"我的附註"</string>
+    <string name="ghostData_phone">"電話號碼"</string>
+    <string name="ghostData_email">"電子郵件地址"</string>
+    <string name="ghostData_postal">"郵寄地址"</string>
+    <string name="invalidContactMessage">"連絡人不存在"</string>
+    <string name="pickerNewContactHeader">"建立新連絡人"</string>
+    <string name="selectLabel">"選取標籤"</string>
+    <string name="phoneLabelsGroup">"電話"</string>
+    <string name="emailLabelsGroup">"電子郵件"</string>
+    <string name="imLabelsGroup">"即時訊息"</string>
+    <string name="postalLabelsGroup">"郵寄地址"</string>
+    <string name="otherLabelsGroup">"其他"</string>
+  <string-array name="otherLabels">
+    <item>"組織"</item>
+    <item>"附註"</item>
+  </string-array>
+    <string name="errorDialogTitle">"沒有相片"</string>
+    <string name="photoPickerNotFoundText">"手機上沒有相片 。"</string>
+    <string name="attachToContact">"連絡人圖示"</string>
+    <string name="customLabelPickerTitle">"自訂標籤名稱"</string>
+    <string name="menu_displayGroup">"顯示群組"</string>
+    <string name="syncGroupPreference">"編輯同步處理群組"</string>
+    <string name="importFromSim">"匯入連絡人"</string>
+    <string name="send_to_voicemail_checkbox">"將通話直接轉至語音信箱"</string>
+    <string name="send_to_voicemail_view">"通話已直接轉至語音信箱"</string>
+    <string name="default_ringtone">"預設值"</string>
+    <string name="addPicture">"新增圖示"</string>
+    <string name="removePicture">"移除圖示"</string>
+    <string name="noContacts">"沒有連絡人"</string>
+    <string name="noContactsWithPhoneNumbers">"沒有連絡人有電話號碼。"</string>
+    <string name="noFavorites">"沒有我的最愛。"</string>
+    <string name="select_group_title">"群組"</string>
+    <string name="groupEmpty">"您的「<xliff:g id="GROUPNAME">%s</xliff:g>」群組是空的。"</string>
+    <string name="showAllGroups">"所有連絡人"</string>
+    <string name="syncAllGroups">"同步處理所有連絡人"</string>
+    <string name="groupNameMyContacts">"我的聯絡人"</string>
+    <string name="groupNameWithPhones">"有電話號碼的連絡人"</string>
+    <string name="contactCreatedToast">"已建立連絡人"</string>
+    <string name="contactSavedToast">"連絡人已儲存。"</string>
+    <string name="listSeparatorCallNumber">"撥打號碼"</string>
+    <string name="listSeparatorSendSmsMms">"傳送  SMS/MMS"</string>
+    <string name="listSeparatorSendEmail">"傳送電子郵件"</string>
+    <string name="listSeparatorSendIm">"傳送即時訊息"</string>
+    <string name="listSeparatorMapAddress">"在地圖上顯示地址"</string>
+    <string name="listSeparatorOrganizations">"組織"</string>
+    <string name="listSeparatorOtherInformation">"其他資訊"</string>
+    <string name="contactsIconLabel">"連絡人"</string>
+    <string name="contactsFavoritesLabel">"我的最愛"</string>
+    <string name="dialerIconLabel">"撥號"</string>
+    <string name="recentCallsIconLabel">"通話紀錄"</string>
+    <string name="liveFolderAll">"全部聯絡人"</string>
+    <string name="liveFolderFavorites">"已加星號的聯絡人"</string>
+    <string name="liveFolderPhone">"有電話號碼的聯絡人"</string>
+    <string name="menu_sendTextMessage">"傳送  SMS 訊息"</string>
+    <string name="recentCalls_callNumber">"撥打電話給 <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="recentCalls_editNumberBeforeCall">"撥打電話前編輯號碼"</string>
+    <string name="recentCalls_addToContact">"新增至連絡人"</string>
+    <string name="recentCalls_removeFromRecentList">"從通話紀錄中移除"</string>
+    <string name="recentCalls_deleteAll">"清除通話紀錄"</string>
+    <string name="recentCalls_empty">"通話紀錄是空的。"</string>
+    <string name="imei">"IMEI"</string>
+    <string name="voicemail">"語音信箱"</string>
+    <string name="unknown">"未知的"</string>
+    <string name="private_num">"私人號碼"</string>
+    <string name="dialerKeyboardHintText">"使用鍵盤撥號"</string>
+    <string name="dialerDialpadHintText">"撥號即可新增通話"</string>
+    <string name="simContacts_emptyLoading">"從  SIM 卡讀取中…"</string>
+    <string name="simContacts_title">"SIM 卡連絡人"</string>
+    <string name="contactsSyncPlug"><font fgcolor="#ffffffff">" 同步處理您的 Google 連絡人！"</font>" "\n" 與手機同步處理後，無論您走到哪，都可存取連絡人資訊。"</string>
+    <string name="noContactsHelpText">"您沒有任何連絡人。"\n\n" 若要新增連絡人，請按 "<font fgcolor="#ffffffff"><b>" [選單] "</b></font>"，並選取："\n\n"        "\n<li><font fgcolor="#ffffffff"><b>" [編輯同步處理群組] "</b></font>" 從新的或已存在的 Google 帳戶 "\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>" 新增連絡人 "</b></font>" 建立新的連絡人 "\n</li>\n"        "\n<li><font fgcolor="#ffffffff"><b>" 匯入連絡人 "</b></font>" 從 SIM 卡新增連絡人 "\n</li></string>
+    <string name="seclectSyncGroups_title">"選取要同步處理的群組"</string>
+    <string name="liveFolder_all_label">"全部聯絡人"</string>
+    <string name="liveFolder_favorites_label">"已加星號"</string>
+    <string name="liveFolder_phones_label">"電話"</string>
+    <string name="dialer_useDtmfDialpad">"使用按鍵式鍵盤"</string>
+    <string name="dialer_returnToInCallScreen">"返回進行中的通話"</string>
+    <string name="dialer_addAnotherCall">"新增通話"</string>
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1b74492..b98ee50 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -355,7 +355,7 @@
         \n<li><font fgcolor="#ffffffff"><b>New contact</b></font> to create a new contact from scratch\n</li>
         \n<li><font fgcolor="#ffffffff"><b>Import contacts</b></font> to add contacts from your SIM card\n</li>"
     </string>
-    
+
     <!-- Activity title for the activity that lets the user choose which groups of contacts to sync from the server -->
     <string name="seclectSyncGroups_title">Select groups to sync</string>
 
@@ -383,4 +383,30 @@
          is already in progress.) -->
     <string name="dialer_addAnotherCall">Add call</string>
 
+    <!-- Title bar for call detail screen -->
+    <string name="callDetailTitle">Call details</string>
+
+    <!-- Toast for call detail screen when couldn't read the requested details -->
+    <string name="toast_call_detail_error">Couldn\'t read details for the requested call.</string>
+
+    <!-- In call detail screen, label for call type -->
+    <string name="call_type">Type</string>
+
+    <!-- In call detail screen, expanded titles for call types -->
+    <string name="type_incoming">Incoming call</string>
+    <string name="type_outgoing">Outgoing call</string>
+    <string name="type_missed">Missed call</string>
+
+    <!-- In call detail screen, label for call date/time -->
+    <string name="call_time">Time</string>
+
+    <!-- In call detail screen, combine date/time string and relative time to give verbose call date/time -->
+    <string name="datetime_relative">"<xliff:g id="datetime" example="Dec 31, 2007, 11:00 am">%1$s</xliff:g> (<xliff:g id="relative" example="4 hours ago">%2$s</xliff:g>)"</string>
+
+    <!-- In call detail screen, label for call duration -->
+    <string name="call_duration">Duration</string>
+
+    <!-- In call detail screen, header title for actions section -->
+    <string name="header_actions">Actions</string>
+
 </resources>
diff --git a/src/com/android/contacts/CallDetailActivity.java b/src/com/android/contacts/CallDetailActivity.java
new file mode 100755
index 0000000..8b25c09
--- /dev/null
+++ b/src/com/android/contacts/CallDetailActivity.java
@@ -0,0 +1,402 @@
+/*
+ * Copyright (C) 2009 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 android.app.ListActivity;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.CallLog;
+import android.provider.CallLog.Calls;
+import android.provider.Contacts;
+import android.provider.Contacts.Intents.Insert;
+import android.provider.Contacts.People;
+import android.provider.Contacts.Phones;
+import android.telephony.TelephonyManager;
+import android.text.format.DateUtils;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Displays the details of a specific call log entry.
+ */
+public class CallDetailActivity extends ListActivity implements
+        AdapterView.OnItemClickListener {
+    private static final String TAG = "CallDetail";
+
+    private Uri mUri;
+    
+    private View mCallDetailItem;
+    
+    private TextView mCallType;
+    private ImageView mCallTypeIcon;
+    private TextView mCallTime;
+    private View mCallDurationRow;
+    private TextView mCallDuration;
+
+    private String mNumber = null;
+    
+    /* package */ LayoutInflater mInflater;
+    /* package */ Resources mResources;
+    
+    static final String[] CALL_LOG_PROJECTION = new String[] {
+        CallLog.Calls.DATE,
+        CallLog.Calls.DURATION,
+        CallLog.Calls.NUMBER,
+        CallLog.Calls.TYPE,
+    };
+    
+    static final int DATE_COLUMN_INDEX = 0;
+    static final int DURATION_COLUMN_INDEX = 1;
+    static final int NUMBER_COLUMN_INDEX = 2;
+    static final int CALL_TYPE_COLUMN_INDEX = 3;
+    
+    static final String[] PHONES_PROJECTION = new String[] {
+        Phones.PERSON_ID,
+    };
+
+    static final int PERSON_ID_COLUMN_INDEX = 0;
+    
+    private static final int INVALID_TYPE = -1;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        setContentView(R.layout.call_detail);
+
+        mInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
+        mResources = getResources();
+        
+        mCallDetailItem = mInflater.inflate(R.layout.call_detail_item, getListView(), false);
+        
+        mCallType = (TextView) mCallDetailItem.findViewById(R.id.call_type);
+        mCallTypeIcon = (ImageView) mCallDetailItem.findViewById(R.id.call_type_icon);
+        mCallTime = (TextView) mCallDetailItem.findViewById(R.id.call_time);
+        mCallDurationRow = mCallDetailItem.findViewById(R.id.call_duration_row);
+        mCallDuration = (TextView) mCallDetailItem.findViewById(R.id.call_duration);
+        
+        getListView().setOnItemClickListener(this);
+    }
+    
+    @Override
+    public void onResume() {
+        super.onResume();
+        updateData(getIntent().getData());
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        switch (keyCode) {
+            case KeyEvent.KEYCODE_CALL: {
+                // Make sure phone isn't already busy before starting direct call
+                TelephonyManager tm = (TelephonyManager)
+                        getSystemService(Context.TELEPHONY_SERVICE);
+                if (tm.getCallState() == TelephonyManager.CALL_STATE_IDLE) {
+                    Intent callIntent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
+                            Uri.fromParts("tel", mNumber, null));
+                    startActivity(callIntent);
+                    return true;
+                }
+            }
+        }
+        
+        return super.onKeyDown(keyCode, event);
+    }
+    
+    /**
+     * Try a reverse-phonebook lookup to find the contact, if any, behind the given number.
+     * 
+     * @param number Phone number to perform reverse-lookup against
+     * @return Uri into {@link Contacts.People} if found, otherwise null
+     */ 
+    private Uri getPersonUri(String number) {
+        Uri personUri = null;
+        
+        // Perform a reverse-phonebook lookup to find the PERSON_ID
+        ContentResolver resolver = getContentResolver();
+        Uri phoneUri = Uri.withAppendedPath(Phones.CONTENT_FILTER_URL, Uri.encode(number));
+        Cursor phonesCursor = resolver.query(phoneUri, PHONES_PROJECTION, null, null, null);
+        try {
+            if (phonesCursor != null && phonesCursor.moveToFirst()) {
+                long personId = phonesCursor.getLong(PERSON_ID_COLUMN_INDEX);
+                personUri = ContentUris.withAppendedId(Contacts.People.CONTENT_URI, personId);
+            }
+        } finally {
+            if (phonesCursor != null) {
+                phonesCursor.close();
+            }
+        }
+        
+        return personUri;
+    }
+    
+    /**
+     * Update user interface with details of given call.
+     * 
+     * @param callUri Uri into {@link CallLog.Calls}
+     */
+    private void updateData(Uri callUri) {
+        ContentResolver resolver = getContentResolver();
+        Cursor callCursor = resolver.query(callUri, CALL_LOG_PROJECTION, null, null, null);
+        try {
+            if (callCursor != null && callCursor.moveToFirst()) {
+                // Read call log specifics
+                mNumber = callCursor.getString(NUMBER_COLUMN_INDEX);
+                long date = callCursor.getLong(DATE_COLUMN_INDEX);
+                long duration = callCursor.getLong(DURATION_COLUMN_INDEX);
+                int callType = callCursor.getInt(CALL_TYPE_COLUMN_INDEX);
+                
+                // Pull out string in format [relative], [date]
+                CharSequence dateClause = DateUtils.formatDateRange(this, date, date,
+                        DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE |
+                        DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_SHOW_YEAR |
+                        DateUtils.FORMAT_ABBREV_ALL);
+                long now = System.currentTimeMillis();
+                CharSequence relativeClause = DateUtils.getRelativeTimeSpanString(date, now,
+                        DateUtils.SECOND_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE);
+                String dateString = getString(R.string.datetime_relative,
+                        dateClause, relativeClause);
+                mCallTime.setText(dateString);
+                
+                // Set the duration
+                if (callType == Calls.MISSED_TYPE) {
+                    mCallDurationRow.setVisibility(View.GONE);
+                } else {
+                    mCallDurationRow.setVisibility(View.VISIBLE);
+                    mCallDuration.setText(DateUtils.formatElapsedTime(duration));
+                }
+    
+                // Set the call type icon and caption
+                switch (callType) {
+                    case Calls.INCOMING_TYPE:
+                        mCallTypeIcon.setImageResource(android.R.drawable.sym_call_incoming);
+                        mCallType.setText(R.string.type_incoming);
+                        break;
+    
+                    case Calls.OUTGOING_TYPE:
+                        mCallTypeIcon.setImageResource(android.R.drawable.sym_call_outgoing);
+                        mCallType.setText(R.string.type_outgoing);
+                        break;
+    
+                    case Calls.MISSED_TYPE:
+                        mCallTypeIcon.setImageResource(android.R.drawable.sym_call_missed);
+                        mCallType.setText(R.string.type_missed);
+                        break;
+                }
+    
+                // Build list of various available actions
+                List<ViewEntry> actions = new LinkedList<ViewEntry>();
+                
+                Intent callIntent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
+                        Uri.fromParts("tel", mNumber, null));
+                actions.add(new ViewEntry(R.drawable.ic_dialer_fork_current_call,
+                        getString(R.string.recentCalls_callNumber, mNumber), callIntent));
+    
+                Intent smsIntent = new Intent(Intent.ACTION_SENDTO,
+                        Uri.fromParts("sms", mNumber, null));
+                actions.add(new ViewEntry(R.drawable.sym_action_sms,
+                        getString(R.string.menu_sendTextMessage), smsIntent));
+    
+                // Let user view contact details if they exist, otherwise add option
+                // to create new contact from this number.
+                Uri personUri = getPersonUri(mNumber);
+                
+                if (personUri != null) {
+                    Intent viewIntent = new Intent(Intent.ACTION_VIEW, personUri);
+                    actions.add(new ViewEntry(R.drawable.ic_tab_unselected_contacts,
+                            getString(R.string.menu_viewContact), viewIntent));
+                } else {
+                    Intent createIntent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+                    createIntent.setType(People.CONTENT_ITEM_TYPE);
+                    createIntent.putExtra(Insert.PHONE, mNumber);
+                    actions.add(new ViewEntry(R.drawable.ic_dialer_fork_add_call,
+                            getString(R.string.recentCalls_addToContact), createIntent));
+                }
+                
+                ViewAdapter adapter = new ViewAdapter(this, mCallDetailItem, actions);
+                setListAdapter(adapter);
+            } else {
+                // Something went wrong reading in our primary data, so we're going to
+                // bail out and show error to users.
+                Toast.makeText(this, R.string.toast_call_detail_error,
+                        Toast.LENGTH_SHORT).show();
+                finish();
+            }
+        } finally {
+            if (callCursor != null) {
+                callCursor.close();
+            }
+        }
+    }
+
+    static final class ViewEntry {
+        public int icon = -1;
+        public String text = null;
+        public Intent intent = null;
+        
+        public ViewEntry(int icon, String text, Intent intent) {
+            this.icon = icon;
+            this.text = text;
+            this.intent = intent;
+        }
+    }
+
+    static final class ViewAdapter extends BaseAdapter {
+        
+        private final View mCallDetailItem;
+        private final List<ViewEntry> mActions;
+        
+        private final Context mContext;
+        private final LayoutInflater mInflater;
+        
+        public ViewAdapter(Context context, View callDetailItem, List<ViewEntry> actions) {
+            mCallDetailItem = callDetailItem;
+            mActions = actions;
+            
+            mContext = context;
+            mInflater = (LayoutInflater) context
+                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+
+        }
+        
+        public int getCount() {
+            // Count is actions plus two headers and call details panel.
+            return mActions.size() + 2;
+        }
+
+        public Object getItem(int position) {
+            if (position >= POS_FIRST_ITEM) {
+                return mActions.get(position - POS_FIRST_ITEM);
+            }
+            return null;
+        }
+
+        public long getItemId(int position) {
+            return position;
+        }
+        
+        private static final int TYPE_HEADER = 0;
+        private static final int TYPE_CALL_DETAILS = 1;
+        private static final int TYPE_ACTION = 2;
+        
+        private static final int POS_CALL_DETAILS = 0;
+        private static final int POS_ACTIONS_HEADER = 1;
+        private static final int POS_FIRST_ITEM = 2;
+
+        public int getViewTypeCount() {
+            // Types are headers, call details panel, and actions.
+            return 3;
+        }
+        
+        public int getItemViewType(int position) {
+            switch(position) {
+                case POS_CALL_DETAILS:
+                    return TYPE_CALL_DETAILS;
+                case POS_ACTIONS_HEADER:
+                    return TYPE_HEADER;
+                default:
+                    return TYPE_ACTION;
+            }
+        }
+        
+        public boolean areAllItemsEnabled() {
+            return false;
+        }
+        
+        public boolean isEnabled(int position) {
+            return (position > POS_ACTIONS_HEADER);
+        }
+
+        public View getView(int position, View convertView, ViewGroup parent) {
+            // Make sure we have a valid convertView to start with
+            if (convertView == null) {
+                switch(getItemViewType(position)) {
+                    case TYPE_HEADER: {
+                        convertView = mInflater.inflate(R.layout.list_separator, parent, false);
+                        break;
+                    }
+                    case TYPE_CALL_DETAILS: {
+                        convertView = mCallDetailItem;
+                        break;
+                    }
+                    case TYPE_ACTION: {
+                        convertView = mInflater.inflate(R.layout.dialpad_chooser_list_item,
+                                parent, false);
+                        break;
+                    }
+                }
+            }
+
+            // Now fill our known-good convertView with data
+            switch(position) {
+                case POS_CALL_DETAILS: {
+                    // Assume mCallDetailItem is already filled with correct data.
+                    break;
+                }
+                case POS_ACTIONS_HEADER: {
+                    TextView textView = (TextView) convertView;
+                    textView.setText(mContext.getResources().getString(
+                            R.string.header_actions));
+                    break;
+                }
+                default: {
+                    // Fill action with icon and text.
+                    ViewEntry entry = (ViewEntry) getItem(position);
+                    convertView.setTag(entry);
+                    
+                    ImageView icon = (ImageView) convertView.findViewById(R.id.icon);
+                    TextView text = (TextView) convertView.findViewById(R.id.text);
+                    
+                    icon.setImageResource(entry.icon);
+                    text.setText(entry.text);
+                    
+                    break;
+                }
+            }
+            
+            return convertView;
+        }
+
+    }
+    
+    public void onItemClick(AdapterView parent, View view, int position, long id) {
+        // Handle passing action off to correct handler.
+        if (view.getTag() instanceof ViewEntry) {
+            ViewEntry entry = (ViewEntry) view.getTag();
+            if (entry.intent != null) {
+                startActivity(entry.intent);
+            }
+        }
+    }    
+}
diff --git a/src/com/android/contacts/EditContactActivity.java b/src/com/android/contacts/EditContactActivity.java
index 2994ce4..cdf2cef 100644
--- a/src/com/android/contacts/EditContactActivity.java
+++ b/src/com/android/contacts/EditContactActivity.java
@@ -74,7 +74,9 @@
 import android.provider.Contacts.People;
 import android.provider.Contacts.Phones;
 import android.telephony.PhoneNumberFormattingTextWatcher;
+import android.text.Editable;
 import android.text.TextUtils;
+import android.text.TextWatcher;
 import android.text.method.DialerKeyListener;
 import android.text.method.TextKeyListener;
 import android.text.method.TextKeyListener.Capitalize;
@@ -90,6 +92,7 @@
 import android.view.inputmethod.EditorInfo;
 import android.widget.Button;
 import android.widget.CheckBox;
+import android.widget.CompoundButton;
 import android.widget.EditText;
 import android.widget.ExpandableListView;
 import android.widget.ImageView;
@@ -110,7 +113,7 @@
  * background while this activity is running, the updates will be overwritten.
  */
 public final class EditContactActivity extends Activity implements View.OnClickListener,
-        ExpandableListView.OnChildClickListener {
+        ExpandableListView.OnChildClickListener, TextWatcher, CheckBox.OnCheckedChangeListener {
     private static final String TAG = "EditContactActivity";
 
     private static final int STATE_UNKNOWN = 0;
@@ -177,6 +180,9 @@
     private EditText mPhoneticNameView;
     private LinearLayout mPhoneticNameLayout;
 
+    /** Flag marking this contact as changed, meaning we should write changes back. */
+    private boolean mContactChanged = false;
+
     // These are accessed by inner classes. They're package scoped to make access more efficient.
     /* package */ ContentResolver mResolver;
     /* package */ ArrayList<EditEntry> mPhoneEntries = new ArrayList<EditEntry>();
@@ -395,6 +401,7 @@
         outState.putBoolean("photoChanged", mPhotoChanged);
         outState.putBoolean("sendToVoicemail", mSendToVoicemailCheckBox.isChecked());
         outState.putString("phoneticName", mPhoneticNameView.getText().toString());
+        outState.putBoolean("contactChanged", mContactChanged);
     }
 
     @Override
@@ -421,6 +428,7 @@
         mPhotoChanged = inState.getBoolean("photoChanged");
         mSendToVoicemailCheckBox.setChecked(inState.getBoolean("sendToVoicemail"));
         mPhoneticNameView.setText(inState.getString("phoneticName"));
+        mContactChanged = inState.getBoolean("contactChanged");
 
         // Now that everything is restored, build the view
         buildViews();
@@ -448,6 +456,7 @@
             case RINGTONE_PICKED: {
                 Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
                 handleRingtonePicked(pickedUri);
+                mContactChanged = true;
                 break;
             }
         }
@@ -754,6 +763,7 @@
         // Rebuild the views if needed
         if (entry != null) {
             buildViews();
+            mContactChanged = true;
 
             View dataView = entry.view.findViewById(R.id.data);
             if (dataView == null) {
@@ -897,6 +907,8 @@
                     public void onClick(DialogInterface dialog, int which) {
                         entry.setLabel(EditContactActivity.this, ContactMethods.TYPE_CUSTOM,
                                 label.getText().toString());
+                        mContactChanged = true;
+
                         if (addTo != null) {
                             addTo.add(entry);
                             buildViews();
@@ -999,7 +1011,11 @@
             // Add the entry to the my contacts group if it isn't there already
             People.addToMyContactsGroup(mResolver, ContentUris.parseId(mUri));
             setResult(RESULT_OK, new Intent().setData(mUri));
-            Toast.makeText(this, R.string.contactSavedToast, Toast.LENGTH_SHORT).show();
+
+            // Only notify user if we actually changed contact
+            if (mContactChanged || mPhotoChanged) {
+                Toast.makeText(this, R.string.contactSavedToast, Toast.LENGTH_SHORT).show();
+            }
         }
     }
 
@@ -1108,6 +1124,7 @@
 
         // Name
         mNameView.setText(personCursor.getString(CONTACT_NAME_COLUMN));
+        mNameView.addTextChangedListener(this);
 
         // Photo
         mPhoto = People.loadContactPhoto(this, mUri, 0, null);
@@ -1121,6 +1138,8 @@
         // Send to voicemail
         mSendToVoicemailCheckBox
                 .setChecked(personCursor.getInt(CONTACT_SEND_TO_VOICEMAIL_COLUMN) == 1);
+        mSendToVoicemailCheckBox
+                .setOnCheckedChangeListener(this);
 
         // Organizations
         Uri organizationsUri = Uri.withAppendedPath(mUri, Organizations.CONTENT_DIRECTORY);
@@ -1158,6 +1177,7 @@
 
         // Phonetic name
         mPhoneticNameView.setText(personCursor.getString(CONTACT_PHONETIC_NAME_COLUMN));
+        mPhoneticNameView.addTextChangedListener(this);
 
         personCursor.close();
 
@@ -1269,6 +1289,8 @@
             entry.isPrimary = true;
             mEmailEntries.add(entry);
         }
+
+        mContactChanged = false;
     }
 
     /**
@@ -1562,6 +1584,14 @@
             }
         }
 
+        // Connect listeners up to watch for changed values.
+        if (data instanceof EditText) {
+            data.addTextChangedListener(this);
+        }
+        if (data2 instanceof EditText) {
+            data2.addTextChangedListener(this);
+        }
+
         // Hook up the delete button
         View delete = view.findViewById(R.id.delete);
         if (delete != null) delete.setOnClickListener(this);
@@ -1597,9 +1627,11 @@
                     createCustomPicker(mEntry, null);
                 } else {
                     mEntry.setLabel(EditContactActivity.this, type, mLabels[which]);
+                    mContactChanged = true;
                 }
             } else {
                 mEntry.setLabel(EditContactActivity.this, which, mLabels[which]);
+                mContactChanged = true;
             }
         }
     }
@@ -1847,7 +1879,13 @@
                     break;
             }
 
-            values.put(ContactMethods.ISPRIMARY, isPrimary ? "1" : "0");
+            // Only set the ISPRIMARY flag if part of the incoming data.  This is because the
+            // ContentProvider will try finding a new primary when setting to false, meaning
+            // it's possible to lose primary altogether as we walk down the list.  If this editor
+            // implements editing of primaries in the future, this will need to be revisited.
+            if (isPrimary) {
+                values.put(ContactMethods.ISPRIMARY, 1);
+            }
 
             // Save the data
             if (view != null && syncDataWithView) {
@@ -2029,4 +2067,22 @@
             return entry;
         }
     }
+
+    public void afterTextChanged(Editable s) {
+        // Someone edited a text field, so assume this contact is dirty.
+        mContactChanged = true;
+    }
+
+    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+        // Do nothing; editing handled by afterTextChanged()
+    }
+
+    public void onTextChanged(CharSequence s, int start, int before, int count) {
+        // Do nothing; editing handled by afterTextChanged()
+    }
+
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        // Someone changed a checkbox, so assume this contact is dirty.
+        mContactChanged = true;
+    }
 }
diff --git a/src/com/android/contacts/RecentCallsListActivity.java b/src/com/android/contacts/RecentCallsListActivity.java
index 85099fa..8298d21 100644
--- a/src/com/android/contacts/RecentCallsListActivity.java
+++ b/src/com/android/contacts/RecentCallsListActivity.java
@@ -32,6 +32,7 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.SystemClock;
+import android.provider.CallLog;
 import android.provider.CallLog.Calls;
 import android.provider.Contacts.People;
 import android.provider.Contacts.Phones;
@@ -433,11 +434,12 @@
                 views.durationView.setText(DateUtils.formatElapsedTime(c.getLong(DURATION_COLUMN_INDEX)));
             }
 
-            // Set the time and date
+            // Set the date/time field by mixing relative and absolute times.
             int flags = DateUtils.FORMAT_ABBREV_RELATIVE | DateUtils.FORMAT_SHOW_DATE
                     | DateUtils.FORMAT_ABBREV_MONTH;
+            
             views.dateView.setText(DateUtils.getRelativeDateTimeString(context, date,
-                    DateUtils.MINUTE_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, flags));
+                    DateUtils.MINUTE_IN_MILLIS, DateUtils.DAY_IN_MILLIS * 2, flags));
 
             // Set the icon
             switch (type) {
@@ -815,6 +817,8 @@
 
     @Override
     protected void onListItemClick(ListView l, View v, int position, long id) {
-        callEntry(position);
+        Intent intent = new Intent(this, CallDetailActivity.class);
+        intent.setData(ContentUris.withAppendedId(CallLog.Calls.CONTENT_URI, id));
+        startActivity(intent);
     }
 }
