am eb6f9c08: Merge change I0ad3fc43 into eclair
Merge commit 'eb6f9c0824ed739ad4fbfeef19ac1b54553a0914' into eclair-mr2
* commit 'eb6f9c0824ed739ad4fbfeef19ac1b54553a0914':
Avoid IAE by only dismissing dialog when still attached.
diff --git a/Android.mk b/Android.mk
index 2632f47..804072e 100644
--- a/Android.mk
+++ b/Android.mk
@@ -5,7 +5,8 @@
LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_JAVA_LIBRARIES := googlelogin-client
+LOCAL_STATIC_JAVA_LIBRARIES := googlelogin-client \
+ com.android.phone.common
LOCAL_PACKAGE_NAME := Contacts
LOCAL_CERTIFICATE := shared
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 9d6ff4b..a4ec373 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -342,7 +342,6 @@
<!-- Edit or insert details for a contact -->
<activity
android:name=".ui.EditContactActivity"
- android:label="@string/editContactDescription"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter android:label="@string/editContactDescription">
diff --git a/res/drawable/ic_launcher_folder_live_contacts.png b/res/drawable/ic_launcher_folder_live_contacts.png
deleted file mode 100644
index 5e222ec..0000000
--- a/res/drawable/ic_launcher_folder_live_contacts.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_launcher_folder_live_contacts_phone.png b/res/drawable/ic_launcher_folder_live_contacts_phone.png
deleted file mode 100644
index 02637da..0000000
--- a/res/drawable/ic_launcher_folder_live_contacts_phone.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_launcher_folder_live_contacts_starred.png b/res/drawable/ic_launcher_folder_live_contacts_starred.png
deleted file mode 100644
index 927b343..0000000
--- a/res/drawable/ic_launcher_folder_live_contacts_starred.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_launcher_phone.png b/res/drawable/ic_launcher_phone.png
deleted file mode 100644
index 4e613ec..0000000
--- a/res/drawable/ic_launcher_phone.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_launcher_shortcut_contact.png b/res/drawable/ic_launcher_shortcut_contact.png
deleted file mode 100644
index ed7025c..0000000
--- a/res/drawable/ic_launcher_shortcut_contact.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/quickcontact.9.png b/res/drawable/quickcontact.9.png
deleted file mode 100644
index fa0b917..0000000
--- a/res/drawable/quickcontact.9.png
+++ /dev/null
Binary files differ
diff --git a/res/layout-finger/dialpad.xml b/res/layout-finger/dialpad.xml
index 1eb653d..2c14877 100644
--- a/res/layout-finger/dialpad.xml
+++ b/res/layout-finger/dialpad.xml
@@ -17,7 +17,7 @@
<!-- Dialpad in the Contact app.
-->
-<com.android.contacts.ButtonGridLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.android.phone.ButtonGridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialpad"
android:paddingLeft="7dp"
android:paddingRight="7dp"
@@ -135,4 +135,4 @@
android:soundEffectsEnabled="false"
android:contentDescription="@string/description_image_button_pound"
/>
-</com.android.contacts.ButtonGridLayout>
+</com.android.phone.ButtonGridLayout>
diff --git a/res/layout-finger/list_separator.xml b/res/layout-finger/list_separator.xml
index 2ab4859..1257935 100644
--- a/res/layout-finger/list_separator.xml
+++ b/res/layout-finger/list_separator.xml
@@ -4,9 +4,9 @@
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.
@@ -18,5 +18,5 @@
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
style="?android:attr/listSeparatorTextViewStyle"
android:textColor="@*android:color/dim_foreground_dark"
- android:gravity="center_horizontal"
+ android:gravity="left|center_vertical"
/>
diff --git a/res/layout-long-finger/dialpad.xml b/res/layout-long-finger/dialpad.xml
index 9fea6d2..066392d 100644
--- a/res/layout-long-finger/dialpad.xml
+++ b/res/layout-long-finger/dialpad.xml
@@ -18,7 +18,7 @@
Tall screen version with taller buttons.
-->
-<com.android.contacts.ButtonGridLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.android.phone.ButtonGridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialpad"
android:paddingLeft="7dp"
android:paddingRight="7dp"
@@ -136,4 +136,4 @@
android:soundEffectsEnabled="false"
android:contentDescription="@string/description_image_button_pound"
/>
-</com.android.contacts.ButtonGridLayout>
+</com.android.phone.ButtonGridLayout>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ca39832..0cdb86d 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -69,7 +69,7 @@
<string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Smazáním tohoto kontaktu smažete informace z více účtů."</string>
<string name="deleteConfirmation" msgid="811706994761610640">"Tento kontakt bude smazán."</string>
<string name="menu_done" msgid="796017761764190697">"Hotovo"</string>
- <string name="menu_doNotSave" msgid="2174577548513895144">"Vrátit zpět"</string>
+ <string name="menu_doNotSave" msgid="2174577548513895144">"Vrátit"</string>
<string name="editContact_title_edit" msgid="7678695190666836093">"Upravit kontakt"</string>
<string name="editContact_title_insert" msgid="9125600232291405757">"Nový kontakt"</string>
<string name="menu_addItem" msgid="6106836852570790250">"Další informace"</string>
@@ -109,7 +109,7 @@
<string name="displayGroups" msgid="2278964020773993336">"Možnosti zobrazení"</string>
<string name="syncGroupPreference" msgid="9028361137161162861">"Upravit synchronizaci"</string>
<string name="importFromSim" msgid="8383900146531125319">"Importovat kontakty"</string>
- <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Přesměrovat hovory přímo do hlasové schránky"</string>
+ <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Odesílat hovory přímo do hlasové pošty"</string>
<string name="send_to_voicemail_view" msgid="9124400414311776864">"Hovory jsou přesměrovány přímo do hlasové schránky."</string>
<string name="default_ringtone" msgid="9099988849649827972">"Výchozí"</string>
<string name="addPicture" msgid="1594679312161537678">"Přidat ikonu"</string>
@@ -122,7 +122,7 @@
<string name="select_group_title" msgid="7955698611959835612">"Skupiny"</string>
<string name="groupEmpty" msgid="6661950109828194595">"Skupina <xliff:g id="GROUPNAME">%s</xliff:g> je prázdná."</string>
<string name="showAllGroups" msgid="5164410117611094297">"Všechny kontakty"</string>
- <string name="showFilterPhones" msgid="4184858075465653970">"Pouze kontakty s telefony"</string>
+ <string name="showFilterPhones" msgid="4184858075465653970">"Pouze kontakty s telefonními čísly"</string>
<string name="showFilterPhonesDescrip" msgid="6644443248815191067">"Zobrazit pouze kontakty s telefonními čísly"</string>
<string name="headerContactGroups" msgid="2426134991932503843">"Zvolte kontakty, které budou zobrazeny"</string>
<plurals name="groupDescrip">
@@ -180,7 +180,7 @@
<string name="menu_sendTextMessage" msgid="6937343460284499306">"Odeslat textovou zprávu"</string>
<string name="recentCalls_callNumber" msgid="1756372533999226126">"Volat kontakt <xliff:g id="NAME">%s</xliff:g>"</string>
<string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Před voláním upravit číslo"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Přidat do kontaktů"</string>
+ <string name="recentCalls_addToContact" msgid="1429899535546487008">"Přidat mezi kontakty"</string>
<string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Odstranit z hovorů"</string>
<string name="recentCalls_deleteAll" msgid="6352364392762163704">"Vymazat hovory"</string>
<string name="recentCalls_empty" msgid="247053222448663107">"Záznam hovorů je prázdný."</string>
@@ -225,7 +225,7 @@
<string name="actionChat" msgid="31079429748650300">"Chatovat pomocí služby <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionMap" msgid="1977955782051732775">"Zobrazit adresu: <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Příchozí volání"</string>
- <string name="detailIncomingCallsGoToVoicemail" msgid="9163373178772231307">"Budou přesměrovány přímo do hlasové schránky"</string>
+ <string name="detailIncomingCallsGoToVoicemail" msgid="9163373178772231307">"Budou odeslány přímo do hlasové pošty."</string>
<string name="detailsRingtone" msgid="4052108748982701775">"Nastavit vyzvánění <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
<string name="callBack" msgid="5498224409038809224">"Zavolat zpět"</string>
<string name="callAgain" msgid="3197312117049874778">"Zavolat znovu"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Analýza karty vCard se z neznámého důvodu nezdařila."</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Analýza karty vCard se nezdařila. Přestože se zřejmě jedná o správný formát, aktuální implementace jej nepodporuje."</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Na kartě SD nebyl nalezen žádný soubor vCard"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Ve vašem výběru nebyla nalezena žádná platná položka karty vCard"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Import jednoho nebo více souborů se nezdařil (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Neznámá chyba"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Výběr souboru vCard"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Nelze spustit exportní program: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Při exportu došlo k chybě: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Načtení informací z databáze se nezdařilo"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Nelze exportovat žádný kontakt. Pravděpodobně jste zvolili data, která nelze exportovat."</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"Editor karty vCard není správně inicializován"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"Soubor <xliff:g id="FILE_NAME">%s</xliff:g> nelze otevřít: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> z <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktů"</string>
@@ -308,7 +308,7 @@
<string name="quickcontact_remember_choice" msgid="5964536411579749424">"Zapamatovat tuto volbu"</string>
<string name="quickcontact_missing_name" msgid="5590266114306996632">"Neznámé"</string>
<string name="menu_accounts" msgid="8499114602017077970">"Účty"</string>
- <string name="menu_import_export" msgid="3765725645491577190">"Importovat/Exportovat"</string>
+ <string name="menu_import_export" msgid="3765725645491577190">"Importovat nebo exportovat"</string>
<string name="dialog_import_export" msgid="4771877268244096596">"Importovat nebo exportovat kontakty"</string>
<string name="menu_share" msgid="943789700636542260">"Sdílet"</string>
<string name="share_via" msgid="563121028023030093">"Sdílet kontakt pomocí"</string>
@@ -380,7 +380,7 @@
<string name="email_home" msgid="8573740658148184279">"E-mail domů"</string>
<string name="email_mobile" msgid="2042889209787989814">"E-mail na mobil"</string>
<string name="email_work" msgid="2807430017302722689">"E-mail do práce"</string>
- <string name="email_other" msgid="8093933498541795832">"E-mail (další)"</string>
+ <string name="email_other" msgid="8093933498541795832">"E-mail ostatní"</string>
<string name="email_custom" msgid="7548003991586214105">"E-mail <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="email" msgid="5668400997660065897">"E-mail"</string>
<string name="map_home" msgid="1243547733423343982">"Zobrazit adresu domů"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 513129e..ea81717 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -22,7 +22,7 @@
<string name="shortcutMessageContact" msgid="2460337253595976198">"Direkte besked"</string>
<string name="shortcutActivityTitle" msgid="6642877210643565436">"Vælg en kontaktgenvej"</string>
<string name="callShortcutActivityTitle" msgid="6065749861423648991">"Vælg et nummer at ringe til"</string>
- <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Vælg et nummer, som beskeden skal sendes til"</string>
+ <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Vælg et nummer at sende besked til"</string>
<string name="starredList" msgid="4817256136413959463">"Stjernemarkerede"</string>
<string name="frequentList" msgid="7154768136473953056">"Ofte"</string>
<string name="strequentList" msgid="5640192862059373511">"Favorit"</string>
@@ -40,36 +40,36 @@
<string name="menu_showBarcode" msgid="309973637178814132">"Vis stregkode"</string>
<string name="menu_editContact" msgid="3452858480713561396">"Rediger kontakt"</string>
<string name="menu_deleteContact" msgid="1916555454274101750">"Slet kontakt"</string>
- <string name="menu_call" msgid="3992595586042260618">"Ring til kontakt"</string>
- <string name="menu_sendSMS" msgid="5535886767547006515">"Send sms til kontakt"</string>
+ <string name="menu_call" msgid="3992595586042260618">"Ring til kontaktperson"</string>
+ <string name="menu_sendSMS" msgid="5535886767547006515">"Send sms til kontaktperson"</string>
<string name="menu_sendEmail" msgid="7293508859242926187">"Send e-mail"</string>
<string name="menu_viewAddress" msgid="1814744325763202024">"Kortadresse"</string>
<string name="menu_makeDefaultNumber" msgid="4838759253316649534">"Gør til standardnummer"</string>
<string name="menu_makeDefaultEmail" msgid="2599044610375789994">"Benyt e-mail som standard"</string>
<string name="menu_splitAggregate" msgid="8368636463748691868">"Opdel"</string>
<string name="splitAggregate_title" msgid="2053462872948058798">"Opdel kontakt"</string>
- <string name="contactsSplitMessage" msgid="5253490235863170269">"Kontakterne blev opdelt"</string>
- <string name="splitConfirmation_title" msgid="6716467920283502570">"Opdel kontakt"</string>
- <string name="splitConfirmation" msgid="1150797297503944823">"Er du sikker på, at du vil opdele denne ene kontakt i flere kontakter: én for hver sæt af de indeholdte kontaktoplysninger?"</string>
+ <string name="contactsSplitMessage" msgid="5253490235863170269">"Kontaktpersonerne blev opdelt"</string>
+ <string name="splitConfirmation_title" msgid="6716467920283502570">"Opdel kontaktperson"</string>
+ <string name="splitConfirmation" msgid="1150797297503944823">"Er du sikker på, at du vil opdele denne ene kontaktperson i flere kontaktpersoner: én for hver sæt af de indeholdte kontaktoplysninger?"</string>
<string name="menu_joinAggregate" msgid="5027981918265667970">"Føj til"</string>
<string name="menu_showSources" msgid="885215611438295455">"Vis kilder"</string>
<string name="menu_hideSources" msgid="71367585820555477">"Skjul kilder"</string>
<string name="titleJoinAggregate" msgid="6970566008563147202">"Føj til kontakt"</string>
- <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Føj til kontakter"</string>
- <string name="blurbJoinContactDataWith" msgid="995870557595050304">"Vælg den kontakt, du ønsker at forbinde til <xliff:g id="NAME">%s</xliff:g>."</string>
- <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Vis alle kontakter"</string>
- <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Foreslåede kontakter"</string>
+ <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Føj til kontaktpersoner"</string>
+ <string name="blurbJoinContactDataWith" msgid="995870557595050304">"Vælg den kontaktperson, du ønsker at forbinde til <xliff:g id="NAME">%s</xliff:g>."</string>
+ <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Vis alle kontaktpersoner"</string>
+ <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Foreslåede kontaktpersoner"</string>
<string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Alle kontakter"</string>
- <string name="contactsJoinedMessage" msgid="7208148163607047389">"Tilføjede kontakter"</string>
+ <string name="contactsJoinedMessage" msgid="7208148163607047389">"Tilføjede kontaktpersoner"</string>
<string name="menu_contactOptions" msgid="1957061455705020617">"Valgmuligheder"</string>
- <string name="contactOptionsTitle" msgid="8259347644090700915">"Indstillinger"</string>
+ <string name="contactOptionsTitle" msgid="8259347644090700915">"Valgmuligheder"</string>
<string name="deleteConfirmation_title" msgid="6394309508930335204">"Slet"</string>
- <string name="readOnlyContactWarning" msgid="1390849295342594265">"Du kan ikke slette kontakter på skrivebeskyttede konti, men du kan skjule dem i dine lister over kontakter."</string>
- <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Denne kontakt indeholder oplysninger fra flere konti. Oplysningerne fra skrivebeskyttede konti vil blive skjult i dine lister over kontakter, men ikke slettet."</string>
- <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Sletning af denne kontakt sletter oplysninger fra flere konti."</string>
+ <string name="readOnlyContactWarning" msgid="1390849295342594265">"Du kan ikke slette kontaktpersoner på skrivebeskyttede konti, men du kan skjule dem i dine lister over kontaktpersoner."</string>
+ <string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Denne kontaktperson indeholder oplysninger fra flere konti. Oplysningerne fra skrivebeskyttede konti vil blive skjult i dine lister over kontaktpersoner, ikke slettet."</string>
+ <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Sletning af denne kontaktperson sletter oplysninger fra flere konti."</string>
<string name="deleteConfirmation" msgid="811706994761610640">"Denne kontakt slettes"</string>
- <string name="menu_done" msgid="796017761764190697">"Udfør"</string>
- <string name="menu_doNotSave" msgid="2174577548513895144">"Annuller"</string>
+ <string name="menu_done" msgid="796017761764190697">"Færdig"</string>
+ <string name="menu_doNotSave" msgid="2174577548513895144">"Vend tilbage"</string>
<string name="editContact_title_edit" msgid="7678695190666836093">"Rediger kontakt"</string>
<string name="editContact_title_insert" msgid="9125600232291405757">"Ny kontakt"</string>
<string name="menu_addItem" msgid="6106836852570790250">"Få flere oplysninger"</string>
@@ -88,7 +88,7 @@
<string name="ghostData_phone" msgid="6963153888271466620">"Telefonnummer"</string>
<string name="ghostData_email" msgid="6184537075551565919">"E-mail-adresse"</string>
<string name="ghostData_postal" msgid="652611650594951897">"Postadresse"</string>
- <string name="ghostData_group" msgid="4504591380347534114">"Vis gruppe"</string>
+ <string name="ghostData_group" msgid="4504591380347534114">"Vis grupper"</string>
<string name="invalidContactMessage" msgid="5816991830260044593">"Kontakten eksisterer ikke."</string>
<string name="pickerNewContactHeader" msgid="7750705279843568147">"Opret ny kontakt"</string>
<string name="selectLabel" msgid="4255424123394910733">"Vælg etiket"</string>
@@ -105,8 +105,8 @@
<string name="photoPickerNotFoundText" msgid="431331662154342581">"Der er ingen tilgængelige billeder på telefonen."</string>
<string name="attachToContact" msgid="8820530304406066714">"Kontaktikon"</string>
<string name="customLabelPickerTitle" msgid="1081475101983255212">"Navn på tilpasset etiket"</string>
- <string name="menu_displayGroup" msgid="5655505437727616553">"Indstillinger for visning"</string>
- <string name="displayGroups" msgid="2278964020773993336">"Indstillinger for visning"</string>
+ <string name="menu_displayGroup" msgid="5655505437727616553">"Visningsindstillinger"</string>
+ <string name="displayGroups" msgid="2278964020773993336">"Visningsindstillinger"</string>
<string name="syncGroupPreference" msgid="9028361137161162861">"Rediger grupper, synk."</string>
<string name="importFromSim" msgid="8383900146531125319">"Importer kontakter"</string>
<string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Send opkald direkte til voicemail"</string>
@@ -116,30 +116,30 @@
<string name="changePicture" msgid="2943329047610967714">"Skift ikon"</string>
<string name="removePicture" msgid="3041230993155966350">"Fjern ikon"</string>
<string name="noContacts" msgid="8579310973261953559">"Der er ingen kontakter."</string>
- <string name="noMatchingContacts" msgid="4266283206853990471">"Der blev ikke fundet nogen matchende kontakter."</string>
+ <string name="noMatchingContacts" msgid="4266283206853990471">"Der blev ikke fundet nogen matchende kontaktpersoner."</string>
<string name="noContactsWithPhoneNumbers" msgid="1605457050218824269">"Der er ingen kontakter med telefonnumre."</string>
<string name="noFavorites" msgid="812766386743315815">"Der er ingen favoritter."</string>
<string name="select_group_title" msgid="7955698611959835612">"Grupper"</string>
<string name="groupEmpty" msgid="6661950109828194595">"Din gruppe \"<xliff:g id="GROUPNAME">%s</xliff:g>\" er tom."</string>
<string name="showAllGroups" msgid="5164410117611094297">"Alle kontakter"</string>
- <string name="showFilterPhones" msgid="4184858075465653970">"Kun kontakter med telefoner"</string>
- <string name="showFilterPhonesDescrip" msgid="6644443248815191067">"Vis kun kontakter med telefonnumre"</string>
- <string name="headerContactGroups" msgid="2426134991932503843">"Vælg de kontakter, der skal vises"</string>
+ <string name="showFilterPhones" msgid="4184858075465653970">"Kun kontaktpersoner med telefoner"</string>
+ <string name="showFilterPhonesDescrip" msgid="6644443248815191067">"Vis kun kontaktpersoner med telefonnumre"</string>
+ <string name="headerContactGroups" msgid="2426134991932503843">"Vælg de kontaktpersoner, der skal vises"</string>
<plurals name="groupDescrip">
<item quantity="other" msgid="3507881585720628389">"<xliff:g id="COUNT">%0$d</xliff:g> kontakter"</item>
</plurals>
<plurals name="groupDescripPhones">
- <item quantity="other" msgid="3816047547470490208">"<xliff:g id="COUNT_0">%1$d</xliff:g> kontakter, <xliff:g id="COUNTWITHPHONES">%2$d</xliff:g> med telefoner"</item>
+ <item quantity="other" msgid="3816047547470490208">"<xliff:g id="COUNT_0">%1$d</xliff:g> kontaktpersoner, <xliff:g id="COUNTWITHPHONES">%2$d</xliff:g> med telefoner"</item>
</plurals>
<string name="syncAllGroups" msgid="7512169081224806890">"Synkroniser alle kontakter"</string>
- <string name="groupNameMyContacts" msgid="277995505294105439">"Mine kontakter"</string>
+ <string name="groupNameMyContacts" msgid="277995505294105439">"Mine kontaktpersoner"</string>
<string name="groupNameWithPhones" msgid="6981588604041120497">"Kontakter med telefonnumre"</string>
<string name="starredInAndroid" msgid="6495527538140213440">"Stjernemarkerede i Android"</string>
- <string name="savingContact" msgid="4075751076741924939">"Gemmer kontakt ..."</string>
- <string name="savingDisplayGroups" msgid="2133152192716475939">"Gemmer indstillinger for visning …"</string>
+ <string name="savingContact" msgid="4075751076741924939">"Gemmer kontaktperson ..."</string>
+ <string name="savingDisplayGroups" msgid="2133152192716475939">"Gemmer visningsindstillinger ..."</string>
<string name="contactCreatedToast" msgid="8740102129968688060">"Kontakt oprettet."</string>
<string name="contactSavedToast" msgid="7152589189385441091">"Kontakten er gemt."</string>
- <string name="contactSavedErrorToast" msgid="9189098776225004666">"Fejl, kunne ikke gemme ændringer af kontakter"</string>
+ <string name="contactSavedErrorToast" msgid="9189098776225004666">"Fejl, kunne ikke gemme ændringer af kontaktpersoner"</string>
<string name="listSeparatorCallNumber" msgid="7115321894439629408">"Ring til nummer"</string>
<string name="listSeparatorCallNumber_edit" msgid="2999167270900823334">"Telefonnumre"</string>
<string name="listSeparatorSendSmsMms" msgid="5351657038532024412">"Send sms"</string>
@@ -152,23 +152,23 @@
<string name="listSeparatorOrganizations" msgid="7514083358440762504">"Organisationer"</string>
<string name="listSeparatorGroups" msgid="1593940073983422450">"Grupper"</string>
<string name="listSeparatorOtherInformation" msgid="7844959649638482329">"Andre oplysninger"</string>
- <string name="listSeparatorOtherInformation_edit" msgid="1326921768011367750">"Andre indstillinger"</string>
+ <string name="listSeparatorOtherInformation_edit" msgid="1326921768011367750">"Andre valgmuligheder"</string>
<string name="listSeparatorMore_edit" msgid="858454837482243176">"Flere"</string>
<plurals name="listTotalPhoneContacts">
- <item quantity="one" msgid="8721111084815668845">"Viser 1 kontakt med telefonnummer"</item>
- <item quantity="other" msgid="6133262880804110289">"Viser <xliff:g id="COUNT">%d</xliff:g> kontakter med telefonnumre"</item>
+ <item quantity="one" msgid="8721111084815668845">"Viser 1 kontaktperson med telefonnummer"</item>
+ <item quantity="other" msgid="6133262880804110289">"Viser <xliff:g id="COUNT">%d</xliff:g> kontaktpersoner med telefonnumre"</item>
</plurals>
- <string name="listTotalPhoneContactsZero" msgid="2756295259674938869">"Der er ingen synlige kontakter med telefonnumre"</string>
+ <string name="listTotalPhoneContactsZero" msgid="2756295259674938869">"Der er ingen synlige kontaktpersoner med telefonnumre"</string>
<plurals name="listTotalAllContacts">
- <item quantity="one" msgid="1096068709488455155">"Viser 1 kontakt"</item>
- <item quantity="other" msgid="2865867557378939630">"Viser <xliff:g id="COUNT">%d</xliff:g> kontakter"</item>
+ <item quantity="one" msgid="1096068709488455155">"Viser 1 kontaktperson"</item>
+ <item quantity="other" msgid="2865867557378939630">"Viser <xliff:g id="COUNT">%d</xliff:g> kontaktpersoner"</item>
</plurals>
- <string name="listTotalAllContactsZero" msgid="6811347506748072822">"Ingen synlige kontakter"</string>
+ <string name="listTotalAllContactsZero" msgid="6811347506748072822">"Ingen synlige kontaktpersoner"</string>
<plurals name="listFoundAllContacts">
- <item quantity="one" msgid="2830107332033967280">"Fandt 1 kontakt"</item>
- <item quantity="other" msgid="7752927996850263152">"Fandt <xliff:g id="COUNT">%d</xliff:g> kontakter"</item>
+ <item quantity="one" msgid="2830107332033967280">"Fandt 1 kontaktperson"</item>
+ <item quantity="other" msgid="7752927996850263152">"Fandt <xliff:g id="COUNT">%d</xliff:g> kontaktpersoner"</item>
</plurals>
- <string name="listFoundAllContactsZero" msgid="5554368784319460828">"Kontakten blev ikke fundet"</string>
+ <string name="listFoundAllContactsZero" msgid="5554368784319460828">"Kontaktpersonen blev ikke fundet"</string>
<string name="socialStreamIconLabel" msgid="4367712449555075376">"Sociale"</string>
<string name="contactsIconLabel" msgid="7666609097606552806">"Kontakter"</string>
<string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favorit"</string>
@@ -195,11 +195,11 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Indlæser fra SIM-kort ..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontakter på SIM-kort"</string>
<string name="contactsSyncPlug" msgid="7248276704957313698"><font fgcolor="#ffffffff">"Synkroniser dine Google-kontakter!"</font>\n"Når du har synkroniseret din telefon, bliver dine kontakter tilgængelige, uanset hvor du befinder dig."</string>
- <string name="noContactsHelpText" msgid="6788487368878712350">"Du har ingen kontakter, der kan vises."\n\n"Hvis du vil tilføje kontakter, skal du trykke på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" og på"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konti"</b></font>" for at tilføje eller konfigurere en konto med kontakter, som du kan synkronisere med telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for at oprette en ny kontakt helt fra bunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/eksporter"</b></font>\n</li></string>
- <string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"Du har ingen kontakter, der kan vises. (Hvis du lige har tilføjet en konto, kan det tage et par minutter at synkronisere kontakter)."\n\n"Hvis du vil tilføje kontakter, skal du trykke på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" og på"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konti"</b></font>" for at tilføje eller konfigurere en konto med kontaktner, du kan synkronisere til telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Indstillinger for visning"</b></font>" for at ændre, hvilke kontakter der er synlige"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for at oprette en ny kontakt fra bunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/eksporter"</b></font>\n</li></string>
- <string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Du har ingen kontakter, der kan vises."\n\n"Hvis du vil tilføje kontakter, skal du trykke på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" og på"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konti"</b></font>" for at tilføje eller konfigurere en konto med kontakter, du kan synkronisere med telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for at oprette en ny kontakt fra bunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/eksporter"</b></font>\n</li></string>
- <string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Du har ingen kontakter, der kan vises. (Hvis du lige har tilføjet en konto, kan det tage et par minutter at synkronisere kontakterne)."\n\n"Hvis du vil tilføje kontakter, skal du trykke på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" og på"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konti"</b></font>" for at tilføje eller konfigurere en konto med kontakter, du kan synkronisere til telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Indstillinger for visning"</b></font>" for at ændre, hvilke kontakter der er synlige"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" for at oprette en ny kontakt fra bunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/eksporter"</b></font>\n</li></string>
- <string name="noFavoritesHelpText" msgid="3744655776704833277">"Du har ingen favoritter."\n\n"Sådan føjer du en kontakt til din liste over favoritter:"\n\n" "<li>"Tryk på fanen "<b>"Kontakter"</b>\n</li>" "\n<li>"Tryk på den kontakt, du ønsker at føje til dine foretrukne"\n</li>" "\n<li>"Tryk på stjerne ud for kontaktens navn"\n</li></string>
+ <string name="noContactsHelpText" msgid="6788487368878712350">"Du har ingen kontaktpersoner, der kan vises."\n\n"Hvis du vil tilføje kontaktpersoner, skal du trykke på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" og på"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konti"</b></font>" for at tilføje eller konfigurere en konto med kontaktpersoner, som du kan synkronisere med telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontaktperson"</b></font>" for at oprette en ny kontaktperson helt fra bunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/eksporter"</b></font>\n</li></string>
+ <string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"Du har ingen kontaktpersoner, der kan vises. (Hvis du lige har tilføjet en konto, kan det tage et par minutter at synkronisere kontaktpersoner)."\n\n"Hvis du vil tilføje kontaktpersoner, skal du trykke på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" og på"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konti"</b></font>" for at tilføje eller konfigurere en konto med kontaktpersoner, du kan synkronisere til telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsindstillinger"</b></font>" for at ændre, hvilke kontaktpersoner der er synlige"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontaktperson"</b></font>" for at oprette en ny kontaktperson fra bunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/eksporter"</b></font>\n</li></string>
+ <string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Du har ingen kontaktpersoner, der kan vises."\n\n"Hvis du vil tilføje kontaktpersoner, skal du trykke på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" og på"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konti"</b></font>" for at tilføje eller konfigurere en konto med kontaktpersoner, du kan synkronisere med telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontaktperson"</b></font>" for at oprette en ny kontaktperson fra bunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/eksporter"</b></font>\n</li></string>
+ <string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Du har ingen kontaktpersoner, der kan vises. (Hvis du lige har tilføjet en konto, kan det tage et par minutter at synkronisere kontaktpersonerne)."\n\n"Hvis du vil tilføje kontaktpersoner, skal du trykke på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" og på"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konti"</b></font>" for at tilføje eller konfigurere en konto med kontaktpersoner, du kan synkronisere til telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsindstillinger"</b></font>" for at ændre, hvilke kontaktpersoner der er synlige"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontaktperson"</b></font>" for at oprette en ny kontaktperson fra bunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/eksporter"</b></font>\n</li></string>
+ <string name="noFavoritesHelpText" msgid="3744655776704833277">"Du har ingen favoritter."\n\n"Sådan føjer du en kontaktperson til din liste over favoritter:"\n\n" "<li>"Tryk på fanen "<b>"Kontaktpersoner"</b>\n</li>" "\n<li>"Tryk på den kontaktperson, du ønsker at føje til dine foretrukne"\n</li>" "\n<li>"Tryk på stjerne ud for kontaktpersonens navn"\n</li></string>
<string name="seclectSyncGroups_title" msgid="1235432026231325655">"Vælg grupper, der skal synkroniseres"</string>
<string name="liveFolder_all_label" msgid="5961411940473276616">"Alle kontakter"</string>
<string name="liveFolder_favorites_label" msgid="2674341514070517105">"Stjernemarkerede"</string>
@@ -220,16 +220,16 @@
<string name="ringtone_spinner" msgid="7317823545379736528">"Ringetone: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items" msgid="7754115197545456663">"Tilføj flere emner"</string>
<string name="actionCall" msgid="695145166039381504">"Ring til <xliff:g id="TYPE">%s</xliff:g>"</string>
- <string name="actionEmail" msgid="3870371552333656807">"E-mail til <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionEmail" msgid="3870371552333656807">"E-mail <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionText" msgid="6399049224844880108">"Tekst <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionChat" msgid="31079429748650300">"Chat ved hjælp af <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionMap" msgid="1977955782051732775">"Vis <xliff:g id="TYPE">%s</xliff:g> adresse"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Indgående opkald"</string>
<string name="detailIncomingCallsGoToVoicemail" msgid="9163373178772231307">"Sendes direkte til voicemail"</string>
- <string name="detailsRingtone" msgid="4052108748982701775">"Angiv som <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
+ <string name="detailsRingtone" msgid="4052108748982701775">"Indstil til <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
<string name="callBack" msgid="5498224409038809224">"Ring tilbage"</string>
<string name="callAgain" msgid="3197312117049874778">"Ring op igen"</string>
- <string name="returnCall" msgid="8171961914203617813">"Ring tilbage"</string>
+ <string name="returnCall" msgid="8171961914203617813">"Returner opkald"</string>
<string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="favoritesFrquentSeparator" msgid="5007070838253932139">"Ofte ringet til"</string>
<string name="add_contact_dlg_title" msgid="2896685845822146494">"Tilføj kontakt"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"vCard kunne ikke parses pga. en uventet årsag"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"vCard kunne ikke parses, selv om det ser ud til at være et gyldigt format, da den nuværende implementering ikke understøtter det"</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Der blev ikke fundet nogen VCard-fil på SD-kortet"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Der blev ikke fundet nogen gyldig vCard-post for dit valg"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"En eller flere filer blev ikke importeret (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Ukendt fejl"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Vælg vCard-fil"</string>
@@ -278,13 +277,13 @@
<string name="reading_vcard_contacts" msgid="3066834102042012868">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> af <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakter"</string>
<string name="reading_vcard_files" msgid="34180143726972661">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> af <xliff:g id="TOTAL_NUMBER">%s</xliff:g> filer"</string>
<string name="export_all_contacts" msgid="2873892623335194071">"Alle kontakter"</string>
- <string name="export_phone_local_only" msgid="3380497955409896761">"Kontakter, som er lagret lokalt"</string>
+ <string name="export_phone_local_only" msgid="3380497955409896761">"Kontaktpersoner, som er lagret lokalt"</string>
<string name="export_contact_list" msgid="3165097742175874384">"Eksporter kontakter"</string>
<string name="confirm_export_title" msgid="7648747763127442983">"Bekræft eksport"</string>
- <string name="confirm_export_message" msgid="3875683519257829750">"Er du sikker på, at du vil eksportere listen over kontakter til \"<xliff:g id="VCARD_FILENAME">%s</xliff:g>\"?"</string>
- <string name="exporting_contact_failed_title" msgid="585823094820602526">"Eksport af kontaktdata mislykkedes"</string>
- <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Eksport af kontaktdata mislykkedes."\n"Årsag til fejl: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
- <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Der er ingen kontakter, der kan eksporteres"</string>
+ <string name="confirm_export_message" msgid="3875683519257829750">"Er du sikker på, at du vil eksportere listen over kontaktpersoner til \"<xliff:g id="VCARD_FILENAME">%s</xliff:g>\"?"</string>
+ <string name="exporting_contact_failed_title" msgid="585823094820602526">"Eksport af kontaktpersondata mislykkedes"</string>
+ <string name="exporting_contact_failed_message" msgid="4151348002470298092">"Eksport af kontaktpersondata mislykkedes."\n"Årsag til fejl: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+ <string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Der er ingen kontaktpersoner, der kan eksporteres"</string>
<string name="fail_reason_too_many_vcard" msgid="7084146295639672658">"Der er for mange vCard-data på SD-kortet"</string>
<string name="fail_reason_too_long_filename" msgid="1915716071321839166">"Det krævede filnavn er for langt (\"<xliff:g id="FILENAME">%s</xliff:g>\")"</string>
<string name="fail_reason_cannot_open_destination_dir" msgid="1739293936432987758">"Destinationsmappen \"<xliff:g id="DIR_NAME">%s</xliff:g>\" kan ikke åbnes eller oprettes"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Eksportfunktionen kunne ikke startes: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Der opstod en fejl under eksport: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Kunne ikke hente databaseoplysninger"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Der er ingen kontakter, som kan eksporteres. Du har måske valgt data, som ikke kan eksporteres"</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"vCard-oprettelse ikke korrekt initialiseret"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"\"<xliff:g id="FILE_NAME">%s</xliff:g>\" kunne ikke åbnes: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> af <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakter"</string>
@@ -309,10 +309,10 @@
<string name="quickcontact_missing_name" msgid="5590266114306996632">"Ukendte"</string>
<string name="menu_accounts" msgid="8499114602017077970">"Konti"</string>
<string name="menu_import_export" msgid="3765725645491577190">"Import/eksport af"</string>
- <string name="dialog_import_export" msgid="4771877268244096596">"Importer/eksporter kontakter"</string>
+ <string name="dialog_import_export" msgid="4771877268244096596">"Importer/eksporter kontaktpersoner"</string>
<string name="menu_share" msgid="943789700636542260">"Del"</string>
- <string name="share_via" msgid="563121028023030093">"Del kontakt via"</string>
- <string name="share_error" msgid="4374508848981697170">"Denne kontakt kan ikke deles."</string>
+ <string name="share_via" msgid="563121028023030093">"Del kontaktperson via"</string>
+ <string name="share_error" msgid="4374508848981697170">"Denne kontaktperson kan ikke deles."</string>
<string name="nameLabelsGroup" msgid="2034640839640477827">"Navn"</string>
<string name="nicknameLabelsGroup" msgid="2891682101053358010">"Kaldenavn"</string>
<string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisation"</string>
@@ -323,16 +323,16 @@
<string name="type_short_work" msgid="4925330752504537861">"O"</string>
<string name="type_short_pager" msgid="2613818970827594238">"P"</string>
<string name="type_short_other" msgid="5669407180177236769">"O"</string>
- <string name="edit_read_only" msgid="8158629550655830981">"Denne kontakt er skrivebeskyttet"</string>
+ <string name="edit_read_only" msgid="8158629550655830981">"Denne kontaktperson er skrivebeskyttet"</string>
<string name="edit_secondary_collapse" msgid="5371618426594477103">"Flere"</string>
<string name="dialog_primary_name" msgid="5521591005692614833">"Primærnavn"</string>
- <string name="dialog_new_contact_account" msgid="9044704073286262197">"Opret kontakt under konto"</string>
+ <string name="dialog_new_contact_account" msgid="9044704073286262197">"Opret kontaktperson under konto"</string>
<string name="menu_sync_remove" msgid="3266725887008450161">"Fjern synkroniseringsgruppe"</string>
<string name="dialog_sync_add" msgid="8267045393119375803">"Tilføj synkroniseringsgruppe"</string>
<string name="display_more_groups" msgid="2682547080423434170">"Flere grupper ..."</string>
- <string name="display_ungrouped" msgid="4602580795576261158">"Alle andre kontakter"</string>
+ <string name="display_ungrouped" msgid="4602580795576261158">"Alle andre kontaktpersoner"</string>
<string name="display_all_contacts" msgid="6846131371214707956">"Alle kontakter"</string>
- <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Hvis \'<xliff:g id="GROUP">%s</xliff:g>\' fjernes fra synkronisering, vil kontakter, der ikke er i grupper, også fjernes fra synkroniseringen."</string>
+ <string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Hvis \'<xliff:g id="GROUP">%s</xliff:g>\' fjernes fra synkronisering, vil kontaktpersoner, der ikke er i grupper, også fjernes fra synkroniseringen."</string>
<string name="account_phone" msgid="4025734638492419713">"Kun telefon (ikke synkroniseret)"</string>
<string name="label_email_display_name" msgid="5537802602754309600">"Visningsnavn"</string>
<string name="call_custom" msgid="7756571794763171802">"Ring til <xliff:g id="CUSTOM">%s</xliff:g>"</string>
@@ -353,10 +353,10 @@
<string name="call_telex" msgid="2223170774548648114">"Ring til telex"</string>
<string name="call_tty_tdd" msgid="8951266948204379604">"Ring til TTY/TDD"</string>
<string name="call_work_mobile" msgid="8707874281430105394">"Ring til arbejdsmobiltelefon"</string>
- <string name="call_work_pager" msgid="3419348514157949008">"Ring til personsøger på arbejdet"</string>
+ <string name="call_work_pager" msgid="3419348514157949008">"Ring til personsøger til arbejdet"</string>
<string name="call_assistant" msgid="2141641383068514308">"Ring til <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
- <string name="call_mms" msgid="6274041545876221437">"Ring til mms"</string>
- <string name="sms_custom" msgid="5932736853732191825">"Sms til <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="call_mms" msgid="6274041545876221437">"Ring til MMS"</string>
+ <string name="sms_custom" msgid="5932736853732191825">"Tekst <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="sms_home" msgid="7524332261493162995">"Sms til hjem"</string>
<string name="sms_mobile" msgid="5200107250451030769">"Sms til mobil"</string>
<string name="sms_work" msgid="2269624156655267740">"Sms til arbejde"</string>
@@ -376,12 +376,12 @@
<string name="sms_work_mobile" msgid="2459939960512702560">"Send sms til arbejdsmobiltelefon"</string>
<string name="sms_work_pager" msgid="5566924423316960597">"Send sms til personsøger til arbejdet"</string>
<string name="sms_assistant" msgid="2773424339923116234">"Send sms til <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
- <string name="sms_mms" msgid="4069352461380762677">"Sms til mms"</string>
+ <string name="sms_mms" msgid="4069352461380762677">"Sms til MMS"</string>
<string name="email_home" msgid="8573740658148184279">"E-mail til hjem"</string>
<string name="email_mobile" msgid="2042889209787989814">"E-mail til mobil"</string>
<string name="email_work" msgid="2807430017302722689">"E-mail til arbejde"</string>
- <string name="email_other" msgid="8093933498541795832">"E-mail til anden adresse"</string>
- <string name="email_custom" msgid="7548003991586214105">"E-mail til <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="email_other" msgid="8093933498541795832">"E-mail til anden"</string>
+ <string name="email_custom" msgid="7548003991586214105">"E-mail <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="email" msgid="5668400997660065897">"E-mail"</string>
<string name="map_home" msgid="1243547733423343982">"Vis hjemmeadresse"</string>
<string name="map_work" msgid="1360474076921878088">"Vis arbejdsadresse"</string>
@@ -395,12 +395,12 @@
<string name="chat_gtalk" msgid="981575737258117697">"Chat ved hjælp af Google Talk"</string>
<string name="chat_icq" msgid="8438405386153745775">"Chat ved hjælp af ICQ"</string>
<string name="chat_jabber" msgid="7561444230307829609">"Chat ved hjælp af Jabber"</string>
- <string name="chat" msgid="9025361898797412245">"Chat"</string>
+ <string name="chat" msgid="9025361898797412245">"chat"</string>
<string name="postal_street" msgid="8133143961580058972">"Gade"</string>
<string name="postal_pobox" msgid="4431938829180269821">"Postboks"</string>
<string name="postal_neighborhood" msgid="1450783874558956739">"Nabolag"</string>
<string name="postal_city" msgid="6597491300084895548">"By"</string>
- <string name="postal_region" msgid="6045263193478437672">"Stat"</string>
+ <string name="postal_region" msgid="6045263193478437672">"Tilstand"</string>
<string name="postal_postcode" msgid="572136414136673751">"Postnummer"</string>
<string name="postal_country" msgid="7638264508416368690">"Land"</string>
<string name="name_given" msgid="1687286314106019813">"Fornavn"</string>
@@ -412,11 +412,11 @@
<string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetisk mellemnavn"</string>
<string name="name_phonetic_family" msgid="462095502140180305">"Fonetisk efternavn"</string>
<string name="split_label" msgid="8262112659919449087">"Opdel"</string>
- <string name="split_explanation" msgid="1824739956426973592">"Gør disse data til en selvstændig kontakt"</string>
+ <string name="split_explanation" msgid="1824739956426973592">"Gør disse data til selvstændig kontaktperson"</string>
<string name="account_name_format" msgid="4421123930035299208">"Fra <xliff:g id="SOURCE">%1$s</xliff:g>-konto: <xliff:g id="ACCOUNT">%2$s</xliff:g>"</string>
- <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
- <string name="from_account_format" msgid="687567483928582084">"fra <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+ <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontaktperson"</string>
+ <string name="from_account_format" msgid="687567483928582084">"fra<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
<string name="use_photo_as_primary" msgid="8807110122951157246">"Brug dette billede"</string>
- <string name="contact_read_only" msgid="1203216914575723978">"<xliff:g id="SOURCE">%1$s</xliff:g>s kontaktoplysninger kan ikke redigeres på denne enhed."</string>
- <string name="no_contact_details" msgid="6754415338321837001">"Ingen yderligere oplysninger for denne kontakt"</string>
+ <string name="contact_read_only" msgid="1203216914575723978">"<xliff:g id="SOURCE">%1$s</xliff:g> kontaktoplysninger kan ikke redigeres på denne enhed."</string>
+ <string name="no_contact_details" msgid="6754415338321837001">"Ingen yderligere oplysninger for denne kontaktperson"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 4e2a2b9..95ef7d3 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -35,7 +35,7 @@
<string name="menu_newContact" msgid="1209922412763274638">"Neuer Kontakt"</string>
<string name="menu_viewContact" msgid="2795575601596468581">"Kontakt anzeigen"</string>
<string name="menu_callNumber" msgid="5142851348489387516">"<xliff:g id="NAME">%s</xliff:g> anrufen"</string>
- <string name="menu_addStar" msgid="2908478235715404876">"Zu Favoriten hinzufügen"</string>
+ <string name="menu_addStar" msgid="2908478235715404876">"Favoriten hinzufügen"</string>
<string name="menu_removeStar" msgid="5844227078364227030">"Aus Favoriten entfernen"</string>
<string name="menu_showBarcode" msgid="309973637178814132">"Barcode anzeigen"</string>
<string name="menu_editContact" msgid="3452858480713561396">"Kontakt bearbeiten"</string>
@@ -44,18 +44,18 @@
<string name="menu_sendSMS" msgid="5535886767547006515">"Textnachricht an Kontakt"</string>
<string name="menu_sendEmail" msgid="7293508859242926187">"E-Mail senden"</string>
<string name="menu_viewAddress" msgid="1814744325763202024">"Adresse auf der Karte"</string>
- <string name="menu_makeDefaultNumber" msgid="4838759253316649534">"Als Standardnr. festlegen"</string>
+ <string name="menu_makeDefaultNumber" msgid="4838759253316649534">"Als Standardnummer festlegen"</string>
<string name="menu_makeDefaultEmail" msgid="2599044610375789994">"Standard-E-Mail festlegen"</string>
- <string name="menu_splitAggregate" msgid="8368636463748691868">"Teilen"</string>
+ <string name="menu_splitAggregate" msgid="8368636463748691868">"Unterteilen"</string>
<string name="splitAggregate_title" msgid="2053462872948058798">"Kontakt teilen"</string>
<string name="contactsSplitMessage" msgid="5253490235863170269">"Kontakte unterteilt"</string>
- <string name="splitConfirmation_title" msgid="6716467920283502570">"Kontakt teilen"</string>
- <string name="splitConfirmation" msgid="1150797297503944823">"Sind Sie sicher, dass Sie diesen Kontakt in mehrere Kontakte teilen möchten, einen für jedes darin enthaltene Kontaktdetail?"</string>
- <string name="menu_joinAggregate" msgid="5027981918265667970">"Zusammenführen"</string>
+ <string name="splitConfirmation_title" msgid="6716467920283502570">"Kontakt unterteilen"</string>
+ <string name="splitConfirmation" msgid="1150797297503944823">"Sind Sie sicher, dass Sie diesen Kontakt in mehrere Kontakte unterteilen möchten, einen für jedes darin enthaltene Kontaktdetail?"</string>
+ <string name="menu_joinAggregate" msgid="5027981918265667970">"Anfügen"</string>
<string name="menu_showSources" msgid="885215611438295455">"Quellen anzeigen"</string>
<string name="menu_hideSources" msgid="71367585820555477">"Quellen ausblenden"</string>
<string name="titleJoinAggregate" msgid="6970566008563147202">"Kontakt verknüpfen"</string>
- <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Kontakte zusammenführen"</string>
+ <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Kontakte anfügen"</string>
<string name="blurbJoinContactDataWith" msgid="995870557595050304">"Wählen Sie den Kontakt aus, den Sie mit <xliff:g id="NAME">%s</xliff:g> verknüpfen möchten."</string>
<string name="showAllContactsJoinItem" msgid="2189695051430392383">"Alle Kontakte anzeigen"</string>
<string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Vorgeschlagene Kontakte"</string>
@@ -122,7 +122,7 @@
<string name="select_group_title" msgid="7955698611959835612">"Gruppen"</string>
<string name="groupEmpty" msgid="6661950109828194595">"Ihre Gruppe \"<xliff:g id="GROUPNAME">%s</xliff:g>\" ist leer."</string>
<string name="showAllGroups" msgid="5164410117611094297">"Alle Kontakte"</string>
- <string name="showFilterPhones" msgid="4184858075465653970">"Nur Kontakte mit Telefon"</string>
+ <string name="showFilterPhones" msgid="4184858075465653970">"Nur Kontakte mit Telefonen"</string>
<string name="showFilterPhonesDescrip" msgid="6644443248815191067">"Nur Kontakte mit Telefonnummern anzeigen"</string>
<string name="headerContactGroups" msgid="2426134991932503843">"Kontakte zum Anzeigen auswählen"</string>
<plurals name="groupDescrip">
@@ -195,10 +195,10 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"Ladevorgang von SIM-Karte läuft..."</string>
<string name="simContacts_title" msgid="27341688347689769">"Kontakte auf SIM-Karte"</string>
<string name="contactsSyncPlug" msgid="7248276704957313698"><font fgcolor="#ffffffff">"Synchronisieren Sie Ihre Google-Kontakte!"</font>" "\n"Nach der Synchronisierung stehen Ihnen Ihre Kontakte überall zur Verfügung."</string>
- <string name="noContactsHelpText" msgid="6788487368878712350">"Es können keine Kontakte angezeigt werden."\n\n"Tippen Sie zum Hinzufügen von Kontakten auf "<font fgcolor="#ffffffff"><b>"Menü"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten hinzuzufügen oder zu konfigurieren, die mit dem Telefon synchronisiert werden können."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen."\n</li>\n<li><font fgcolor="#ffffffff"><b>"Import/Export"</b></font>\n</li></string>
- <string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"Es können keine Kontakte angezeigt werden. Wenn Sie gerade ein Konto hinzugefügt haben, kann es einige Minuten dauern, bis die Kontakte synchronisiert sind."\n\n"Drücken Sie zum Hinzufügen von Kontakten auf "<font fgcolor="#ffffffff"><b>"Menü"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten hinzuzufügen oder zu konfigurieren, die mit dem Telefon synchronisiert werden können."\n" "</li>\n<li><font fgcolor="#ffffffff"><b>"Anzeigeoptionen"</b></font>", um zu ändern, welche Kontakte angezeigt werden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Import/Export"</b></font>\n</li></string>
- <string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Es können keine Kontakte angezeigt werden."\n\n"Tippen Sie zum Hinzufügen von Kontakten auf "<font fgcolor="#ffffffff"><b>"Menü"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten hinzuzufügen oder zu konfigurieren, die mit dem Telefon synchronisiert werden können."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen"\n</li>\n<li><font fgcolor="#ffffffff"><b>"Import/Export"</b></font>\n</li></string>
- <string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Es können keine Kontakte angezeigt werden. Wenn Sie gerade ein Konto hinzugefügt haben, kann es einige Minuten dauern, bis die Kontakte synchronisiert sind."\n\n"Tippen Sie zum Hinzufügen von Kontakten auf "<font fgcolor="#ffffffff"><b>"Menü"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto mit Kontakten hinzuzufügen oder zu konfigurieren, die mit dem Telefon synchronisiert werden können."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Anzeigeoptionen"</b></font>", um zu ändern, welche Kontakte angezeigt werden"\n</li>\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Import/Export"</b></font>\n</li></string>
+ <string name="noContactsHelpText" msgid="6788487368878712350">"Es können keine Kontakte angezeigt werden."\n\n"Tippen Sie zum Hinzufügen von Kontakten auf "<font fgcolor="#ffffffff"><b>"Menü"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto hinzuzufügen oder mit Kontakten zu konfigurieren, die mit dem Telefon synchronisiert werden können."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen."\n</li>\n<li><font fgcolor="#ffffffff"><b>"Import/Export"</b></font>\n</li></string>
+ <string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"Es können keine Kontakte angezeigt werden. Wenn Sie gerade ein Konto hinzugefügt haben, kann es einige Minuten dauern, bis die Kontakte synchronisiert sind."\n\n"Drücken Sie zum Hinzufügen von Kontakten auf "<font fgcolor="#ffffffff"><b>"Menü"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto hinzuzufügen oder mit Kontakten zu konfigurieren, die mit dem Telefon synchronisiert werden können."\n" "</li>\n<li><font fgcolor="#ffffffff"><b>"Anzeigeoptionen"</b></font>", um zu ändern, welche Kontakte angezeigt werden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Import/Export"</b></font>\n</li></string>
+ <string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Es können keine Kontakte angezeigt werden."\n\n"Tippen Sie zum Hinzufügen von Kontakten auf "<font fgcolor="#ffffffff"><b>"Menü"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto hinzuzufügen oder mit Kontakten zu konfigurieren, die mit dem Telefon synchronisiert werden können."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen"\n</li>\n<li><font fgcolor="#ffffffff"><b>"Import/Export"</b></font>\n</li></string>
+ <string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Es können keine Kontakte angezeigt werden. Wenn Sie gerade ein Konto hinzugefügt haben, kann es einige Minuten dauern, bis die Kontakte synchronisiert sind."\n\n"Tippen Sie zum Hinzufügen von Kontakten auf "<font fgcolor="#ffffffff"><b>"Menü"</b></font>" und tippen Sie anschließend auf "\n" "\n<li><font fgcolor="#ffffffff"><b>"Konten"</b></font>", um ein Konto hinzuzufügen oder mit Kontakten zu konfigurieren, die mit dem Telefon synchronisiert werden können."\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Anzeigeoptionen"</b></font>", um zu ändern, welche Kontakte angezeigt werden"\n</li>\n<li><font fgcolor="#ffffffff"><b>"Neuer Kontakt"</b></font>", um einen neuen Kontakt von Grund auf zu erstellen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Import/Export"</b></font>\n</li></string>
<string name="noFavoritesHelpText" msgid="3744655776704833277">"Sie haben keine Favoriten."\n\n"So fügen Sie einen Kontakt zu Ihrer Favoritenliste hinzu:"\n\n" "<li>"Tippen Sie auf die Registerkarte "<b>"Kontakte"</b>"."\n</li>" "\n<li>"Tippen Sie auf den Kontakt, den Sie zu Ihren Favoriten hinzufügen möchten."\n</li>" "\n<li>"Tippen Sie auf die Markierung neben dem Kontaktnamen."\n</li></string>
<string name="seclectSyncGroups_title" msgid="1235432026231325655">"Zu synchronisierende Gruppen auswählen"</string>
<string name="liveFolder_all_label" msgid="5961411940473276616">"Alle Kontakte"</string>
@@ -230,7 +230,7 @@
<string name="callBack" msgid="5498224409038809224">"Rückruf"</string>
<string name="callAgain" msgid="3197312117049874778">"Erneut anrufen"</string>
<string name="returnCall" msgid="8171961914203617813">"Zurückrufen"</string>
- <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> Min. <xliff:g id="SECONDS">%s</xliff:g> Sek."</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> Minuten, <xliff:g id="SECONDS">%s</xliff:g> Sekunden"</string>
<string name="favoritesFrquentSeparator" msgid="5007070838253932139">"Häufig angerufen"</string>
<string name="add_contact_dlg_title" msgid="2896685845822146494">"Kontakt hinzufügen"</string>
<string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" zu den Kontakten hinzufügen?"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Die vCard konnte aus einem unbekannten Grund nicht geparst werden."</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Beim Parsen der vCard ist ein Fehler aufgetreten. Obwohl die vCard anscheinend ein gültiges Format aufweist, wird sie von der aktuellen Implementierung nicht unterstützt."</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Keine VCard-Datei auf der SD-Karte gefunden"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Es wurde kein gültiger vCard-Eintrag für Ihre Auswahl gefunden."</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Fehler beim Import einer oder mehrerer Dateien (%s)"</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Unbekannter Fehler"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"vCard-Datei auswählen"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Exportprogramm konnte nicht initialisiert werden: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Fehler beim Exportieren: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Fehler bei der Ermittlung von Datenbank-Informationen"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Es ist kein exportierbarer Kontakt vorhanden. Möglicherweise können Sie nicht exportierbare Daten auswählen."</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"Das Programm zum Erstellen der vCard wurde nicht richtig initialisiert."</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"\"<xliff:g id="FILE_NAME">%s</xliff:g>\" konnte nicht geöffnet werden: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> von <xliff:g id="TOTAL_NUMBER">%s</xliff:g> Kontakten"</string>
@@ -301,8 +301,8 @@
<string name="add_2sec_pause" msgid="9214012315201040129">"2 Sekunden Pause hinzufügen"</string>
<string name="add_wait" msgid="3360818652790319634">"Warten hinzufügen"</string>
<string name="dial_button_label" msgid="7637725632722605863">"Wählen"</string>
- <string name="call_disambig_title" msgid="1911302597959335178">"Anruf bei"</string>
- <string name="sms_disambig_title" msgid="4675399294513152364">"Textnachricht schreiben an"</string>
+ <string name="call_disambig_title" msgid="1911302597959335178">"Anrufen mit"</string>
+ <string name="sms_disambig_title" msgid="4675399294513152364">"Textnachricht schreiben mit"</string>
<string name="make_primary" msgid="5829291915305113983">"Diese Auswahl speichern"</string>
<string name="quickcontact_missing_app" msgid="4600366393134289038">"Für diese Aktion wurde keine Anwendung gefunden."</string>
<string name="quickcontact_remember_choice" msgid="5964536411579749424">"Diese Auswahl speichern"</string>
@@ -310,8 +310,8 @@
<string name="menu_accounts" msgid="8499114602017077970">"Konten"</string>
<string name="menu_import_export" msgid="3765725645491577190">"Importieren/Exportieren"</string>
<string name="dialog_import_export" msgid="4771877268244096596">"Kontakte importieren/exportieren"</string>
- <string name="menu_share" msgid="943789700636542260">"Weiterleiten"</string>
- <string name="share_via" msgid="563121028023030093">"Kontakt weiterleiten über"</string>
+ <string name="menu_share" msgid="943789700636542260">"Freigeben"</string>
+ <string name="share_via" msgid="563121028023030093">"Kontakt freigeben über"</string>
<string name="share_error" msgid="4374508848981697170">"Dieser Kontakt kann nicht freigegeben werden."</string>
<string name="nameLabelsGroup" msgid="2034640839640477827">"Name"</string>
<string name="nicknameLabelsGroup" msgid="2891682101053358010">"Alias"</string>
@@ -377,7 +377,7 @@
<string name="sms_work_pager" msgid="5566924423316960597">"Textnachricht an Pager (geschäftlich)"</string>
<string name="sms_assistant" msgid="2773424339923116234">"Textnachricht an <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
<string name="sms_mms" msgid="4069352461380762677">"Text (MMS)"</string>
- <string name="email_home" msgid="8573740658148184279">"E-Mail (privat)"</string>
+ <string name="email_home" msgid="8573740658148184279">"E-Mail-Startseite"</string>
<string name="email_mobile" msgid="2042889209787989814">"E-Mail (mobil)"</string>
<string name="email_work" msgid="2807430017302722689">"E-Mail (Arbeit)"</string>
<string name="email_other" msgid="8093933498541795832">"E-Mail (sonstige)"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 099912d..01faa52 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -113,7 +113,8 @@
<string name="send_to_voicemail_view" msgid="9124400414311776864">"Οι κλήσεις στέλνονται απευθείας στον αυτόματο τηλεφωνητή."</string>
<string name="default_ringtone" msgid="9099988849649827972">"Προεπιλογή"</string>
<string name="addPicture" msgid="1594679312161537678">"Προσθήκη εικονιδίου"</string>
- <string name="changePicture" msgid="2943329047610967714">"Αλλαγή εικονιδίου"</string>
+ <!-- no translation found for changePicture (2943329047610967714) -->
+ <skip />
<string name="removePicture" msgid="3041230993155966350">"Κατάργηση εικονιδίου"</string>
<string name="noContacts" msgid="8579310973261953559">"Δεν υπάρχουν επαφές."</string>
<string name="noMatchingContacts" msgid="4266283206853990471">"Δεν βρέθηκαν επαφές που να αντιστοιχούν."</string>
@@ -264,7 +265,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Η ανάλυση της κάρτας vCard απέτυχε εξαιτίας μη αναμενόμενου συμβάντος"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Αν και το VCard φαίνεται να βρίσκεται σε έγκυρη μορφή, η ανάλυσή του απέτυχε, εφόσον η τρέχουσα εφαρμογή δεν το υποστηρίζει"</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Δεν βρέθηκε αρχείο VCard στην κάρτα SD"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Δεν βρέθηκε έγκυρη καταχώρηση VCard για την επιλογή σας"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Η εισαγωγή ενός ή περισσοτέρων αρχείων απέτυχε (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Άγνωστο σφάλμα"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Επιλογή αρχείου vCard"</string>
@@ -293,7 +293,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Δεν ήταν δυνατή η εκκίνηση της εξαγωγής: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Προέκυψε σφάλμα κατά την εξαγωγή: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Αποτυχία λήψης πληροφοριών βάσης δεδομένων"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Δεν υπάρχει επαφή με δυνατότητα εξαγωγής. Ενδέχεται να επιλέξατε μη εξαγώγιμα δεδομένα"</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"Δεν έχει γίνει σωστή εκκίνηση του προγράμματος σύνθεσης της vCard"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"Δεν ήταν δυνατό το άνοιγμα του \"<xliff:g id="FILE_NAME">%s</xliff:g>\": <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> από <xliff:g id="TOTAL_NUMBER">%s</xliff:g> επαφές"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index bae6b90..60f69ec 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -93,7 +93,7 @@
<string name="pickerNewContactHeader" msgid="7750705279843568147">"Crear nuevo contacto"</string>
<string name="selectLabel" msgid="4255424123394910733">"Seleccionar etiqueta"</string>
<string name="phoneLabelsGroup" msgid="6468091477851199285">"Teléfono"</string>
- <string name="emailLabelsGroup" msgid="8389931313045344406">"Correo elec."</string>
+ <string name="emailLabelsGroup" msgid="8389931313045344406">"Correo electrónico"</string>
<string name="imLabelsGroup" msgid="3898238486262614027">"Mensajería instantánea"</string>
<string name="postalLabelsGroup" msgid="1618078212734693682">"Dirección postal"</string>
<string name="otherLabelsGroup" msgid="6584626043193000238">"Otros"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"No se ha podido analizar vCard debido a un motivo inesperado"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"No se ha podido analizar vCard aunque el formato parece válido, ya que la implementación actual no lo admite"</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"No se ha encontrado un archivo de vCard en la Tarjeta SD."</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"No se ha encontrado ninguna entrada válida de vCard para tu selección"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"No se pudieron importar uno o más archivos (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Error desconocido"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Seleccionar archivo de vCard"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"No se ha podido inicializar el exportador: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Se produjo un error durante la exportación: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"No se ha podido obtener información de la base de datos"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"No hay ningún contacto exportable. Puedes elegir datos no exportables"</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"El redactor de vCard no se ha inicializado correctamente"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"No se pudo abrir \"<xliff:g id="FILE_NAME">%s</xliff:g>\": <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 3852e80..63c0ce3 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"No se ha podido analizar el archivo de vCard debido a un error inesperado."</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"No se ha podido analizar el archivo de vCard (a pesar de que su formato parece ser válido) porque no es compatible con la implementación actual."</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"No se ha encontrado ningún archivo de vCard en la tarjeta SD."</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"No se ha encontrado ninguna entrada de vCard válida para la selección realizada."</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"No ha sido posible importar uno o varios archivos (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Error desconocido"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Seleccionar archivo de vCard"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"No se ha podido inicializar el exportador: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Se ha producido un error durante la exportación: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Error al obtener información de la base de datos"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"No hay contactos que exportar. Puedes seleccionar datos no exportables."</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"El redactor de vCard no se ha inicializado correctamente."</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"No se ha podido abrir el archivo \"<xliff:g id="FILE_NAME">%s</xliff:g>\": <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
@@ -380,7 +380,7 @@
<string name="email_home" msgid="8573740658148184279">"Enviar email a casa"</string>
<string name="email_mobile" msgid="2042889209787989814">"Enviar email al móvil"</string>
<string name="email_work" msgid="2807430017302722689">"Enviar email a trabajo"</string>
- <string name="email_other" msgid="8093933498541795832">"Enviar correo electrónico"</string>
+ <string name="email_other" msgid="8093933498541795832">"Enviar email a otro"</string>
<string name="email_custom" msgid="7548003991586214105">"Correo electrónico <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="email" msgid="5668400997660065897">"Correo electrónico"</string>
<string name="map_home" msgid="1243547733423343982">"Ver dirección de casa"</string>
@@ -403,12 +403,12 @@
<string name="postal_region" msgid="6045263193478437672">"Provincia/Estado"</string>
<string name="postal_postcode" msgid="572136414136673751">"Código postal"</string>
<string name="postal_country" msgid="7638264508416368690">"País"</string>
- <string name="name_given" msgid="1687286314106019813">"Nombre"</string>
+ <string name="name_given" msgid="1687286314106019813">"Nombre de pila"</string>
<string name="name_family" msgid="3416695586119999058">"Apellidos"</string>
<string name="name_prefix" msgid="59756378548779822">"Prefijo del nombre"</string>
<string name="name_middle" msgid="8467433655992690326">"Segundo nombre"</string>
<string name="name_suffix" msgid="3855278445375651441">"Sufijo del nombre"</string>
- <string name="name_phonetic_given" msgid="6853570431394449191">"Nombre fonético"</string>
+ <string name="name_phonetic_given" msgid="6853570431394449191">"Nombre de pila fonético"</string>
<string name="name_phonetic_middle" msgid="8643721493320405200">"Segundo nombre fonético"</string>
<string name="name_phonetic_family" msgid="462095502140180305">"Apellido fonético"</string>
<string name="split_label" msgid="8262112659919449087">"Desagrupar"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index bae53ed..7ed90aa 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -30,7 +30,7 @@
<string name="viewContactDesription" msgid="214186610887547860">"Afficher le contact"</string>
<string name="editContactDescription" msgid="2947202828256214947">"Modifier le contact"</string>
<string name="insertContactDescription" msgid="4709878105452681987">"Créer un contact"</string>
- <string name="searchHint" msgid="8482945356247760701">"Rech. des contacts"</string>
+ <string name="searchHint" msgid="8482945356247760701">"Rechercher des contacts"</string>
<string name="menu_search" msgid="9147752853603483719">"Rechercher"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nouveau contact"</string>
<string name="menu_viewContact" msgid="2795575601596468581">"Afficher le contact"</string>
@@ -122,7 +122,7 @@
<string name="select_group_title" msgid="7955698611959835612">"Groupes"</string>
<string name="groupEmpty" msgid="6661950109828194595">"Votre groupe \"<xliff:g id="GROUPNAME">%s</xliff:g>\" est vide."</string>
<string name="showAllGroups" msgid="5164410117611094297">"Tous les contacts"</string>
- <string name="showFilterPhones" msgid="4184858075465653970">"Contacts avec un n° de tél."</string>
+ <string name="showFilterPhones" msgid="4184858075465653970">"Uniquement les contacts avec un téléphone"</string>
<string name="showFilterPhonesDescrip" msgid="6644443248815191067">"Afficher uniquement les contacts avec un numéro de téléphone"</string>
<string name="headerContactGroups" msgid="2426134991932503843">"Choisissez les contacts à afficher."</string>
<plurals name="groupDescrip">
@@ -172,7 +172,7 @@
<string name="socialStreamIconLabel" msgid="4367712449555075376">"Social"</string>
<string name="contactsIconLabel" msgid="7666609097606552806">"Contacts"</string>
<string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoris"</string>
- <string name="dialerIconLabel" msgid="6500826552823403796">"Tél."</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Tel."</string>
<string name="recentCallsIconLabel" msgid="1419116422359067949">"Appels"</string>
<string name="liveFolderAll" msgid="4789010460767506206">"Tous les contacts"</string>
<string name="liveFolderFavorites" msgid="3100957542927222282">"Contacts suivis"</string>
@@ -199,7 +199,7 @@
<string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"Vous n\'avez aucun contact à afficher (si vous venez d\'ajouter un compte, la synchronisation des contacts peut prendre quelques minutes)."\n\n"Pour ajouter des contacts, appuyez sur "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" et sélectionnez :"\n" "\n<li><font fgcolor="#ffffffff"><b>"Comptes"</b></font>" pour ajouter ou configurer un compte comportant des contacts que vous pourrez synchroniser sur le téléphone ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Options d\'affichage"</b></font>" pour modifier le paramètre de visibilité des contacts ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Nouveau contact"</b></font>" pour créer une entrée ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/Exporter."</b></font>\n</li></string>
<string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Vous n\'avez aucun contact à afficher."\n\n"Pour ajouter des contacts, appuyez sur "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" et sélectionnez :"\n" "\n<li><font fgcolor="#ffffffff"><b>"Comptes"</b></font>" pour ajouter ou configurer un compte dont vous pourrez synchroniser les contacts sur le téléphone ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Nouveau contact"</b></font>" pour créer un contact ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/Exporter."</b></font>\n</li></string>
<string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Vous n\'avez aucun contact à afficher (si vous venez d\'ajouter un compte, la synchronisation des contacts peut prendre quelques minutes)."\n\n"Pour ajouter des contacts, appuyez sur "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" et sélectionnez :"\n" "\n<li><font fgcolor="#ffffffff"><b>"Comptes"</b></font>" pour ajouter ou configurer un compte comportant des contacts que vous pourrez synchroniser sur le téléphone ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Options d\'affichage"</b></font>" pour modifier le paramètre de visibilité des contacts ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Nouveau contact"</b></font>" pour créer une entrée ;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importer/Exporter."</b></font>\n</li></string>
- <string name="noFavoritesHelpText" msgid="3744655776704833277">"Aucun favori."\n\n"Pour ajouter un contact à la liste de favoris :"\n\n" "<li>"Appuyez sur l\'onglet "<b>"Contacts"</b>"."\n</li>" "\n<li>"Appuyez sur le contact à ajouter à vos favoris."\n</li>" "\n<li>"Appuyez sur l\'étoile en regard du nom du contact."\n</li></string>
+ <string name="noFavoritesHelpText" msgid="3744655776704833277">"Vous ne disposez d\'aucun favoris."\n\n"Pour ajouter un contact à la liste de favoris :"\n\n" "<li>"Appuyez sur l\'onglet "<b>"Contacts"</b>"."\n</li>" "\n<li>"Appuyez sur le contact à ajouter à vos favoris."\n</li>" "\n<li>"Appuyez sur l\'étoile en regard du nom du contact."\n</li></string>
<string name="seclectSyncGroups_title" msgid="1235432026231325655">"Sélectionner les groupes à synchroniser"</string>
<string name="liveFolder_all_label" msgid="5961411940473276616">"Tous les contacts"</string>
<string name="liveFolder_favorites_label" msgid="2674341514070517105">"Suivis"</string>
@@ -220,7 +220,7 @@
<string name="ringtone_spinner" msgid="7317823545379736528">"Sonnerie : <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items" msgid="7754115197545456663">"Ajouter d\'autres éléments"</string>
<string name="actionCall" msgid="695145166039381504">"Appeler <xliff:g id="TYPE">%s</xliff:g>"</string>
- <string name="actionEmail" msgid="3870371552333656807">"Env. e-mail à <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionEmail" msgid="3870371552333656807">"Envoyer un e-mail à <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionText" msgid="6399049224844880108">"Envoyer un SMS (<xliff:g id="TYPE">%s</xliff:g>)"</string>
<string name="actionChat" msgid="31079429748650300">"Chatter via <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionMap" msgid="1977955782051732775">"Afficher l\'adresse <xliff:g id="TYPE">%s</xliff:g>"</string>
@@ -377,14 +377,14 @@
<string name="sms_work_pager" msgid="5566924423316960597">"Envoyer un SMS vers téléavertisseur (bureau)"</string>
<string name="sms_assistant" msgid="2773424339923116234">"Envoyer un message texte à <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
<string name="sms_mms" msgid="4069352461380762677">"Envoyer un MMS"</string>
- <string name="email_home" msgid="8573740658148184279">"Env. e-mail domicile"</string>
+ <string name="email_home" msgid="8573740658148184279">"Envoyer un e-mail au domicile"</string>
<string name="email_mobile" msgid="2042889209787989814">"Envoyer un e-mail sur le mobile"</string>
- <string name="email_work" msgid="2807430017302722689">"Env. e-mail bureau"</string>
+ <string name="email_work" msgid="2807430017302722689">"Envoyer un e-mail au bureau"</string>
<string name="email_other" msgid="8093933498541795832">"Envoyer un e-mail à autre adresse"</string>
- <string name="email_custom" msgid="7548003991586214105">"Env. e-mail à <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="email_custom" msgid="7548003991586214105">"Envoyer un e-mail à <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="email" msgid="5668400997660065897">"Envoyer un e-mail"</string>
- <string name="map_home" msgid="1243547733423343982">"Afficher adresse perso"</string>
- <string name="map_work" msgid="1360474076921878088">"Afficher adresse prof."</string>
+ <string name="map_home" msgid="1243547733423343982">"Afficher l\'adresse personnelle"</string>
+ <string name="map_work" msgid="1360474076921878088">"Afficher l\'adresse professionnelle"</string>
<string name="map_other" msgid="5560707927535653892">"Afficher autre adresse"</string>
<string name="map_custom" msgid="6184363799976265281">"Afficher adresse <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="chat_aim" msgid="2588492205291249142">"Chatter via AIM"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 6615020..d32b8f6 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -41,7 +41,7 @@
<string name="menu_editContact" msgid="3452858480713561396">"Modifica contatto"</string>
<string name="menu_deleteContact" msgid="1916555454274101750">"Elimina contatto"</string>
<string name="menu_call" msgid="3992595586042260618">"Chiama contatto"</string>
- <string name="menu_sendSMS" msgid="5535886767547006515">"Invia SMS a contatto"</string>
+ <string name="menu_sendSMS" msgid="5535886767547006515">"Invia testo a n. contatto"</string>
<string name="menu_sendEmail" msgid="7293508859242926187">"Invia email"</string>
<string name="menu_viewAddress" msgid="1814744325763202024">"Indirizzo su mappa"</string>
<string name="menu_makeDefaultNumber" msgid="4838759253316649534">"Rendi numero predefinito"</string>
@@ -122,7 +122,7 @@
<string name="select_group_title" msgid="7955698611959835612">"Gruppi"</string>
<string name="groupEmpty" msgid="6661950109828194595">"Il gruppo \"<xliff:g id="GROUPNAME">%s</xliff:g>\" è vuoto."</string>
<string name="showAllGroups" msgid="5164410117611094297">"Tutti i contatti"</string>
- <string name="showFilterPhones" msgid="4184858075465653970">"Solo contatti con numeri di tel."</string>
+ <string name="showFilterPhones" msgid="4184858075465653970">"Solo contatti con numeri di telefono"</string>
<string name="showFilterPhonesDescrip" msgid="6644443248815191067">"Visualizza solo i contatti con numeri di telefono"</string>
<string name="headerContactGroups" msgid="2426134991932503843">"Scegli i contatti da visualizzare"</string>
<plurals name="groupDescrip">
@@ -142,7 +142,7 @@
<string name="contactSavedErrorToast" msgid="9189098776225004666">"Errore, impossibile salvare le modifiche ai contatti."</string>
<string name="listSeparatorCallNumber" msgid="7115321894439629408">"Componi numero"</string>
<string name="listSeparatorCallNumber_edit" msgid="2999167270900823334">"Numeri di telefono"</string>
- <string name="listSeparatorSendSmsMms" msgid="5351657038532024412">"Invia SMS"</string>
+ <string name="listSeparatorSendSmsMms" msgid="5351657038532024412">"Invia testo"</string>
<string name="listSeparatorSendEmail" msgid="5395590830304525721">"Invia email"</string>
<string name="listSeparatorSendEmail_edit" msgid="6859593624213634454">"Indirizzi email"</string>
<string name="listSeparatorSendIm" msgid="2209260633185984105">"Invia messagio chat"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Impossibile analizzare la vCard per motivi imprevisti"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Impossibile analizzare la vCard nonostante sembri avere un formato valido perché l\'implementazione corrente non la supporta"</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Nessun file vCard trovato sulla scheda SD"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Nessuna voce vCard valida trovata per la tua selezione"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Impossibile importare uno o più file (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Errore sconosciuto"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Seleziona file vCard"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Impossibile inizializzare l\'utilità di esportazione: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Si è verificato un errore durante l\'esportazione: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Recupero informazioni database non riuscito"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Nessun contatto esportabile. Potresti scegliere dati non esportabili"</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"Il compositore di vCard non è correttamente inizializzato"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"Impossibile aprire \"<xliff:g id="FILE_NAME">%s</xliff:g>\": <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> contatti su <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
@@ -336,12 +336,12 @@
<string name="account_phone" msgid="4025734638492419713">"Solo su telefono (non sincronizzato)"</string>
<string name="label_email_display_name" msgid="5537802602754309600">"Nome visualizzato"</string>
<string name="call_custom" msgid="7756571794763171802">"Chiama n. <xliff:g id="CUSTOM">%s</xliff:g>"</string>
- <string name="call_home" msgid="1990519474420545392">"Chiama casa"</string>
- <string name="call_mobile" msgid="7502236805487609178">"Chiama cellulare"</string>
- <string name="call_work" msgid="5328785911463744028">"Chiama ufficio"</string>
- <string name="call_fax_work" msgid="7467763592359059243">"Chiama fax ufficio"</string>
+ <string name="call_home" msgid="1990519474420545392">"Chiama n. casa"</string>
+ <string name="call_mobile" msgid="7502236805487609178">"Chiama n. cellulare"</string>
+ <string name="call_work" msgid="5328785911463744028">"Chiama n. ufficio"</string>
+ <string name="call_fax_work" msgid="7467763592359059243">"Chiama n. fax ufficio"</string>
<string name="call_fax_home" msgid="8342175628887571876">"Chiama n. fax casa"</string>
- <string name="call_pager" msgid="9003902812293983281">"Chiama cercapersone"</string>
+ <string name="call_pager" msgid="9003902812293983281">"Chiama n. cercapersone"</string>
<string name="call_other" msgid="5605584621798108205">"Chiama altro"</string>
<string name="call_callback" msgid="1910165691349426858">"Chiama n. callback"</string>
<string name="call_car" msgid="3280537320306436445">"Chiama n. automobile"</string>
@@ -349,18 +349,18 @@
<string name="call_isdn" msgid="1541590690193403411">"Chiama n. ISDN"</string>
<string name="call_main" msgid="6082900571803441339">"Chiama n. principale"</string>
<string name="call_other_fax" msgid="7777261153532968503">"Chiama n. altro fax"</string>
- <string name="call_radio" msgid="8296755876398357063">"Chiama radiotelefono"</string>
- <string name="call_telex" msgid="2223170774548648114">"Chiama telex"</string>
+ <string name="call_radio" msgid="8296755876398357063">"Chiama n. segnale cellulare"</string>
+ <string name="call_telex" msgid="2223170774548648114">"Chiama n. telex"</string>
<string name="call_tty_tdd" msgid="8951266948204379604">"Chiama n. TTY/TDD"</string>
- <string name="call_work_mobile" msgid="8707874281430105394">"Chiama cellulare lavoro"</string>
- <string name="call_work_pager" msgid="3419348514157949008">"Chiama cercapersone ufficio"</string>
+ <string name="call_work_mobile" msgid="8707874281430105394">"Chiama n. cellulare ufficio"</string>
+ <string name="call_work_pager" msgid="3419348514157949008">"Chiama n. cercapersone ufficio"</string>
<string name="call_assistant" msgid="2141641383068514308">"Chiama <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
<string name="call_mms" msgid="6274041545876221437">"Chiama n. MMS"</string>
<string name="sms_custom" msgid="5932736853732191825">"Invia SMS a n. <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="sms_home" msgid="7524332261493162995">"Invia SMS a n. casa"</string>
- <string name="sms_mobile" msgid="5200107250451030769">"Invia SMS a cellulare"</string>
- <string name="sms_work" msgid="2269624156655267740">"Invia SMS a ufficio"</string>
- <string name="sms_fax_work" msgid="8028189067816907075">"Invia SMS a fax ufficio"</string>
+ <string name="sms_mobile" msgid="5200107250451030769">"Invia SMS a n. cellulare"</string>
+ <string name="sms_work" msgid="2269624156655267740">"Invia SMS a n. ufficio"</string>
+ <string name="sms_fax_work" msgid="8028189067816907075">"Invia SMS a n. fax ufficio"</string>
<string name="sms_fax_home" msgid="9204042076306809634">"Invia SMS a n. fax casa"</string>
<string name="sms_pager" msgid="7730404569637015192">"Invia SMS a n. cercapersone"</string>
<string name="sms_other" msgid="5131921487474531617">"Invia SMS ad altro"</string>
@@ -370,12 +370,12 @@
<string name="sms_isdn" msgid="8153785037515047845">"Invia SMS a n. ISDN"</string>
<string name="sms_main" msgid="8621625784504541679">"Invia SMS a n. principale"</string>
<string name="sms_other_fax" msgid="3930666870074006114">"Invia SMS a n. altro fax"</string>
- <string name="sms_radio" msgid="3329166673433967820">"Invia SMS a radiotelefono"</string>
+ <string name="sms_radio" msgid="3329166673433967820">"Invia SMS a n. segnale cellulare"</string>
<string name="sms_telex" msgid="9034802430065267848">"Invia SMS a n. telex"</string>
<string name="sms_tty_tdd" msgid="6782284969132531532">"Invia SMS a n. TTY/TDD"</string>
- <string name="sms_work_mobile" msgid="2459939960512702560">"Invia SMS a cellulare lavoro"</string>
- <string name="sms_work_pager" msgid="5566924423316960597">"Invia SMS a cercapersone ufficio"</string>
- <string name="sms_assistant" msgid="2773424339923116234">"Invia SMS ad <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+ <string name="sms_work_mobile" msgid="2459939960512702560">"Invia SMS a n. cellulare ufficio"</string>
+ <string name="sms_work_pager" msgid="5566924423316960597">"Invia SMS a n. cercapersone ufficio"</string>
+ <string name="sms_assistant" msgid="2773424339923116234">"Invia testo a <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
<string name="sms_mms" msgid="4069352461380762677">"Invia SMS a n. MMS"</string>
<string name="email_home" msgid="8573740658148184279">"Invia email a ind. casa"</string>
<string name="email_mobile" msgid="2042889209787989814">"Invia email a ind. cellulare"</string>
@@ -383,18 +383,18 @@
<string name="email_other" msgid="8093933498541795832">"Invia email ad altro"</string>
<string name="email_custom" msgid="7548003991586214105">"Invia email a ind. <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="email" msgid="5668400997660065897">"Email"</string>
- <string name="map_home" msgid="1243547733423343982">"Visualizza indirizzo casa"</string>
+ <string name="map_home" msgid="1243547733423343982">"Visualizza indirizzo di casa"</string>
<string name="map_work" msgid="1360474076921878088">"Visualizza indirizzo ufficio"</string>
<string name="map_other" msgid="5560707927535653892">"Visualizza altro indirizzo"</string>
<string name="map_custom" msgid="6184363799976265281">"Visualizza indirizzo <xliff:g id="CUSTOM">%s</xliff:g>"</string>
- <string name="chat_aim" msgid="2588492205291249142">"Chatta su AIM"</string>
- <string name="chat_msn" msgid="8041633440091073484">"Chatta su Windows Live"</string>
- <string name="chat_yahoo" msgid="6629211142719943666">"Chatta su Yahoo"</string>
- <string name="chat_skype" msgid="1210045020427480566">"Chatta su Skype"</string>
- <string name="chat_qq" msgid="4294637812847719693">"Chatta su QQ"</string>
- <string name="chat_gtalk" msgid="981575737258117697">"Chatta su Google Talk"</string>
- <string name="chat_icq" msgid="8438405386153745775">"Chatta su ICQ"</string>
- <string name="chat_jabber" msgid="7561444230307829609">"Chatta su Jabber"</string>
+ <string name="chat_aim" msgid="2588492205291249142">"Chatta tramite AIM"</string>
+ <string name="chat_msn" msgid="8041633440091073484">"Chatta tramite Windows Live"</string>
+ <string name="chat_yahoo" msgid="6629211142719943666">"Chatta tramite Yahoo"</string>
+ <string name="chat_skype" msgid="1210045020427480566">"Chatta tramite Skype"</string>
+ <string name="chat_qq" msgid="4294637812847719693">"Chatta tramite QQ"</string>
+ <string name="chat_gtalk" msgid="981575737258117697">"Chatta tramite Google Talk"</string>
+ <string name="chat_icq" msgid="8438405386153745775">"Chatta tramite ICQ"</string>
+ <string name="chat_jabber" msgid="7561444230307829609">"Chatta tramite Jabber"</string>
<string name="chat" msgid="9025361898797412245">"Chatta"</string>
<string name="postal_street" msgid="8133143961580058972">"Indirizzo postale"</string>
<string name="postal_pobox" msgid="4431938829180269821">"Casella postale"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index fdb7858..611f25f 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"予期しない理由によりvCardの解析に失敗しました"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"vCardの解析に失敗しました。正しいフォーマットですが、現在サポートされていません。"</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"SDカードでvCardファイルが見つかりません"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"選択した内容の有効なvCardエントリが見つかりません"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"1つ以上のファイルをインポートできませんでした(%s)。"</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"不明なエラー"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"vCardファイルの選択"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"エクスポータを初期化できませんでした: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"エクスポート中にエラーが発生しました: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"データベース情報の取得に失敗しました"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"エクスポートできる連絡先がありません。エクスポートできないデータを選択している可能性があります。"</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"vCardコンポーザーが正しく初期化されていません"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"\"<xliff:g id="FILE_NAME">%s</xliff:g>\"を開けませんでした: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g>件のファイル"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 58ac6ef..d35bc91 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -210,7 +210,7 @@
<string name="callDetailTitle" msgid="5340227785196217938">"통화 세부정보"</string>
<string name="toast_call_detail_error" msgid="7200975244804730096">"요청한 통화의 세부정보를 읽지 못했습니다."</string>
<string name="call_type" msgid="3213526349444862087">"유형"</string>
- <string name="type_incoming" msgid="6502076603836088532">"수신전화"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"수신 전화"</string>
<string name="type_outgoing" msgid="343108709599392641">"발신 통화"</string>
<string name="type_missed" msgid="2720502601640509542">"부재중 전화"</string>
<string name="call_time" msgid="5805575214626630975">"시간"</string>
@@ -224,7 +224,7 @@
<string name="actionText" msgid="6399049224844880108">"문자(<xliff:g id="TYPE">%s</xliff:g>)"</string>
<string name="actionChat" msgid="31079429748650300">"<xliff:g id="TYPE">%s</xliff:g>로 채팅"</string>
<string name="actionMap" msgid="1977955782051732775">"<xliff:g id="TYPE">%s</xliff:g> 주소 보기"</string>
- <string name="actionIncomingCall" msgid="6028930669817038600">"수신전화"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"수신 전화"</string>
<string name="detailIncomingCallsGoToVoicemail" msgid="9163373178772231307">"바로 음성메일로 연결됩니다."</string>
<string name="detailsRingtone" msgid="4052108748982701775">"<xliff:g id="RINGTONE_NAME">%s</xliff:g>(으)로 설정"</string>
<string name="callBack" msgid="5498224409038809224">"통화"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"예기치 못한 이유로 인해 vCard를 구문분석하지 못했습니다."</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"올바른 형식처럼 보이지만 현재 구현 환경에서는 VCard를 지원하지 않기 때문에 VCard 구문 분석에 실패했습니다."</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"SD 카드에 VCard 파일이 없습니다."</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"선택한 항목에 유효한 VCard 항목이 없습니다."</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"하나 이상의 파일을 가져오지 못했습니다(%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"알 수 없는 오류"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"vCard 파일 선택"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"내보내기를 초기화하지 못했습니다. \'<xliff:g id="EXACT_REASON">%s</xliff:g>\'"</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"내보내는 중에 오류가 발생했습니다. \'<xliff:g id="EXACT_REASON">%s</xliff:g>\'"</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"데이터베이스 정보를 가져오지 못했습니다."</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"내보낼 수 있는 연락처가 없습니다. 내보낼 수 없는 데이터를 선택할 수 있습니다."</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"vCard 작성기가 바르게 초기화되지 않았습니다."</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"\'<xliff:g id="FILE_NAME">%s</xliff:g>\'을(를) 열 수 없습니다. <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"연락처 <xliff:g id="CURRENT_NUMBER">%s</xliff:g>개(총 <xliff:g id="TOTAL_NUMBER">%s</xliff:g>개) 내보내는 중"</string>
@@ -342,7 +342,7 @@
<string name="call_fax_work" msgid="7467763592359059243">"직장 팩스로 전화걸기"</string>
<string name="call_fax_home" msgid="8342175628887571876">"집 팩스로 전화걸기"</string>
<string name="call_pager" msgid="9003902812293983281">"호출기로 전화걸기"</string>
- <string name="call_other" msgid="5605584621798108205">"다른 연락처로 전화걸기"</string>
+ <string name="call_other" msgid="5605584621798108205">"기타 연락처로 전화걸기"</string>
<string name="call_callback" msgid="1910165691349426858">"콜백 번호로 전화 걸기"</string>
<string name="call_car" msgid="3280537320306436445">"카폰으로 전화걸기"</string>
<string name="call_company_main" msgid="6105120947138711257">"회사 기본전화로 전화걸기"</string>
@@ -363,7 +363,7 @@
<string name="sms_fax_work" msgid="8028189067816907075">"직장 팩스로 문자 보내기"</string>
<string name="sms_fax_home" msgid="9204042076306809634">"집 팩스로 문자 보내기"</string>
<string name="sms_pager" msgid="7730404569637015192">"호출기로 문자 보내기"</string>
- <string name="sms_other" msgid="5131921487474531617">"다른 연락처로 문자 보내기"</string>
+ <string name="sms_other" msgid="5131921487474531617">"기타 연락처로 문자 보내기"</string>
<string name="sms_callback" msgid="5004824430094288752">"콜백 번호로 문자 보내기"</string>
<string name="sms_car" msgid="7444227058437359641">"카폰으로 문자 보내기"</string>
<string name="sms_company_main" msgid="118970873419678087">"회사 기본전화로 문자 보내기"</string>
@@ -380,7 +380,7 @@
<string name="email_home" msgid="8573740658148184279">"집으로 이메일 보내기"</string>
<string name="email_mobile" msgid="2042889209787989814">"모바일로 이메일 보내기"</string>
<string name="email_work" msgid="2807430017302722689">"직장으로 이메일 보내기"</string>
- <string name="email_other" msgid="8093933498541795832">"다른 연락처로 이메일 보내기"</string>
+ <string name="email_other" msgid="8093933498541795832">"기타 연락처로 이메일 보내기"</string>
<string name="email_custom" msgid="7548003991586214105">"이메일(<xliff:g id="CUSTOM">%s</xliff:g>)"</string>
<string name="email" msgid="5668400997660065897">"이메일"</string>
<string name="map_home" msgid="1243547733423343982">"집 주소 보기"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 6c41e23..e47266e 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -56,9 +56,12 @@
<string name="menu_hideSources" msgid="71367585820555477">"Bronnen verbergen"</string>
<string name="titleJoinAggregate" msgid="6970566008563147202">"Contact samenvoegen"</string>
<string name="titleJoinContactDataWith" msgid="7684875775798635354">"Contacten samenvoegen"</string>
- <string name="blurbJoinContactDataWith" msgid="995870557595050304">"Selecteer het contact dat u met <xliff:g id="NAME">%s</xliff:g> wilt samenvoegen."</string>
- <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Alle contacten weergeven"</string>
- <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Mogelijke contacten"</string>
+ <!-- no translation found for blurbJoinContactDataWith (995870557595050304) -->
+ <skip />
+ <!-- no translation found for showAllContactsJoinItem (2189695051430392383) -->
+ <skip />
+ <!-- no translation found for separatorJoinAggregateSuggestions (2831414448851313345) -->
+ <skip />
<string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Alle contacten"</string>
<string name="contactsJoinedMessage" msgid="7208148163607047389">"Contacten zijn samengevoegd"</string>
<string name="menu_contactOptions" msgid="1957061455705020617">"Opties"</string>
@@ -66,7 +69,8 @@
<string name="deleteConfirmation_title" msgid="6394309508930335204">"Verwijderen"</string>
<string name="readOnlyContactWarning" msgid="1390849295342594265">"U kunt contacten niet verwijderen uit alleen-lezen accounts, maar u kunt ze verbergen in uw contactenlijst."</string>
<string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"Dit contact bevat gegevens uit meerdere accounts. Gegevens uit alleen-lezen accounts worden verborgen in uw contactenlijst, maar niet verwijderd."</string>
- <string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Als u dit contact verwijdert, worden gegevens van meerdere accounts verwijderd."</string>
+ <!-- no translation found for multipleContactDeleteConfirmation (938900978442960800) -->
+ <skip />
<string name="deleteConfirmation" msgid="811706994761610640">"Dit contact wordt verwijderd."</string>
<string name="menu_done" msgid="796017761764190697">"Gereed"</string>
<string name="menu_doNotSave" msgid="2174577548513895144">"Terugkeren"</string>
@@ -113,7 +117,8 @@
<string name="send_to_voicemail_view" msgid="9124400414311776864">"Oproepen worden rechtstreeks naar voicemail verzonden."</string>
<string name="default_ringtone" msgid="9099988849649827972">"Standaard"</string>
<string name="addPicture" msgid="1594679312161537678">"Pictogram toevoegen"</string>
- <string name="changePicture" msgid="2943329047610967714">"Pictogram wijzigen"</string>
+ <!-- no translation found for changePicture (2943329047610967714) -->
+ <skip />
<string name="removePicture" msgid="3041230993155966350">"Pictogram verwijderen"</string>
<string name="noContacts" msgid="8579310973261953559">"Geen contacten."</string>
<string name="noMatchingContacts" msgid="4266283206853990471">"Kan geen overeenkomende contacten vinden."</string>
@@ -259,12 +264,13 @@
<string name="import_all_vcard_string" msgid="5518136113853448474">"Alle vCard-bestanden importeren"</string>
<string name="searching_vcard_message" msgid="6917522333561434546">"Zoeken naar vCard-gegevens op SD-kaart"</string>
<string name="scanning_sdcard_failed_title" msgid="3506782007953167180">"Scannen van SD-kaart is mislukt"</string>
- <string name="scanning_sdcard_failed_message" msgid="3761992500690182922">"Scannen van SD-kaart is mislukt: (Reden: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
+ <!-- no translation found for scanning_sdcard_failed_message (3761992500690182922) -->
+ <skip />
<string name="fail_reason_io_error" msgid="5922864781066136340">"I/O-fout"</string>
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Parseren van vCard is mislukt om onbekende reden"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Kan vCard niet parseren, ook al lijkt de indeling geldig. vCard wordt niet ondersteund door de huidige implementatie"</string>
- <string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Geen vCard-bestand gevonden op SD-kaart"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Geen geldig vCard-item gevonden voor uw selectie"</string>
+ <!-- no translation found for fail_reason_no_vcard_file (6376516175882881595) -->
+ <skip />
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Een of meer bestanden kunnen niet worden geïmporteerd (%s)"</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Onbekende fout"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"vCard-bestand selecteren"</string>
@@ -293,7 +299,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Kan het exportprogramma niet initialiseren: \'<xliff:g id="EXACT_REASON">%s</xliff:g>\'"</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Fout opgetreden tijdens export: \'<xliff:g id="EXACT_REASON">%s</xliff:g>\'"</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Databasegegevens ophalen mislukt"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Er is geen contact dat geëxporteerd kan worden. Mogelijk heeft u niet-exporteerbare gegevens gekozen."</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"De vCard-editor is niet juist geïnitialiseerd"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"Kan \'<xliff:g id="FILE_NAME">%s</xliff:g>\' niet openen: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> van <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacten"</string>
@@ -304,9 +311,12 @@
<string name="call_disambig_title" msgid="1911302597959335178">"Bellen met"</string>
<string name="sms_disambig_title" msgid="4675399294513152364">"Sms\'en met"</string>
<string name="make_primary" msgid="5829291915305113983">"Deze keuze onthouden"</string>
- <string name="quickcontact_missing_app" msgid="4600366393134289038">"Er is geen toepassing gevonden om deze actie uit te voeren"</string>
- <string name="quickcontact_remember_choice" msgid="5964536411579749424">"Deze keuze onthouden"</string>
- <string name="quickcontact_missing_name" msgid="5590266114306996632">"Onbekend"</string>
+ <!-- no translation found for quickcontact_missing_app (4600366393134289038) -->
+ <skip />
+ <!-- no translation found for quickcontact_remember_choice (5964536411579749424) -->
+ <skip />
+ <!-- no translation found for quickcontact_missing_name (5590266114306996632) -->
+ <skip />
<string name="menu_accounts" msgid="8499114602017077970">"Accounts"</string>
<string name="menu_import_export" msgid="3765725645491577190">"Importeren/exporteren"</string>
<string name="dialog_import_export" msgid="4771877268244096596">"Contacten importeren/exporteren"</string>
@@ -317,21 +327,25 @@
<string name="nicknameLabelsGroup" msgid="2891682101053358010">"Bijnaam"</string>
<string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisatie"</string>
<string name="websiteLabelsGroup" msgid="4202998982804009261">"Website"</string>
- <string name="eventLabelsGroup" msgid="8069912895912714412">"Afspraak"</string>
+ <!-- no translation found for eventLabelsGroup (8069912895912714412) -->
+ <skip />
<string name="type_short_home" msgid="7770424864090605384">"H"</string>
<string name="type_short_mobile" msgid="1655473281466676216">"M"</string>
<string name="type_short_work" msgid="4925330752504537861">"W"</string>
<string name="type_short_pager" msgid="2613818970827594238">"P"</string>
<string name="type_short_other" msgid="5669407180177236769">"O"</string>
<string name="edit_read_only" msgid="8158629550655830981">"Dit contact is alleen-lezen"</string>
- <string name="edit_secondary_collapse" msgid="5371618426594477103">"Meer"</string>
+ <!-- no translation found for edit_secondary_collapse (5371618426594477103) -->
+ <skip />
<string name="dialog_primary_name" msgid="5521591005692614833">"Primaire naam"</string>
<string name="dialog_new_contact_account" msgid="9044704073286262197">"Contact in account maken"</string>
<string name="menu_sync_remove" msgid="3266725887008450161">"Synchronisatiegroep verwijderen"</string>
<string name="dialog_sync_add" msgid="8267045393119375803">"Synchronisatiegroep toevoegen"</string>
<string name="display_more_groups" msgid="2682547080423434170">"Meer groepen…"</string>
- <string name="display_ungrouped" msgid="4602580795576261158">"Alle andere contacten"</string>
- <string name="display_all_contacts" msgid="6846131371214707956">"Alle contacten"</string>
+ <!-- no translation found for display_ungrouped (4602580795576261158) -->
+ <skip />
+ <!-- no translation found for display_all_contacts (6846131371214707956) -->
+ <skip />
<string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Als u \'<xliff:g id="GROUP">%s</xliff:g>\' verwijdert uit de synchronisatie, worden ook contacten die niet bij een groep horen uit de synchronisatie verwijderd."</string>
<string name="account_phone" msgid="4025734638492419713">"Alleen voor telefoon (niet gesynchroniseerd)"</string>
<string name="label_email_display_name" msgid="5537802602754309600">"Weergavenaam"</string>
@@ -413,7 +427,8 @@
<string name="name_phonetic_family" msgid="462095502140180305">"Fonetische achternaam"</string>
<string name="split_label" msgid="8262112659919449087">"Splitsen"</string>
<string name="split_explanation" msgid="1824739956426973592">"Maak van deze gegevens een nieuw contact."</string>
- <string name="account_name_format" msgid="4421123930035299208">"Van <xliff:g id="SOURCE">%1$s</xliff:g>-account: <xliff:g id="ACCOUNT">%2$s</xliff:g>"</string>
+ <!-- no translation found for account_name_format (4421123930035299208) -->
+ <skip />
<string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> contact"</string>
<string name="from_account_format" msgid="687567483928582084">"van <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
<string name="use_photo_as_primary" msgid="8807110122951157246">"Deze foto gebruiken"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 0769bfc..c4cf8d1 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -86,7 +86,7 @@
<string name="ghostData_im" msgid="7737174936595812794">"Nazwa na czacie"</string>
<string name="ghostData_notes" msgid="3044201271296187724">"Moja notatka"</string>
<string name="ghostData_phone" msgid="6963153888271466620">"Numer telefonu"</string>
- <string name="ghostData_email" msgid="6184537075551565919">"E-mail"</string>
+ <string name="ghostData_email" msgid="6184537075551565919">"Adres e-mail"</string>
<string name="ghostData_postal" msgid="652611650594951897">"Adres pocztowy"</string>
<string name="ghostData_group" msgid="4504591380347534114">"Wyświetl grupę"</string>
<string name="invalidContactMessage" msgid="5816991830260044593">"Kontakt nie istnieje."</string>
@@ -230,7 +230,7 @@
<string name="callBack" msgid="5498224409038809224">"Oddzwoń"</string>
<string name="callAgain" msgid="3197312117049874778">"Zadzwoń ponownie"</string>
<string name="returnCall" msgid="8171961914203617813">"Połączenie zwrotne"</string>
- <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="favoritesFrquentSeparator" msgid="5007070838253932139">"Częste połączenia"</string>
<string name="add_contact_dlg_title" msgid="2896685845822146494">"Dodaj kontakt"</string>
<string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Czy dodać adres „<xliff:g id="EMAIL">%s</xliff:g>” do kontaktów?"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Nie można zanalizować pliku vCard z nieoczekiwanego powodu"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Nie można zanalizować pliku vCard, mimo że prawdopodobnie ma on prawidłowy format. Bieżąca wersja go nie obsługuje."</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Na karcie SD nie znaleziono żadnego pliku vCard"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"W wybranym zakresie nie znaleziono prawidłowego wpisu vCard"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Nie można zaimportować co najmniej jednego pliku (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Nieznany błąd"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Wybierz plik vCard"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Nie można zainicjować programu eksportującego: „<xliff:g id="EXACT_REASON">%s</xliff:g>”"</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Wystąpił błąd podczas eksportowania: „<xliff:g id="EXACT_REASON">%s</xliff:g>”"</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Nie można pobrać informacji o bazie danych"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Brak kontaktów, które można wyeksportować. Być może wybrano dane, których nie można eksportować."</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"Obiekt tworzenia danych vCard nie został poprawnie zainicjowany"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"Nie można otworzyć pliku „<xliff:g id="FILE_NAME">%s</xliff:g>”: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"Kontakt <xliff:g id="CURRENT_NUMBER">%s</xliff:g> z <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
@@ -335,30 +335,30 @@
<string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Usunięcie grupy „<xliff:g id="GROUP">%s</xliff:g>” z ustawień synchronizacji spowoduje również usunięcie wszelkich rozgrupowanych kontaktów z tych ustawień."</string>
<string name="account_phone" msgid="4025734638492419713">"Tylko telefon (brak synchronizacji)"</string>
<string name="label_email_display_name" msgid="5537802602754309600">"Nazwa wyświetlana"</string>
- <string name="call_custom" msgid="7756571794763171802">"Połącz – <xliff:g id="CUSTOM">%s</xliff:g>"</string>
- <string name="call_home" msgid="1990519474420545392">"Połącz – domowy"</string>
- <string name="call_mobile" msgid="7502236805487609178">"Połącz – komórka"</string>
- <string name="call_work" msgid="5328785911463744028">"Połącz – służbowy"</string>
- <string name="call_fax_work" msgid="7467763592359059243">"Połącz – faks służbowy"</string>
- <string name="call_fax_home" msgid="8342175628887571876">"Połącz – faks domowy"</string>
- <string name="call_pager" msgid="9003902812293983281">"Połącz – pager"</string>
- <string name="call_other" msgid="5605584621798108205">"Połącz – inny"</string>
+ <string name="call_custom" msgid="7756571794763171802">"Telefon – <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="call_home" msgid="1990519474420545392">"Telefon – domowy"</string>
+ <string name="call_mobile" msgid="7502236805487609178">"Telefon – komórkowy"</string>
+ <string name="call_work" msgid="5328785911463744028">"Telefon – służbowy"</string>
+ <string name="call_fax_work" msgid="7467763592359059243">"Telefon – faks służbowy"</string>
+ <string name="call_fax_home" msgid="8342175628887571876">"Telefon – faks domowy"</string>
+ <string name="call_pager" msgid="9003902812293983281">"Telefon – pager"</string>
+ <string name="call_other" msgid="5605584621798108205">"Telefon – inny"</string>
<string name="call_callback" msgid="1910165691349426858">"Zadzwoń – połączenie zwrotne"</string>
- <string name="call_car" msgid="3280537320306436445">"Połącz – samochód"</string>
- <string name="call_company_main" msgid="6105120947138711257">"Połącz – firmowy główny"</string>
+ <string name="call_car" msgid="3280537320306436445">"Telefon – samochód"</string>
+ <string name="call_company_main" msgid="6105120947138711257">"Telefon – firmowy główny"</string>
<string name="call_isdn" msgid="1541590690193403411">"Zadzwoń – ISDN"</string>
<string name="call_main" msgid="6082900571803441339">"Zadzwoń pod nr główny"</string>
<string name="call_other_fax" msgid="7777261153532968503">"Połącz – inny faks"</string>
- <string name="call_radio" msgid="8296755876398357063">"Połącz – radio"</string>
+ <string name="call_radio" msgid="8296755876398357063">"Telefon – radio"</string>
<string name="call_telex" msgid="2223170774548648114">"Połącz – teleks"</string>
<string name="call_tty_tdd" msgid="8951266948204379604">"Zadzwoń – TTY/TDD"</string>
- <string name="call_work_mobile" msgid="8707874281430105394">"Połącz – służbowa komórka"</string>
- <string name="call_work_pager" msgid="3419348514157949008">"Połącz – pager służbowy"</string>
+ <string name="call_work_mobile" msgid="8707874281430105394">"Zadzwoń – służbowy komórkowy"</string>
+ <string name="call_work_pager" msgid="3419348514157949008">"Zadzwoń – pager służbowy"</string>
<string name="call_assistant" msgid="2141641383068514308">"Zadzwoń – <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
- <string name="call_mms" msgid="6274041545876221437">"Połącz – MMS"</string>
+ <string name="call_mms" msgid="6274041545876221437">"Telefon – wiadomość MMS"</string>
<string name="sms_custom" msgid="5932736853732191825">"Tekst – <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="sms_home" msgid="7524332261493162995">"Tekst – domowy"</string>
- <string name="sms_mobile" msgid="5200107250451030769">"SMS – komórka"</string>
+ <string name="sms_mobile" msgid="5200107250451030769">"Tekst – komórkowy"</string>
<string name="sms_work" msgid="2269624156655267740">"Tekst – służbowy"</string>
<string name="sms_fax_work" msgid="8028189067816907075">"Tekst – faks służbowy"</string>
<string name="sms_fax_home" msgid="9204042076306809634">"Tekst – faks domowy"</string>
@@ -373,16 +373,16 @@
<string name="sms_radio" msgid="3329166673433967820">"Tekst – radio"</string>
<string name="sms_telex" msgid="9034802430065267848">"SMS – teleks"</string>
<string name="sms_tty_tdd" msgid="6782284969132531532">"SMS – TTY/TDD"</string>
- <string name="sms_work_mobile" msgid="2459939960512702560">"SMS – służbowa komórka"</string>
+ <string name="sms_work_mobile" msgid="2459939960512702560">"SMS – służbowy komórkowy"</string>
<string name="sms_work_pager" msgid="5566924423316960597">"SMS – pager służbowy"</string>
<string name="sms_assistant" msgid="2773424339923116234">"SMS – <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
<string name="sms_mms" msgid="4069352461380762677">"Tekst – wiadomość MMS"</string>
- <string name="email_home" msgid="8573740658148184279">"E-mail – domowy"</string>
- <string name="email_mobile" msgid="2042889209787989814">"E-mail – komórka"</string>
- <string name="email_work" msgid="2807430017302722689">"E-mail – służbowy"</string>
- <string name="email_other" msgid="8093933498541795832">"E-mail – inny"</string>
- <string name="email_custom" msgid="7548003991586214105">"E-mail – <xliff:g id="CUSTOM">%s</xliff:g>"</string>
- <string name="email" msgid="5668400997660065897">"E-mail"</string>
+ <string name="email_home" msgid="8573740658148184279">"Adres e-mail – domowy"</string>
+ <string name="email_mobile" msgid="2042889209787989814">"Adres e-mail – komórkowy"</string>
+ <string name="email_work" msgid="2807430017302722689">"Adres e-mail – służbowy"</string>
+ <string name="email_other" msgid="8093933498541795832">"Adres e-mail – inny"</string>
+ <string name="email_custom" msgid="7548003991586214105">"Adres e-mail – <xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="email" msgid="5668400997660065897">"Adres e-mail"</string>
<string name="map_home" msgid="1243547733423343982">"Wyświetl adres domowy"</string>
<string name="map_work" msgid="1360474076921878088">"Wyświetl adres służbowy"</string>
<string name="map_other" msgid="5560707927535653892">"Wyświetl inny adres"</string>
@@ -398,7 +398,7 @@
<string name="chat" msgid="9025361898797412245">"Czat"</string>
<string name="postal_street" msgid="8133143961580058972">"Ulica"</string>
<string name="postal_pobox" msgid="4431938829180269821">"Skrytka pocztowa"</string>
- <string name="postal_neighborhood" msgid="1450783874558956739">"Dzielnica"</string>
+ <string name="postal_neighborhood" msgid="1450783874558956739">"Okolica"</string>
<string name="postal_city" msgid="6597491300084895548">"Miasto"</string>
<string name="postal_region" msgid="6045263193478437672">"Województwo"</string>
<string name="postal_postcode" msgid="572136414136673751">"Kod pocztowy"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index ae35da1..8133070 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Falha na análise do vCard por motivo inesperado"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Falha na análise do vCard embora o formato pareça válido, uma vez que não é suportado pela implementação actual"</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Não foi encontrado nenhum ficheiro vCard no cartão SD"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Não foi encontrada nenhuma entrada vCard válida para a sua selecção"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"A importação de um ou vários ficheiros falhou (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Erro desconhecido"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Seleccionar ficheiro vCard"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Não foi possível iniciar o exportador: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Erro ocorrido durante a exportação: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Falha na obtenção de informações da base de dados"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Não existe nenhum contacto exportável. Pode ter escolhido dados não exportáveis"</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"O compositor vCard não foi inicializado correctamente"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"Não foi possível abrir \"<xliff:g id="FILE_NAME">%s</xliff:g>\": <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 2ea7a02..a0d169e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -44,19 +44,19 @@
<string name="menu_sendSMS" msgid="5535886767547006515">"Enviar mensagem de texto para o contato"</string>
<string name="menu_sendEmail" msgid="7293508859242926187">"Enviar e-mail"</string>
<string name="menu_viewAddress" msgid="1814744325763202024">"Endereço no mapa"</string>
- <string name="menu_makeDefaultNumber" msgid="4838759253316649534">"Tornar o número padrão"</string>
+ <string name="menu_makeDefaultNumber" msgid="4838759253316649534">"Criar número padrão"</string>
<string name="menu_makeDefaultEmail" msgid="2599044610375789994">"Tornar o e-mail padrão"</string>
<string name="menu_splitAggregate" msgid="8368636463748691868">"Separar"</string>
<string name="splitAggregate_title" msgid="2053462872948058798">"Dividir contato"</string>
<string name="contactsSplitMessage" msgid="5253490235863170269">"Contatos separados"</string>
<string name="splitConfirmation_title" msgid="6716467920283502570">"Separar contato"</string>
<string name="splitConfirmation" msgid="1150797297503944823">"Tem certeza de que deseja separar este único contato em diversos contatos, um para cada conjunto de informações de contato unificado?"</string>
- <string name="menu_joinAggregate" msgid="5027981918265667970">"Unir"</string>
+ <string name="menu_joinAggregate" msgid="5027981918265667970">"Participar"</string>
<string name="menu_showSources" msgid="885215611438295455">"Mostrar fontes"</string>
<string name="menu_hideSources" msgid="71367585820555477">"Ocultar fontes"</string>
- <string name="titleJoinAggregate" msgid="6970566008563147202">"Unir contato"</string>
+ <string name="titleJoinAggregate" msgid="6970566008563147202">"Integrar contato"</string>
<string name="titleJoinContactDataWith" msgid="7684875775798635354">"Unir contatos"</string>
- <string name="blurbJoinContactDataWith" msgid="995870557595050304">"Selecione o contato que deseja unir com <xliff:g id="NAME">%s</xliff:g>."</string>
+ <string name="blurbJoinContactDataWith" msgid="995870557595050304">"Selecione o contato que deseja mesclar com <xliff:g id="NAME">%s</xliff:g>."</string>
<string name="showAllContactsJoinItem" msgid="2189695051430392383">"Mostrar todos os contatos"</string>
<string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contatos sugeridos"</string>
<string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Todos os contatos"</string>
@@ -197,7 +197,7 @@
<string name="contactsSyncPlug" msgid="7248276704957313698"><font fgcolor="#ffffffff">" Sincronize seus contatos do Google!"</font>" "\n"Após sincronizar para o seu telefone, seus contatos estarão disponíveis em qualquer lugar que você vá."</string>
<string name="noContactsHelpText" msgid="6788487368878712350">"Você não tem nenhum contato para exibir."\n\n"Para adicionar contatos, pressione "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" e toque em:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Contas"</b></font>" para adicionar ou configurar uma conta com contatos que possam ser sincronizados com o telefone"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Novo contato"</b></font>" para criar um novo contato do início"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importar/Exportar"</b></font>\n</li></string>
<string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"Você não tem contatos para exibir (se acabou de adicionar uma conta, pode levar alguns minutos para sincronizar os contatos.)"\n\n"Para adicionar contatos, pressione"<font fgcolor="#ffffffff"><b>"Menu"</b></font>" e toque em:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Contas"</b></font>" para adicionar ou configurar uma conta com contatos que possam ser sincronizados com o telefone"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Opções de exibição"</b></font>" para alterar quais contatos ficam visíveis"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Novo contato"</b></font>" para criar um novo contato do início"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importar/Exportar"</b></font>\n</li></string>
- <string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Você não tem nenhum contato para exibir."\n\n"Para adicionar contatos, pressione "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" e toque em:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Contas"</b></font>" para adicionar ou configurar uma conta com contatos que possam ser sincronizados com o telefone"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Novo contato"</b></font>" para criar um novo contato do início"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importar/Exportar"</b></font>\n</li></string>
+ <string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Você não tem nenhum contato para exibir."\n\n"Para adicionar contatos, pressione "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" e toque em:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Contas"</b></font>" para adicionar ou configurar uma conta com contatos que possam ser sincronizados com o telefone"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Novo contato"</b></font>" para criar um novo contato do início"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importar/Exportar"</b></font>\n</li></string>
<string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Você não tem contatos para exibir (se acabou de adicionar uma conta, pode levar alguns minutos para sincronizar os contatos.)"\n\n"Para adicionar contatos, pressione"<font fgcolor="#ffffffff"><b>"Menu"</b></font>" e toque em:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Contas"</b></font>" para adicionar ou configurar uma conta com contatos que possam ser sincronizados com o telefone"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Opções de exibição"</b></font>" para alterar quais contatos ficam visíveis"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Novo contato"</b></font>" para criar um novo contato do início"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importar/Exportar"</b></font>\n</li></string>
<string name="noFavoritesHelpText" msgid="3744655776704833277">"Você não tem nenhum favorito."\n\n"Para adicionar um contato à sua lista de favoritos:"\n\n" "<li>"Toque na guia "<b>"Contatos"</b>\n</li>" "\n<li>"Toque no contato que deseja adicionar aos seus favoritos"\n</li>" "\n<li>"Toque na estrela ao lado do nome do contato"\n</li></string>
<string name="seclectSyncGroups_title" msgid="1235432026231325655">"Selecionar grupos para sincronizar"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Falha ao analisar o vCard por razão inesperada"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Falha ao analisar o vCard. Embora o formato pareça ser válido, a implementação atual não oferece suporte a ele."</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Nenhum arquivo de vCard encontrado no cartão SD"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Nenhuma entrada válida no vCard foi encontrada para a sua seleção"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Falha na importação de um ou mais arquivos (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Erro desconhecido"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Selecionar arquivo do vCard"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Não foi possível iniciar o exportador: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Ocorreu um erro durante a exportação: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Falha ao acessar informações do banco de dados"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Não há contatos exportáveis. Você precisa escolher dados não exportáveis."</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"O vCard não foi iniciado corretamente"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"Não foi possível abrir \"<xliff:g id="FILE_NAME">%s</xliff:g>\": <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contatos"</string>
@@ -380,8 +380,8 @@
<string name="email_home" msgid="8573740658148184279">"E-mail (residencial)"</string>
<string name="email_mobile" msgid="2042889209787989814">"Enviar e-mail para celular"</string>
<string name="email_work" msgid="2807430017302722689">"E-mail (comercial)"</string>
- <string name="email_other" msgid="8093933498541795832">"E-mail (outros)"</string>
- <string name="email_custom" msgid="7548003991586214105">"E-mail (<xliff:g id="CUSTOM">%s</xliff:g>)"</string>
+ <string name="email_other" msgid="8093933498541795832">"Enviar e-mail para outras pessoas"</string>
+ <string name="email_custom" msgid="7548003991586214105">"Enviar e-mail para <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="email" msgid="5668400997660065897">"E-mail"</string>
<string name="map_home" msgid="1243547733423343982">"Ver endereço residencial"</string>
<string name="map_work" msgid="1360474076921878088">"Ver endereço comercial"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 82dc007..2207e24 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -34,7 +34,7 @@
<string name="menu_search" msgid="9147752853603483719">"Поиск"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Новый контакт"</string>
<string name="menu_viewContact" msgid="2795575601596468581">"Просмотреть контакт"</string>
- <string name="menu_callNumber" msgid="5142851348489387516">"<xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="menu_callNumber" msgid="5142851348489387516">"Вызов: <xliff:g id="NAME">%s</xliff:g>"</string>
<string name="menu_addStar" msgid="2908478235715404876">"Добавить в избранные"</string>
<string name="menu_removeStar" msgid="5844227078364227030">"Удалить из избранных"</string>
<string name="menu_showBarcode" msgid="309973637178814132">"Показать штрих-код"</string>
@@ -69,7 +69,7 @@
<string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"Удаление этого контакта приведет к потере данных из нескольких аккаунтов."</string>
<string name="deleteConfirmation" msgid="811706994761610640">"Этот контакт будет удален."</string>
<string name="menu_done" msgid="796017761764190697">"Готово"</string>
- <string name="menu_doNotSave" msgid="2174577548513895144">"Отмена"</string>
+ <string name="menu_doNotSave" msgid="2174577548513895144">"Отменить изменения"</string>
<string name="editContact_title_edit" msgid="7678695190666836093">"Изменить контакт"</string>
<string name="editContact_title_insert" msgid="9125600232291405757">"Новый контакт"</string>
<string name="menu_addItem" msgid="6106836852570790250">"Добавить информацию"</string>
@@ -93,7 +93,7 @@
<string name="pickerNewContactHeader" msgid="7750705279843568147">"Создать новый контакт"</string>
<string name="selectLabel" msgid="4255424123394910733">"Выбор ярлыка"</string>
<string name="phoneLabelsGroup" msgid="6468091477851199285">"Телефон"</string>
- <string name="emailLabelsGroup" msgid="8389931313045344406">"Адрес электронной почты"</string>
+ <string name="emailLabelsGroup" msgid="8389931313045344406">"Электронная почта"</string>
<string name="imLabelsGroup" msgid="3898238486262614027">"Чат"</string>
<string name="postalLabelsGroup" msgid="1618078212734693682">"Почтовый адрес"</string>
<string name="otherLabelsGroup" msgid="6584626043193000238">"Прочее"</string>
@@ -122,9 +122,9 @@
<string name="select_group_title" msgid="7955698611959835612">"Группы"</string>
<string name="groupEmpty" msgid="6661950109828194595">"Группа \"<xliff:g id="GROUPNAME">%s</xliff:g>\" пуста."</string>
<string name="showAllGroups" msgid="5164410117611094297">"Все контакты"</string>
- <string name="showFilterPhones" msgid="4184858075465653970">"Контакты с телефонами"</string>
+ <string name="showFilterPhones" msgid="4184858075465653970">"Только контакты с телефонными номерами"</string>
<string name="showFilterPhonesDescrip" msgid="6644443248815191067">"Отображать только контакты, содержащие номера телефонов"</string>
- <string name="headerContactGroups" msgid="2426134991932503843">"Выберите контакты для показа"</string>
+ <string name="headerContactGroups" msgid="2426134991932503843">"Выберите контакты, которые нужно отображать"</string>
<plurals name="groupDescrip">
<item quantity="other" msgid="3507881585720628389">"Контактов: <xliff:g id="COUNT">%0$d</xliff:g>"</item>
</plurals>
@@ -178,7 +178,7 @@
<string name="liveFolderFavorites" msgid="3100957542927222282">"Помеченные контакты"</string>
<string name="liveFolderPhone" msgid="3739376066610926780">"Контакты с номерами телефонов"</string>
<string name="menu_sendTextMessage" msgid="6937343460284499306">"Отправить SMS"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"Вызов: <xliff:g id="NAME">%s</xliff:g>"</string>
<string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Изменить номер и вызвать"</string>
<string name="recentCalls_addToContact" msgid="1429899535546487008">"Добавить в контакты"</string>
<string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Удалить из списка вызовов"</string>
@@ -198,8 +198,8 @@
<string name="noContactsHelpText" msgid="6788487368878712350">"У вас нет контактов."\n\n"Чтобы добавить контакты, нажмите "<font fgcolor="#ffffffff"><b>"Меню"</b></font>" и выберите:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Аккаунты"</b></font>", чтобы добавить или настроить аккаунт с контактами, которые можно будет синхронизировать с телефоном;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Новый контакт"</b></font>", чтобы создать контакт \"с нуля\";"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Импорт/Экспорт."</b></font>\n</li></string>
<string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"У вас нет контактов. (Если вы только что добавили аккаунт, синхронизация контактов может занять несколько минут.)"\n\n"Чтобы добавить контакты, нажмите "<font fgcolor="#ffffffff"><b>"Меню"</b></font>" и выберите:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Аккаунты"</b></font>", чтобы добавить или настроить аккаунт с контактами, которые можно будет синхронизировать с телефоном;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Варианты отображения"</b></font>", чтобы выбрать, какие контакты будут видны; "\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Новый контакт"</b></font>", чтобы создать контакт \"с нуля\";"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Импорт/Экспорт."</b></font>\n</li></string>
<string name="noContactsNoSimHelpText" msgid="6553845386917463292">"У вас нет контактов."\n\n"Чтобы добавить контакты, нажмите "<font fgcolor="#ffffffff"><b>"Меню"</b></font>" и выберите:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Аккаунты"</b></font>", чтобы добавить или настроить аккаунт с контактами, которые можно будет синхронизировать с телефоном;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Новый контакт"</b></font>", чтобы создать контакт \"с нуля\";"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Импорт/Экспорт."</b></font>\n</li></string>
- <string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Список контактов пуст. Если вы добавили аккаунт только что, контакты будут автоматически загружены в течение нескольких минут. "\n\n"Чтобы добавить контакты, нажмите кнопку "<font fgcolor="#ffffffff"><b>"Меню"</b></font>" и выберите:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Аккаунты"</b></font>", если вы хотите добавить контакты и другие данные из определенных аккаунтов;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Варианты отображения"</b></font>", если вы хотите выбрать определенные группы контактов для отображения в списке контактов; "\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Новый контакт"</b></font>", если вы хотите создать новый контакт самостоятельно;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Импорт/Экспорт, если вы хотите копировать контакты с/на SD или SIM-карту."</b></font>\n</li></string>
- <string name="noFavoritesHelpText" msgid="3744655776704833277">"Список избранных контактов пуст."\n\n"Чтобы добавить контакт в избранные: "\n\n" "<li>"перейдите на вкладку "<b>"Контакты"</b>";"\n</li>" "\n<li>"выберите контакт;"\n</li>" "\n<li>"нажмите звездочку возле имени контакта."\n</li></string>
+ <string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"У вас нет контактов. (Если вы только что добавили аккаунт, синхронизация контактов может занять несколько минут.)"\n\n"Чтобы добавить контакты, нажмите "<font fgcolor="#ffffffff"><b>"Меню"</b></font>" и выберите:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Аккаунты"</b></font>", чтобы добавить или настроить аккаунт с контактами, которые можно будет синхронизировать с телефоном;"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Варианты отображения"</b></font>", чтобы выбрать, какие контакты будут видны; "\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Новый контакт"</b></font>", чтобы создать контакт \"с нуля\";"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Импорт/Экспорт."</b></font>\n</li></string>
+ <string name="noFavoritesHelpText" msgid="3744655776704833277">"У вас нет избранных контактов."\n\n"Чтобы сделать контакт избранным,"\n\n" "<li>"нажмите вкладку "<b>"Контакты"</b>";"\n</li>" "\n<li>"нажмите контакт, который нужно сделать избранным;"\n</li>" "\n<li>"нажмите звездочку возле имени контакта."\n</li></string>
<string name="seclectSyncGroups_title" msgid="1235432026231325655">"Выбрать группы для синхронизации"</string>
<string name="liveFolder_all_label" msgid="5961411940473276616">"Все контакты"</string>
<string name="liveFolder_favorites_label" msgid="2674341514070517105">"Помеченные"</string>
@@ -221,13 +221,13 @@
<string name="add_more_items" msgid="7754115197545456663">"Добавить сведения"</string>
<string name="actionCall" msgid="695145166039381504">"Вызов: <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionEmail" msgid="3870371552333656807">"Эл. почта: <xliff:g id="TYPE">%s</xliff:g>"</string>
- <string name="actionText" msgid="6399049224844880108">"SMS: <xliff:g id="TYPE">%s</xliff:g>"</string>
+ <string name="actionText" msgid="6399049224844880108">"Послать SMS: <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionChat" msgid="31079429748650300">"Начать чат в <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionMap" msgid="1977955782051732775">"Адрес <xliff:g id="TYPE">%s</xliff:g> на карте"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Входящие вызовы"</string>
<string name="detailIncomingCallsGoToVoicemail" msgid="9163373178772231307">"Будут направляться в голосовую почту"</string>
<string name="detailsRingtone" msgid="4052108748982701775">"Выбрано: <xliff:g id="RINGTONE_NAME">%s</xliff:g>"</string>
- <string name="callBack" msgid="5498224409038809224">"Перезвонить"</string>
+ <string name="callBack" msgid="5498224409038809224">"Позвонить"</string>
<string name="callAgain" msgid="3197312117049874778">"Позвонить снова"</string>
<string name="returnCall" msgid="8171961914203617813">"Перезвонить"</string>
<string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g>:<xliff:g id="SECONDS">%s</xliff:g>"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Не удалось обработать vCard по неизвестной причине."</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Не удалось обработать vCard. Файл правильного формата, но не поддерживается в текущей реализации."</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"На SD-карте не найдены файлы VCard"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Не найдено правильных записей vCard."</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"Не удалось импортировать один или несколько файлов (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Неизвестная ошибка"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Выберите файл vCard"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Не удается запустить функцию экспорта: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Ошибка при экспорте: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Не удалось получить информацию из базы данных."</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Нет контактов, пригодных для экспорта. Можно выбрать неэкспортируемые данные."</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"Редактор vCard запущен некорректно"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"Не удается открыть \"<xliff:g id="FILE_NAME">%s</xliff:g>\": <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"Контакт <xliff:g id="CURRENT_NUMBER">%s</xliff:g> из <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
@@ -335,53 +335,53 @@
<string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"Удаление группы \"<xliff:g id="GROUP">%s</xliff:g>\" из синхронизации приведет к удалению любых несгруппированных контактов из синхронизации."</string>
<string name="account_phone" msgid="4025734638492419713">"Только телефон (несинхронизирован)"</string>
<string name="label_email_display_name" msgid="5537802602754309600">"Показать имя"</string>
- <string name="call_custom" msgid="7756571794763171802">"<xliff:g id="CUSTOM">%s</xliff:g>"</string>
- <string name="call_home" msgid="1990519474420545392">"Домашний тел."</string>
- <string name="call_mobile" msgid="7502236805487609178">"Мобильный тел."</string>
- <string name="call_work" msgid="5328785911463744028">"Рабочий тел."</string>
- <string name="call_fax_work" msgid="7467763592359059243">"Рабочий факс"</string>
- <string name="call_fax_home" msgid="8342175628887571876">"Домашний факс"</string>
- <string name="call_pager" msgid="9003902812293983281">"Пейджер"</string>
- <string name="call_other" msgid="5605584621798108205">"Без категории"</string>
- <string name="call_callback" msgid="1910165691349426858">"Обратный вызов"</string>
- <string name="call_car" msgid="3280537320306436445">"Тел. в машине"</string>
- <string name="call_company_main" msgid="6105120947138711257">"Офис"</string>
- <string name="call_isdn" msgid="1541590690193403411">"Номер ISDN"</string>
- <string name="call_main" msgid="6082900571803441339">"Основной телефон"</string>
- <string name="call_other_fax" msgid="7777261153532968503">"Факс"</string>
- <string name="call_radio" msgid="8296755876398357063">"Радиотелефон"</string>
- <string name="call_telex" msgid="2223170774548648114">"Телекс"</string>
- <string name="call_tty_tdd" msgid="8951266948204379604">"Телетайп"</string>
- <string name="call_work_mobile" msgid="8707874281430105394">"Рабочий мобильный"</string>
- <string name="call_work_pager" msgid="3419348514157949008">"Рабочий пейджер"</string>
- <string name="call_assistant" msgid="2141641383068514308">"<xliff:g id="ASSISTANT">%s</xliff:g>"</string>
- <string name="call_mms" msgid="6274041545876221437">"MMS-центр"</string>
- <string name="sms_custom" msgid="5932736853732191825">"SMS: <xliff:g id="CUSTOM">%s</xliff:g>"</string>
- <string name="sms_home" msgid="7524332261493162995">"SMS:домашний тел."</string>
- <string name="sms_mobile" msgid="5200107250451030769">"SMS: мобильный"</string>
- <string name="sms_work" msgid="2269624156655267740">"SMS:рабочий тел."</string>
- <string name="sms_fax_work" msgid="8028189067816907075">"SMS:рабочий факс"</string>
- <string name="sms_fax_home" msgid="9204042076306809634">"SMS: дом. факс"</string>
- <string name="sms_pager" msgid="7730404569637015192">"SMS: пейджер"</string>
- <string name="sms_other" msgid="5131921487474531617">"SMS"</string>
- <string name="sms_callback" msgid="5004824430094288752">"SMS: номер обратного вызова"</string>
- <string name="sms_car" msgid="7444227058437359641">"SMS:тел. в машине"</string>
- <string name="sms_company_main" msgid="118970873419678087">"SMS: тел. офиса"</string>
- <string name="sms_isdn" msgid="8153785037515047845">"SMS: номер ISDN"</string>
- <string name="sms_main" msgid="8621625784504541679">"SMS:основ. тел."</string>
- <string name="sms_other_fax" msgid="3930666870074006114">"SMS: факс"</string>
- <string name="sms_radio" msgid="3329166673433967820">"SMS:радиотелефон"</string>
- <string name="sms_telex" msgid="9034802430065267848">"SMS: телекс"</string>
- <string name="sms_tty_tdd" msgid="6782284969132531532">"SMS: телетайп"</string>
- <string name="sms_work_mobile" msgid="2459939960512702560">"SMS:рабочий моб."</string>
- <string name="sms_work_pager" msgid="5566924423316960597">"SMS:рабоч. пейдж."</string>
- <string name="sms_assistant" msgid="2773424339923116234">"SMS: <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+ <string name="call_custom" msgid="7756571794763171802">"Позвонить (<xliff:g id="CUSTOM">%s</xliff:g>)"</string>
+ <string name="call_home" msgid="1990519474420545392">"Позвонить (дом.)"</string>
+ <string name="call_mobile" msgid="7502236805487609178">"Позвонить (моб.)"</string>
+ <string name="call_work" msgid="5328785911463744028">"Позвонить (раб.)"</string>
+ <string name="call_fax_work" msgid="7467763592359059243">"Позвонить (раб. факс)"</string>
+ <string name="call_fax_home" msgid="8342175628887571876">"Позвонить (дом. факс)"</string>
+ <string name="call_pager" msgid="9003902812293983281">"Позвонить (пейджер)"</string>
+ <string name="call_other" msgid="5605584621798108205">"Позвонить (другое)"</string>
+ <string name="call_callback" msgid="1910165691349426858">"Вызов: номер обратного вызова"</string>
+ <string name="call_car" msgid="3280537320306436445">"Позвонить (автомоб.)"</string>
+ <string name="call_company_main" msgid="6105120947138711257">"Позвонить (раб., осн.)"</string>
+ <string name="call_isdn" msgid="1541590690193403411">"Вызов: ISDN"</string>
+ <string name="call_main" msgid="6082900571803441339">"Вызов: основной"</string>
+ <string name="call_other_fax" msgid="7777261153532968503">"Вызов: другой факс"</string>
+ <string name="call_radio" msgid="8296755876398357063">"Позвонить (радиотел.)"</string>
+ <string name="call_telex" msgid="2223170774548648114">"Вызов: телекс"</string>
+ <string name="call_tty_tdd" msgid="8951266948204379604">"Вызов: телетайп"</string>
+ <string name="call_work_mobile" msgid="8707874281430105394">"Вызов: рабочий мобильный"</string>
+ <string name="call_work_pager" msgid="3419348514157949008">"Вызов: рабочий пейджер"</string>
+ <string name="call_assistant" msgid="2141641383068514308">"Вызов: <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+ <string name="call_mms" msgid="6274041545876221437">"Позвонить (MMS)"</string>
+ <string name="sms_custom" msgid="5932736853732191825">"SMS (<xliff:g id="CUSTOM">%s</xliff:g>)"</string>
+ <string name="sms_home" msgid="7524332261493162995">"SMS (дом.)"</string>
+ <string name="sms_mobile" msgid="5200107250451030769">"SMS (моб.)"</string>
+ <string name="sms_work" msgid="2269624156655267740">"SMS (дом.)"</string>
+ <string name="sms_fax_work" msgid="8028189067816907075">"SMS (раб. факс)"</string>
+ <string name="sms_fax_home" msgid="9204042076306809634">"SMS (дом. факс)"</string>
+ <string name="sms_pager" msgid="7730404569637015192">"SMS (пейджер)"</string>
+ <string name="sms_other" msgid="5131921487474531617">"SMS (другое)"</string>
+ <string name="sms_callback" msgid="5004824430094288752">"Отправить SMS на номер обратного вызова"</string>
+ <string name="sms_car" msgid="7444227058437359641">"SMS (автомоб.)"</string>
+ <string name="sms_company_main" msgid="118970873419678087">"SMS (раб., осн.)"</string>
+ <string name="sms_isdn" msgid="8153785037515047845">"Отправить SMS на номер ISDN"</string>
+ <string name="sms_main" msgid="8621625784504541679">"Отправить SMS на основной номер"</string>
+ <string name="sms_other_fax" msgid="3930666870074006114">"Отправить текстовое сообщение на другой факс"</string>
+ <string name="sms_radio" msgid="3329166673433967820">"SMS (радиотел.)"</string>
+ <string name="sms_telex" msgid="9034802430065267848">"Отправить SMS на телекс"</string>
+ <string name="sms_tty_tdd" msgid="6782284969132531532">"Отправить сообщение на телетайп"</string>
+ <string name="sms_work_mobile" msgid="2459939960512702560">"Отправить SMS на рабочий мобильный"</string>
+ <string name="sms_work_pager" msgid="5566924423316960597">"Отправить сообщение на рабочий пейджер"</string>
+ <string name="sms_assistant" msgid="2773424339923116234">"Отправить текстовое сообщение на номер <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
<string name="sms_mms" msgid="4069352461380762677">"MMS"</string>
- <string name="email_home" msgid="8573740658148184279">"Личная эл. почта"</string>
- <string name="email_mobile" msgid="2042889209787989814">"Моб. эл. почта"</string>
- <string name="email_work" msgid="2807430017302722689">"Рабочая эл.почта"</string>
- <string name="email_other" msgid="8093933498541795832">"Эл. почта"</string>
- <string name="email_custom" msgid="7548003991586214105">"<xliff:g id="CUSTOM">%s</xliff:g>"</string>
+ <string name="email_home" msgid="8573740658148184279">"Эл. почта (дом.)"</string>
+ <string name="email_mobile" msgid="2042889209787989814">"Эл. почта (моб.)"</string>
+ <string name="email_work" msgid="2807430017302722689">"Эл. почта (раб.)"</string>
+ <string name="email_other" msgid="8093933498541795832">"Эл. почта (другое)"</string>
+ <string name="email_custom" msgid="7548003991586214105">"Эл. почта (<xliff:g id="CUSTOM">%s</xliff:g>)"</string>
<string name="email" msgid="5668400997660065897">"Эл. почта"</string>
<string name="map_home" msgid="1243547733423343982">"Просмотреть домашний адрес"</string>
<string name="map_work" msgid="1360474076921878088">"Просмотреть рабочий адрес"</string>
@@ -408,9 +408,9 @@
<string name="name_prefix" msgid="59756378548779822">"Префикс имени"</string>
<string name="name_middle" msgid="8467433655992690326">"Отчество"</string>
<string name="name_suffix" msgid="3855278445375651441">"Суффикс имени"</string>
- <string name="name_phonetic_given" msgid="6853570431394449191">"Имя (транскрипция)"</string>
- <string name="name_phonetic_middle" msgid="8643721493320405200">"Отчество (транскрипция)"</string>
- <string name="name_phonetic_family" msgid="462095502140180305">"Фамилия (транскрипция)"</string>
+ <string name="name_phonetic_given" msgid="6853570431394449191">"Имя (фонетическая запись)"</string>
+ <string name="name_phonetic_middle" msgid="8643721493320405200">"Отчество (фонетическая запись)"</string>
+ <string name="name_phonetic_family" msgid="462095502140180305">"Фамилия (фонетическая запись)"</string>
<string name="split_label" msgid="8262112659919449087">"Разделить"</string>
<string name="split_explanation" msgid="1824739956426973592">"Сделать эти данные отдельным контактом."</string>
<string name="account_name_format" msgid="4421123930035299208">"Из аккаунта <xliff:g id="SOURCE">%1$s</xliff:g>: <xliff:g id="ACCOUNT">%2$s</xliff:g>"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index c42fe16..dcb38a8 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -51,7 +51,7 @@
<string name="contactsSplitMessage" msgid="5253490235863170269">"Kontakterna har delats upp"</string>
<string name="splitConfirmation_title" msgid="6716467920283502570">"Dela upp kontakt"</string>
<string name="splitConfirmation" msgid="1150797297503944823">"Vill du dela upp den här kontakten i flera kontakter, en för varje uppsättning kontaktinformation som kombinerats i den?"</string>
- <string name="menu_joinAggregate" msgid="5027981918265667970">"Slå ihop"</string>
+ <string name="menu_joinAggregate" msgid="5027981918265667970">"Gå med"</string>
<string name="menu_showSources" msgid="885215611438295455">"Visa källor"</string>
<string name="menu_hideSources" msgid="71367585820555477">"Dölj källor"</string>
<string name="titleJoinAggregate" msgid="6970566008563147202">"Anslut kontakt"</string>
@@ -196,9 +196,9 @@
<string name="simContacts_title" msgid="27341688347689769">"Kontakter från SIM-kort"</string>
<string name="contactsSyncPlug" msgid="7248276704957313698"><font fgcolor="#ffffffff">"Synka dina Google-kontakter!"</font>" "\n"När du har synkat med telefonen kan du använda dina kontakter var du än är."</string>
<string name="noContactsHelpText" msgid="6788487368878712350">"Det finns inga kontakter att visa."\n\n"Om du vill lägga till kontakter trycker du på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>" och sedan på:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konton"</b></font>" om du vill lägga till eller konfigurera ett konto med kontakter som kan synkroniseras till telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" om du vill skapa en ny kontakt från grunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importera/exportera"</b></font>\n</li></string>
- <string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"Det finns inga kontakter att visa (om du nyss har lagt till ett konto kan det ta några minuter att synkronisera kontakter)."\n\n"Om du vill lägga till kontakter trycker du på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" och sedan på:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konton"</b></font>" om du vill lägga till eller konfigurera ett konto med kontakter som kan synkroniseras till telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativ"</b></font>" om du vill ändra vilka kontakter som är synliga"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" om du vill skapa en ny kontakt från grunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importera/exportera"</b></font>\n</li></string>
- <string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Det finns inga kontakter att visa."\n\n"Om du vill lägga till kontakter trycker du på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" och sedan på:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konton"</b></font>" om du vill lägga till eller konfigurera ett konto med kontakter som kan synkroniseras till telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" om du vill skapa en ny kontakt från grunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importera/exportera"</b></font>\n</li></string>
- <string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Det finns inga kontakter att visa (om du nyss har lagt till ett konto kan det ta några minuter att synkronisera kontakter)."\n\n"Om du vill lägga till kontakter trycker du på "<font fgcolor="#ffffffff"><b>"Menu"</b></font>" och sedan på:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konton"</b></font>" om du vill lägga till eller konfigurera ett konto med kontakter som kan synkroniseras till telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativ"</b></font>" om du vill ändra vilka kontakter som är synliga"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" om du vill skapa en ny kontakt från grunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importera/exportera"</b></font>\n</li></string>
+ <string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"Det finns inga kontakter att visa (om du nyss har lagt till ett konto kan det ta några minuter att synkronisera kontakter)."\n\n"Om du vill lägga till kontakter trycker du på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>" och sedan på:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konton"</b></font>" om du vill lägga till eller konfigurera ett konto med kontakter som kan synkroniseras till telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativ"</b></font>" om du vill ändra vilka kontakter som är synliga"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" om du vill skapa en ny kontakt från grunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importera/exportera"</b></font>\n</li></string>
+ <string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Det finns inga kontakter att visa."\n\n"Om du vill lägga till kontakter trycker du på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>" och sedan på:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konton"</b></font>" om du vill lägga till eller konfigurera ett konto med kontakter som kan synkroniseras till telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" om du vill skapa en ny kontakt från grunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importera/exportera"</b></font>\n</li></string>
+ <string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Det finns inga kontakter att visa (om du nyss har lagt till ett konto kan det ta några minuter att synkronisera kontakter)."\n\n"Om du vill lägga till kontakter trycker du på "<font fgcolor="#ffffffff"><b>"Meny"</b></font>" och sedan på:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Konton"</b></font>" om du vill lägga till eller konfigurera ett konto med kontakter som kan synkroniseras till telefonen"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Visningsalternativ"</b></font>" om du vill ändra vilka kontakter som är synliga"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Ny kontakt"</b></font>" om du vill skapa en ny kontakt från grunden"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Importera/exportera"</b></font>\n</li></string>
<string name="noFavoritesHelpText" msgid="3744655776704833277">"Du har inte några favoriter."\n\n"Så här lägger du till kontakter i favoritlistan:"\n\n" "<li>"Tryck på fliken "<b>"Kontakter"</b>\n</li>" "\n<li>"Tryck på den kontakt du vill lägga till i favoriterna"\n</li>" "\n<li>"Tryck på stjärnan bredvid kontaktens namn"\n</li></string>
<string name="seclectSyncGroups_title" msgid="1235432026231325655">"Välj grupper att synka"</string>
<string name="liveFolder_all_label" msgid="5961411940473276616">"Alla kontakter"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Det gick inte att analysera vCard av okänd anledning"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Det gick inte att analysera vCard trots att formatet verkar vara giltigt. Den aktuella implementeringen stöder inte det."</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"Ingen vCard-fil hittades på SD-kortet"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Det finns ingen vCard-post i den valda filen"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"En eller flera filer kunde inte importeras: (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Okänt fel"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"Välj vCard-fil"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Det gick inte att starta exportverktyget: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Ett fel uppstod under export: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Det gick inte att hämta databasinformation"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Det finns ingen kontakt som kan exporteras. Du kan välja data som inte kan exporteras"</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"vCard-kompositören är inte korrekt initierad"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"Det gick inte att öppna <xliff:g id="FILE_NAME">%s</xliff:g>: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> av <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakter"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index df91cdc..dff342f 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -34,14 +34,14 @@
<string name="menu_search" msgid="9147752853603483719">"Ara"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Yeni kişi"</string>
<string name="menu_viewContact" msgid="2795575601596468581">"Kişiyi görüntüle"</string>
- <string name="menu_callNumber" msgid="5142851348489387516">"Çağrı yap (<xliff:g id="NAME">%s</xliff:g>)"</string>
+ <string name="menu_callNumber" msgid="5142851348489387516">"<xliff:g id="NAME">%s</xliff:g> adlı kişiyi ara"</string>
<string name="menu_addStar" msgid="2908478235715404876">"Sık kullanılanlara ekle"</string>
<string name="menu_removeStar" msgid="5844227078364227030">"Sık kullanılanlardan kaldır"</string>
<string name="menu_showBarcode" msgid="309973637178814132">"Barkodu göster"</string>
<string name="menu_editContact" msgid="3452858480713561396">"Kişiyi düzenle"</string>
<string name="menu_deleteContact" msgid="1916555454274101750">"Kişiyi sil"</string>
- <string name="menu_call" msgid="3992595586042260618">"Çağrı yap"</string>
- <string name="menu_sendSMS" msgid="5535886767547006515">"Kısa mesaj gönder"</string>
+ <string name="menu_call" msgid="3992595586042260618">"Çağrı: (kişi)"</string>
+ <string name="menu_sendSMS" msgid="5535886767547006515">"Şu kişiye SMS veya MMS gönder:"</string>
<string name="menu_sendEmail" msgid="7293508859242926187">"E-posta gönder"</string>
<string name="menu_viewAddress" msgid="1814744325763202024">"Adresi haritada göster"</string>
<string name="menu_makeDefaultNumber" msgid="4838759253316649534">"Varsayılan numara yap"</string>
@@ -51,16 +51,16 @@
<string name="contactsSplitMessage" msgid="5253490235863170269">"Kişi ayrıldı"</string>
<string name="splitConfirmation_title" msgid="6716467920283502570">"Kişiyi Ayır"</string>
<string name="splitConfirmation" msgid="1150797297503944823">"Bu tek kişiyi birden fazla kişiye ayırmak istediğinizden emin misiniz? Bu kişiye eklenen kişi bilgileri setinin her biri için bir kişi oluşturulsun mu?"</string>
- <string name="menu_joinAggregate" msgid="5027981918265667970">"Birleştir"</string>
+ <string name="menu_joinAggregate" msgid="5027981918265667970">"Katıl"</string>
<string name="menu_showSources" msgid="885215611438295455">"Kaynakları göster"</string>
<string name="menu_hideSources" msgid="71367585820555477">"Kaynakları gizle"</string>
- <string name="titleJoinAggregate" msgid="6970566008563147202">"Kişi birleştir"</string>
- <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Kişileri birleştir"</string>
- <string name="blurbJoinContactDataWith" msgid="995870557595050304">"<xliff:g id="NAME">%s</xliff:g> ile birleştirmek istediğiniz kişiyi seçin."</string>
+ <string name="titleJoinAggregate" msgid="6970566008563147202">"Kişilere katıl"</string>
+ <string name="titleJoinContactDataWith" msgid="7684875775798635354">"Kişiler\'e katıl"</string>
+ <string name="blurbJoinContactDataWith" msgid="995870557595050304">"<xliff:g id="NAME">%s</xliff:g> ile katılmak istediğiniz kişiyi seçin."</string>
<string name="showAllContactsJoinItem" msgid="2189695051430392383">"Tüm kişileri göster"</string>
<string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Önerilen kişiler"</string>
<string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Tüm kişiler"</string>
- <string name="contactsJoinedMessage" msgid="7208148163607047389">"Kişiler birleştirildi"</string>
+ <string name="contactsJoinedMessage" msgid="7208148163607047389">"Katılan kişiler"</string>
<string name="menu_contactOptions" msgid="1957061455705020617">"Seçenekler"</string>
<string name="contactOptionsTitle" msgid="8259347644090700915">"Seçenekler"</string>
<string name="deleteConfirmation_title" msgid="6394309508930335204">"Sil"</string>
@@ -110,7 +110,7 @@
<string name="syncGroupPreference" msgid="9028361137161162861">"Senk. grupları düzenle"</string>
<string name="importFromSim" msgid="8383900146531125319">"Kişileri içe aktar"</string>
<string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Çağrıları doğrudan sesli mesaja gönder"</string>
- <string name="send_to_voicemail_view" msgid="9124400414311776864">"Çağrılar doğrudan sesli mesaja gönderildi."</string>
+ <string name="send_to_voicemail_view" msgid="9124400414311776864">"Aramalar doğrudan sesli mesaja gönderildi."</string>
<string name="default_ringtone" msgid="9099988849649827972">"Varsayılan"</string>
<string name="addPicture" msgid="1594679312161537678">"Simge ekle"</string>
<string name="changePicture" msgid="2943329047610967714">"Simgeyi değiştir"</string>
@@ -178,8 +178,8 @@
<string name="liveFolderFavorites" msgid="3100957542927222282">"Yıldızlı kişiler"</string>
<string name="liveFolderPhone" msgid="3739376066610926780">"Telefon numarası olan kişiler"</string>
<string name="menu_sendTextMessage" msgid="6937343460284499306">"Kısa mesaj gönder"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Çağrı yap (<xliff:g id="NAME">%s</xliff:g>)"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Önce numarayı düzenle"</string>
+ <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> adlı kişiyi ara"</string>
+ <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Aramadan önce numarayı düzenle"</string>
<string name="recentCalls_addToContact" msgid="1429899535546487008">"Kişilere ekle"</string>
<string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Çağrı kaydından kaldır"</string>
<string name="recentCalls_deleteAll" msgid="6352364392762163704">"Çağrı kaydını temizle"</string>
@@ -195,7 +195,7 @@
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM karttan yükleniyor..."</string>
<string name="simContacts_title" msgid="27341688347689769">"SIM kart kişileri"</string>
<string name="contactsSyncPlug" msgid="7248276704957313698"><font fgcolor="#ffffffff">"Google kişilerinizi senkronize edin!"</font>" "\n"Telefonunuzu senkronize ettikten sonra, kişilerinize gittiğiniz her yerden ulaşabilirsiniz."</string>
- <string name="noContactsHelpText" msgid="6788487368878712350">"Görüntülenecek kişiniz yok."\n\n"Kişi eklemek için, "<font fgcolor="#ffffffff"><b>"Menü"</b></font>"\'ye basın ve şunlara dokunun:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Hesaplar"</b></font>" (telefon ile senkronize edebileceğiniz kişilere sahip olan bir hesap eklemek veya yapılandırmak için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Yeni kişi"</b></font>" (en baştan yeni bir kişi eklemek için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"İçe/Dışa Aktar"</b></font>\n</li></string>
+ <string name="noContactsHelpText" msgid="6788487368878712350">"Görüntülenecek hiçbir kişiniz yok."\n\n"Kişi eklemek için, "<font fgcolor="#ffffffff"><b>"Menü"</b></font>"\'ye basın ve şunlara dokunun:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Hesaplar"</b></font>" (telefon ile senkronize edebileceğiniz kişilere sahip olan bir hesap eklemek veya yapılandırmak için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Yeni kişi"</b></font>" (en baştan yeni bir kişi eklemek için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"İçe/Dışa Aktar"</b></font>\n</li></string>
<string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"Görüntülenecek hiçbir kişiniz yok. (Kısa süre önce bir hesap eklediyseniz, kişileri senkronize etmek birkaç dakika sürebilir.)"\n\n"Kişi eklemek için, "<font fgcolor="#ffffffff"><b>"Menü"</b></font>"\'ye basın ve şunlara dokunun:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Hesaplar"</b></font>" (telefon ile senkronize edebileceğiniz kişilere sahip olan bir hesap eklemek veya yapılandırmak için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Seçenekleri görüntüle"</b></font>" (görülebilir kişileri değiştirmek için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Yeni kişi"</b></font>" (en baştan yeni bir kişi oluşturmak için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"İçe/Dışa Aktar"</b></font>\n</li></string>
<string name="noContactsNoSimHelpText" msgid="6553845386917463292">"Görüntülenecek hiçbir kişiniz yok."\n\n"Kişi eklemek için, "<font fgcolor="#ffffffff"><b>"Menü"</b></font>"\'ye basın ve şunlara dokunun:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Hesaplar"</b></font>" (telefon ile senkronize edebileceğiniz kişilere sahip olan bir hesap eklemek veya yapılandırmak için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Yeni kişi"</b></font>" (en baştan yeni bir kişi eklemek için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"İçe/Dışa Aktar"</b></font>\n</li></string>
<string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"Görüntülenecek hiçbir kişiniz yok. (Kısa süre önce bir hesap eklediyseniz, kişileri senkronize etmek birkaç dakika sürebilir.)"\n\n"Kişi eklemek için, "<font fgcolor="#ffffffff"><b>"Menü"</b></font>"\'ye basın ve şunlara dokunun:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Hesaplar"</b></font>" (telefon ile senkronize edebileceğiniz kişilere sahip olan bir hesap eklemek veya yapılandırmak için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Seçenekleri görüntüle"</b></font>" (görülebilir kişileri değiştirmek için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"Yeni kişi"</b></font>" (en baştan yeni bir kişi oluşturmak için)"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"İçe/Dışa Aktar"</b></font>\n</li></string>
@@ -219,7 +219,7 @@
<string name="header_actions" msgid="229583643365836321">"İşlemler"</string>
<string name="ringtone_spinner" msgid="7317823545379736528">"Zil sesi: <xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items" msgid="7754115197545456663">"Daha fazla öğe ekle"</string>
- <string name="actionCall" msgid="695145166039381504">"Çağrı yap (<xliff:g id="TYPE">%s</xliff:g>)"</string>
+ <string name="actionCall" msgid="695145166039381504">"Şunu ara: <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionEmail" msgid="3870371552333656807">"E-posta gönder: <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionText" msgid="6399049224844880108">"SMS gönder: <xliff:g id="TYPE">%s</xliff:g>"</string>
<string name="actionChat" msgid="31079429748650300">"<xliff:g id="TYPE">%s</xliff:g> kullanarak sohbet et"</string>
@@ -227,8 +227,8 @@
<string name="actionIncomingCall" msgid="6028930669817038600">"Gelen çağrılar"</string>
<string name="detailIncomingCallsGoToVoicemail" msgid="9163373178772231307">"Doğrudan sesli mesaja gönderilecek"</string>
<string name="detailsRingtone" msgid="4052108748982701775">"<xliff:g id="RINGTONE_NAME">%s</xliff:g> olarak ayarla"</string>
- <string name="callBack" msgid="5498224409038809224">"Geri ara"</string>
- <string name="callAgain" msgid="3197312117049874778">"Tekrar çağrı yap"</string>
+ <string name="callBack" msgid="5498224409038809224">"Tekrar ara"</string>
+ <string name="callAgain" msgid="3197312117049874778">"Tekrar ara"</string>
<string name="returnCall" msgid="8171961914203617813">"Geri ara"</string>
<string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> dak <xliff:g id="SECONDS">%s</xliff:g> sn"</string>
<string name="favoritesFrquentSeparator" msgid="5007070838253932139">"Sık aranan"</string>
@@ -253,7 +253,7 @@
<string name="select_import_type_title" msgid="2443742794103731022">"Kişilerin nereden içe aktarılmasını istiyorsunuz?"</string>
<string name="import_from_sim" msgid="3859272228033941659">"SIM karttan içe aktar"</string>
<string name="import_from_sdcard" msgid="8550360976693202816">"SD karttan içe aktar"</string>
- <string name="export_to_sdcard" msgid="2597105442616166277">"SD karta dışa aktar"</string>
+ <string name="export_to_sdcard" msgid="2597105442616166277">"SD kart için dışa aktar"</string>
<string name="import_one_vcard_string" msgid="9059163467020328433">"Bir vCard dosyasını içe aktar"</string>
<string name="import_multiple_vcard_string" msgid="3810226492811062392">"Birden fazla vCard dosyasını içe aktar"</string>
<string name="import_all_vcard_string" msgid="5518136113853448474">"Tüm vCard dosyalarını içe aktar"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"Beklenmedik bir nedenden dolayı vCard ayrıştırılamadı"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"Geçerli biçimde görünmesine rağmen vCard ayrıştırılamadı, çünkü şu anki uygulama vCard\'ı desteklemiyor"</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"SD kartta hiçbir vCard dosyası bulunamadı"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"Seçiminiz için geçerli vCard girdisi bulunamadı"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"İçe aktarılamayan bir veya birden fazla dosya (%s)."</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"Bilinmeyen hata"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"vCard dosyasını seç"</string>
@@ -275,13 +274,13 @@
<string name="importing_vcard_message" msgid="4046655384673753503">"vCard verileri içe aktarılıyor"</string>
<string name="reading_vcard_failed_title" msgid="4923008144735294994">"vCard verileri okunamadı"</string>
<string name="reading_vcard_failed_message" msgid="5684089173948287107">"vCard okunamadı."\n"Hata nedeni: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
- <string name="reading_vcard_contacts" msgid="3066834102042012868">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> / <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kişi"</string>
+ <string name="reading_vcard_contacts" msgid="3066834102042012868">"Toplam <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kişiden <xliff:g id="CURRENT_NUMBER">%s</xliff:g>. kişi"</string>
<string name="reading_vcard_files" msgid="34180143726972661">"toplam <xliff:g id="TOTAL_NUMBER">%s</xliff:g> dosyadan <xliff:g id="CURRENT_NUMBER">%s</xliff:g>. dosya"</string>
<string name="export_all_contacts" msgid="2873892623335194071">"Tüm kişiler"</string>
<string name="export_phone_local_only" msgid="3380497955409896761">"Yerel olarak depolanan kişiler"</string>
<string name="export_contact_list" msgid="3165097742175874384">"Kişileri dışa aktar"</string>
<string name="confirm_export_title" msgid="7648747763127442983">"Dışa aktarımı onayla"</string>
- <string name="confirm_export_message" msgid="3875683519257829750">"Kişi listenizi \"<xliff:g id="VCARD_FILENAME">%s</xliff:g>\" dosyasına dışa aktarmak istediğinizden emin misiniz?"</string>
+ <string name="confirm_export_message" msgid="3875683519257829750">"Kişi listenizi \"<xliff:g id="VCARD_FILENAME">%s</xliff:g>\" için dışa aktarmak istediğinizden emin misiniz?"</string>
<string name="exporting_contact_failed_title" msgid="585823094820602526">"Kişi verileri dışa aktarılamadı"</string>
<string name="exporting_contact_failed_message" msgid="4151348002470298092">"Kişi verileri dışa aktarılamadı."\n"Hata nedeni: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_no_exportable_contact" msgid="4919714086648344495">"Dışa aktarılabilen hiçbir kişi yok"</string>
@@ -293,15 +292,16 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"Dışa aktarıcı başlatılamadı: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"Dışa aktarma sırasında hata oluştu: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"Veri tabanı bilgileri alınamadı"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"Dışa aktarılabilir kişi yok. Dışa aktarılamayan veriler seçmiş olabilirsiniz"</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"vCard oluşturucu doğru bir şekilde başlatılmamış"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"\"<xliff:g id="FILE_NAME">%s</xliff:g>\" dosyası açılamadı: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
- <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> / <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kişi"</string>
+ <string name="exporting_contact_list_progress" msgid="560522409559101193">"Toplam <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kişiden <xliff:g id="CURRENT_NUMBER">%s</xliff:g> kişi"</string>
<string name="search_settings_description" msgid="2675223022992445813">"Kişilerinizin adları"</string>
<string name="add_2sec_pause" msgid="9214012315201040129">"2 saniyelik duraklama ekle"</string>
<string name="add_wait" msgid="3360818652790319634">"Bekleme ekle"</string>
<string name="dial_button_label" msgid="7637725632722605863">"Çevir"</string>
- <string name="call_disambig_title" msgid="1911302597959335178">"Şunu kullanarak çağrı yap"</string>
+ <string name="call_disambig_title" msgid="1911302597959335178">"Şu uygulamayı kullanarak ara"</string>
<string name="sms_disambig_title" msgid="4675399294513152364">"Şunu kullanarak SMS gönder:"</string>
<string name="make_primary" msgid="5829291915305113983">"Bu tercihi anımsa"</string>
<string name="quickcontact_missing_app" msgid="4600366393134289038">"Bu işlemi gerçekleştirecek bir uygulama bulunamadı"</string>
@@ -311,7 +311,7 @@
<string name="menu_import_export" msgid="3765725645491577190">"İçe/Dışa Aktar"</string>
<string name="dialog_import_export" msgid="4771877268244096596">"Kişileri içe/dışa aktar"</string>
<string name="menu_share" msgid="943789700636542260">"Paylaş"</string>
- <string name="share_via" msgid="563121028023030093">"Şunu kullanarak kişi paylaş:"</string>
+ <string name="share_via" msgid="563121028023030093">"Şu uygulamayı kullanarak kişi paylaş:"</string>
<string name="share_error" msgid="4374508848981697170">"Bu kişi paylaşılamıyor."</string>
<string name="nameLabelsGroup" msgid="2034640839640477827">"Ad"</string>
<string name="nicknameLabelsGroup" msgid="2891682101053358010">"Takma ad"</string>
@@ -335,27 +335,27 @@
<string name="display_warn_remove_ungrouped" msgid="2314043155909167610">"\'<xliff:g id="GROUP">%s</xliff:g>\' grubunu senkronizasyondan kaldırmak, gruplandırılmamış tüm kişileri de senkronizasyondan kaldırır."</string>
<string name="account_phone" msgid="4025734638492419713">"Yalnızca telefon (senkronize edilmemiş)"</string>
<string name="label_email_display_name" msgid="5537802602754309600">"Adı görüntüle"</string>
- <string name="call_custom" msgid="7756571794763171802">"Çağrı yap (<xliff:g id="CUSTOM">%s</xliff:g>)"</string>
- <string name="call_home" msgid="1990519474420545392">"Çağrı yap (ev)"</string>
- <string name="call_mobile" msgid="7502236805487609178">"Çağrı yap (mobil)"</string>
- <string name="call_work" msgid="5328785911463744028">"Çağrı yap (iş)"</string>
- <string name="call_fax_work" msgid="7467763592359059243">"Çağrı yap (iş faksı)"</string>
- <string name="call_fax_home" msgid="8342175628887571876">"Çağrı yap (ev faksı)"</string>
- <string name="call_pager" msgid="9003902812293983281">"Çağrı yap (çağrı cihazı)"</string>
- <string name="call_other" msgid="5605584621798108205">"Çağrı yap (diğer)"</string>
- <string name="call_callback" msgid="1910165691349426858">"Çağrı yap (geri arama)"</string>
- <string name="call_car" msgid="3280537320306436445">"Çağrı yap (araç)"</string>
- <string name="call_company_main" msgid="6105120947138711257">"Çağrı yap (şirket ana hattı)"</string>
- <string name="call_isdn" msgid="1541590690193403411">"Çağrı yap (ISDN)"</string>
- <string name="call_main" msgid="6082900571803441339">"Çağrı yap (ana hat)"</string>
- <string name="call_other_fax" msgid="7777261153532968503">"Çağrı yap (diğer faks)"</string>
- <string name="call_radio" msgid="8296755876398357063">"Çağrı yap (telsiz)"</string>
- <string name="call_telex" msgid="2223170774548648114">"Çağrı yap (teleks)"</string>
- <string name="call_tty_tdd" msgid="8951266948204379604">"Çağrı yap (TTY/TDD)"</string>
- <string name="call_work_mobile" msgid="8707874281430105394">"Çağrı yap (iş cep telefonu)"</string>
- <string name="call_work_pager" msgid="3419348514157949008">"Çağrı yap (iş çağrı cihazı)"</string>
- <string name="call_assistant" msgid="2141641383068514308">"Çağrı yap (<xliff:g id="ASSISTANT">%s</xliff:g>)"</string>
- <string name="call_mms" msgid="6274041545876221437">"Çağrı yap (MMS)"</string>
+ <string name="call_custom" msgid="7756571794763171802">"Ara (<xliff:g id="CUSTOM">%s</xliff:g>)"</string>
+ <string name="call_home" msgid="1990519474420545392">"Evi ara"</string>
+ <string name="call_mobile" msgid="7502236805487609178">"Mobil cihazı ara"</string>
+ <string name="call_work" msgid="5328785911463744028">"Ara (iş)"</string>
+ <string name="call_fax_work" msgid="7467763592359059243">"Ara (iş faksı)"</string>
+ <string name="call_fax_home" msgid="8342175628887571876">"Ara (ev faksı)"</string>
+ <string name="call_pager" msgid="9003902812293983281">"Çağrı cihazını ara"</string>
+ <string name="call_other" msgid="5605584621798108205">"Ara (diğer)"</string>
+ <string name="call_callback" msgid="1910165691349426858">"Çağrı: (geri arama)"</string>
+ <string name="call_car" msgid="3280537320306436445">"Ara (araç)"</string>
+ <string name="call_company_main" msgid="6105120947138711257">"Ara (şirket merkezi)"</string>
+ <string name="call_isdn" msgid="1541590690193403411">"Çağrı: (ISDN)"</string>
+ <string name="call_main" msgid="6082900571803441339">"Çağrı: (ana hat)"</string>
+ <string name="call_other_fax" msgid="7777261153532968503">"Çağrı: (diğer faks)"</string>
+ <string name="call_radio" msgid="8296755876398357063">"Ara (telsiz)"</string>
+ <string name="call_telex" msgid="2223170774548648114">"Çağrı: (teleks)"</string>
+ <string name="call_tty_tdd" msgid="8951266948204379604">"Çağrı: TTY/TDD"</string>
+ <string name="call_work_mobile" msgid="8707874281430105394">"Çağrı: (iş yeri cep telefonu)"</string>
+ <string name="call_work_pager" msgid="3419348514157949008">"Çağrı: (iş yeri çağrı cihazı)"</string>
+ <string name="call_assistant" msgid="2141641383068514308">"Çağrı: <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+ <string name="call_mms" msgid="6274041545876221437">"Ara (MMS)"</string>
<string name="sms_custom" msgid="5932736853732191825">"Metin <xliff:g id="CUSTOM">%s</xliff:g>"</string>
<string name="sms_home" msgid="7524332261493162995">"SMS gönder (ev)"</string>
<string name="sms_mobile" msgid="5200107250451030769">"SMS gönder (mobil)"</string>
@@ -403,12 +403,12 @@
<string name="postal_region" msgid="6045263193478437672">"Eyalet"</string>
<string name="postal_postcode" msgid="572136414136673751">"Alan kodu"</string>
<string name="postal_country" msgid="7638264508416368690">"Ülke"</string>
- <string name="name_given" msgid="1687286314106019813">"Adı"</string>
+ <string name="name_given" msgid="1687286314106019813">"Vaftiz adı"</string>
<string name="name_family" msgid="3416695586119999058">"Soyadı"</string>
<string name="name_prefix" msgid="59756378548779822">"Ad öneki"</string>
<string name="name_middle" msgid="8467433655992690326">"İkinci ad"</string>
<string name="name_suffix" msgid="3855278445375651441">"Ad soneki"</string>
- <string name="name_phonetic_given" msgid="6853570431394449191">"Fonetik adı"</string>
+ <string name="name_phonetic_given" msgid="6853570431394449191">"Fonetik vaftiz adı"</string>
<string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetik ikinci ad"</string>
<string name="name_phonetic_family" msgid="462095502140180305">"Fonetik soyadı"</string>
<string name="split_label" msgid="8262112659919449087">"Ayır"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 6ad8973..bc0801f 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -16,7 +16,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="contactsList" msgid="8661624236494819731">"联系人"</string>
- <string name="launcherDialer" msgid="8636288196618486553">"拨号"</string>
+ <string name="launcherDialer" msgid="8636288196618486553">"手机"</string>
<string name="shortcutContact" msgid="749243779392912958">"联系人"</string>
<string name="shortcutDialContact" msgid="746622101599186779">"直接拨打"</string>
<string name="shortcutMessageContact" msgid="2460337253595976198">"直接发送短信"</string>
@@ -69,7 +69,7 @@
<string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"删除该联系人将会删除多个帐户中的信息。"</string>
<string name="deleteConfirmation" msgid="811706994761610640">"将会删除此联系人。"</string>
<string name="menu_done" msgid="796017761764190697">"完成"</string>
- <string name="menu_doNotSave" msgid="2174577548513895144">"取消"</string>
+ <string name="menu_doNotSave" msgid="2174577548513895144">"还原"</string>
<string name="editContact_title_edit" msgid="7678695190666836093">"编辑联系人"</string>
<string name="editContact_title_insert" msgid="9125600232291405757">"新建联系人"</string>
<string name="menu_addItem" msgid="6106836852570790250">"详细信息"</string>
@@ -92,7 +92,7 @@
<string name="invalidContactMessage" msgid="5816991830260044593">"联系人不存在。"</string>
<string name="pickerNewContactHeader" msgid="7750705279843568147">"新建联系人"</string>
<string name="selectLabel" msgid="4255424123394910733">"选择标签"</string>
- <string name="phoneLabelsGroup" msgid="6468091477851199285">"电话"</string>
+ <string name="phoneLabelsGroup" msgid="6468091477851199285">"手机"</string>
<string name="emailLabelsGroup" msgid="8389931313045344406">"电子邮件"</string>
<string name="imLabelsGroup" msgid="3898238486262614027">"即时消息"</string>
<string name="postalLabelsGroup" msgid="1618078212734693682">"邮政地址"</string>
@@ -172,7 +172,7 @@
<string name="socialStreamIconLabel" msgid="4367712449555075376">"社交"</string>
<string name="contactsIconLabel" msgid="7666609097606552806">"联系人"</string>
<string name="contactsFavoritesLabel" msgid="8417039765586853670">"收藏"</string>
- <string name="dialerIconLabel" msgid="6500826552823403796">"拨号"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"手机"</string>
<string name="recentCallsIconLabel" msgid="1419116422359067949">"通话记录"</string>
<string name="liveFolderAll" msgid="4789010460767506206">"所有联系人"</string>
<string name="liveFolderFavorites" msgid="3100957542927222282">"已加星标的联系人"</string>
@@ -199,11 +199,11 @@
<string name="noContactsHelpTextWithSync" msgid="3734101165712848179">"您没有可显示的联系人。(如果您刚刚添加了一个帐户,则需要几分钟时间同步联系人。)"\n\n"要添加联系人,请按"<font fgcolor="#ffffffff"><b>"菜单"</b></font>",然后触摸:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Google 帐户"</b></font>"以添加或配置可同步到手机的联系人的帐户"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"显示选项"</b></font>"以更改可见的联系人"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"新建联系人"</b></font>"以从头开始创建新联系人"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"导入/导出"</b></font>\n</li></string>
<string name="noContactsNoSimHelpText" msgid="6553845386917463292">"您没有可显示的联系人。"\n\n"要添加联系人,请按"<font fgcolor="#ffffffff"><b>"菜单"</b></font>",然后触摸:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Google 帐户"</b></font>"以添加或配置可同步到手机的联系人的帐户"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"新建联系人"</b></font>"以从头开始创建新联系人"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"导入/导出"</b></font>\n</li></string>
<string name="noContactsNoSimHelpTextWithSync" msgid="1122296298361373488">"您没有可显示的联系人。(如果您刚刚添加了一个帐户,则需要几分钟时间同步联系人。)"\n\n"要添加联系人,请按"<font fgcolor="#ffffffff"><b>"菜单"</b></font>",然后触摸:"\n" "\n<li><font fgcolor="#ffffffff"><b>"Google 帐户"</b></font>"以添加或配置可同步到手机的联系人的帐户"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"显示选项"</b></font>"以更改可见的联系人"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"新建联系人"</b></font>"以从头开始创建新联系人"\n</li>" "\n<li><font fgcolor="#ffffffff"><b>"导入/导出"</b></font>\n</li></string>
- <string name="noFavoritesHelpText" msgid="3744655776704833277">"您未做任何收藏。"\n\n"要收藏加联系人,请执行以下操作:"\n\n<li>"触摸"<b>"联系人"</b>"标签"\n</li>\n<li>"触摸您要加入收藏的联系人"\n</li>\n<li>"触摸联系人姓名旁边的星标"\n</li></string>
+ <string name="noFavoritesHelpText" msgid="3744655776704833277">"您未收藏任何内容。"\n\n"要向您的收藏列表添加联系人,请执行以下操作:"\n\n" "<li>"触摸"<b>"联系人"</b>"标签"\n</li>\n<li>"触摸您要加入收藏的联系人"\n</li>\n<li>"触摸联系人姓名旁边的星标"\n</li></string>
<string name="seclectSyncGroups_title" msgid="1235432026231325655">"选择要同步的群组"</string>
<string name="liveFolder_all_label" msgid="5961411940473276616">"所有联系人"</string>
<string name="liveFolder_favorites_label" msgid="2674341514070517105">"已加星标"</string>
- <string name="liveFolder_phones_label" msgid="1709786878793436245">"电话"</string>
+ <string name="liveFolder_phones_label" msgid="1709786878793436245">"手机"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"使用按键式数字键盘"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"返回正在进行的通话"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"添加通话"</string>
@@ -211,11 +211,11 @@
<string name="toast_call_detail_error" msgid="7200975244804730096">"无法读取所请求呼叫的详细信息。"</string>
<string name="call_type" msgid="3213526349444862087">"类型"</string>
<string name="type_incoming" msgid="6502076603836088532">"来电"</string>
- <string name="type_outgoing" msgid="343108709599392641">"拨出电话"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"外拨电话"</string>
<string name="type_missed" msgid="2720502601640509542">"未接电话"</string>
<string name="call_time" msgid="5805575214626630975">"时间"</string>
<string name="datetime_relative" msgid="2906207446040994658">"<xliff:g id="DATETIME">%1$s</xliff:g> (<xliff:g id="RELATIVE">%2$s</xliff:g>)"</string>
- <string name="call_duration" msgid="3941950339482985532">"通话时间"</string>
+ <string name="call_duration" msgid="3941950339482985532">"持续时间"</string>
<string name="header_actions" msgid="229583643365836321">"操作"</string>
<string name="ringtone_spinner" msgid="7317823545379736528">"铃声:<xliff:g id="RINGTONE">%1$s</xliff:g>"</string>
<string name="add_more_items" msgid="7754115197545456663">"添加更多项"</string>
@@ -231,7 +231,7 @@
<string name="callAgain" msgid="3197312117049874778">"重拨"</string>
<string name="returnCall" msgid="8171961914203617813">"回拨"</string>
<string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
- <string name="favoritesFrquentSeparator" msgid="5007070838253932139">"常用联系人"</string>
+ <string name="favoritesFrquentSeparator" msgid="5007070838253932139">"经常呼叫"</string>
<string name="add_contact_dlg_title" msgid="2896685845822146494">"添加联系人"</string>
<string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"将“<xliff:g id="EMAIL">%s</xliff:g>”添加到联系人?"</string>
<string name="all_tab_label" msgid="4003124364397916826">"全部"</string>
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"由于意外原因而无法解析 vCard"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"虽然 vCard 似乎使用了有效的格式,但系统无法对其进行解析,因为当前的实现方案不支持该格式。"</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"未在 SD 卡上找到 vCard 文件"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"未找到与所选内容对应的有效 vCard 条目"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"一个或多个文件导入失败 (%s)。"</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"未知错误"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"选择 vCard 文件"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"无法初始化导出程序:“<xliff:g id="EXACT_REASON">%s</xliff:g>”"</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"导出时出错:“<xliff:g id="EXACT_REASON">%s</xliff:g>”"</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"获取数据库信息失败"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"没有可导出的联系人。您可能选择了无法导出的数据。"</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"vCard 制作程序未正确初始化"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"无法打开“<xliff:g id="FILE_NAME">%s</xliff:g>”:<xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"第 <xliff:g id="CURRENT_NUMBER">%s</xliff:g> 个联系人(共 <xliff:g id="TOTAL_NUMBER">%s</xliff:g> 个)"</string>
@@ -336,7 +336,7 @@
<string name="account_phone" msgid="4025734638492419713">"仅保存在手机中(不同步)"</string>
<string name="label_email_display_name" msgid="5537802602754309600">"显示名称"</string>
<string name="call_custom" msgid="7756571794763171802">"呼叫<xliff:g id="CUSTOM">%s</xliff:g>"</string>
- <string name="call_home" msgid="1990519474420545392">"呼叫住宅电话"</string>
+ <string name="call_home" msgid="1990519474420545392">"呼叫住宅"</string>
<string name="call_mobile" msgid="7502236805487609178">"呼叫手机"</string>
<string name="call_work" msgid="5328785911463744028">"呼叫单位"</string>
<string name="call_fax_work" msgid="7467763592359059243">"呼叫单位传真"</string>
@@ -356,31 +356,31 @@
<string name="call_work_pager" msgid="3419348514157949008">"呼叫单位寻呼机"</string>
<string name="call_assistant" msgid="2141641383068514308">"呼叫<xliff:g id="ASSISTANT">%s</xliff:g>"</string>
<string name="call_mms" msgid="6274041545876221437">"呼叫彩信号码"</string>
- <string name="sms_custom" msgid="5932736853732191825">"向<xliff:g id="CUSTOM">%s</xliff:g>发送短信"</string>
- <string name="sms_home" msgid="7524332261493162995">"向住宅电话发送短信"</string>
- <string name="sms_mobile" msgid="5200107250451030769">"向手机发送短信"</string>
- <string name="sms_work" msgid="2269624156655267740">"向单位电话发送短信"</string>
- <string name="sms_fax_work" msgid="8028189067816907075">"向单位传真机发送短信"</string>
- <string name="sms_fax_home" msgid="9204042076306809634">"向住宅传真机发送短信"</string>
+ <string name="sms_custom" msgid="5932736853732191825">"向<xliff:g id="CUSTOM">%s</xliff:g>发送文本消息"</string>
+ <string name="sms_home" msgid="7524332261493162995">"向住宅发送文本消息"</string>
+ <string name="sms_mobile" msgid="5200107250451030769">"向手机发送文本消息"</string>
+ <string name="sms_work" msgid="2269624156655267740">"向单位发送文本消息"</string>
+ <string name="sms_fax_work" msgid="8028189067816907075">"向单位传真发送文本消息"</string>
+ <string name="sms_fax_home" msgid="9204042076306809634">"向住宅传真发送文本消息"</string>
<string name="sms_pager" msgid="7730404569637015192">"向寻呼机发送文字消息"</string>
- <string name="sms_other" msgid="5131921487474531617">"向其他手机发送短信"</string>
+ <string name="sms_other" msgid="5131921487474531617">"向其他手机号码发送文本消息"</string>
<string name="sms_callback" msgid="5004824430094288752">"向回拨号码发送短信"</string>
- <string name="sms_car" msgid="7444227058437359641">"向车载电话发送短信"</string>
- <string name="sms_company_main" msgid="118970873419678087">"向公司总机发送短信"</string>
+ <string name="sms_car" msgid="7444227058437359641">"向车载电话发送文本消息"</string>
+ <string name="sms_company_main" msgid="118970873419678087">"向公司总机发送文本消息"</string>
<string name="sms_isdn" msgid="8153785037515047845">"向 ISDN 发送短信"</string>
<string name="sms_main" msgid="8621625784504541679">"向总机发送短信"</string>
<string name="sms_other_fax" msgid="3930666870074006114">"向其他传真发送短信"</string>
- <string name="sms_radio" msgid="3329166673433967820">"向无线装置发送短信"</string>
+ <string name="sms_radio" msgid="3329166673433967820">"向无线装置发送文本消息"</string>
<string name="sms_telex" msgid="9034802430065267848">"向电报发送短信"</string>
<string name="sms_tty_tdd" msgid="6782284969132531532">"向 TTY/TDD 发送短信"</string>
<string name="sms_work_mobile" msgid="2459939960512702560">"向单位手机发送短信"</string>
<string name="sms_work_pager" msgid="5566924423316960597">"向单位寻呼机发送短信"</string>
<string name="sms_assistant" msgid="2773424339923116234">"向<xliff:g id="ASSISTANT">%s</xliff:g>发送短信"</string>
- <string name="sms_mms" msgid="4069352461380762677">"向彩信号码发送短信"</string>
- <string name="email_home" msgid="8573740658148184279">"向住宅邮箱发送电子邮件"</string>
+ <string name="sms_mms" msgid="4069352461380762677">"向彩信号码发送文本消息"</string>
+ <string name="email_home" msgid="8573740658148184279">"向住宅发送电子邮件"</string>
<string name="email_mobile" msgid="2042889209787989814">"向手机发送电子邮件"</string>
- <string name="email_work" msgid="2807430017302722689">"向单位邮箱发送电子邮件"</string>
- <string name="email_other" msgid="8093933498541795832">"向其他邮箱发送电子邮件"</string>
+ <string name="email_work" msgid="2807430017302722689">"向单位发送电子邮件"</string>
+ <string name="email_other" msgid="8093933498541795832">"向其他地址发送电子邮件"</string>
<string name="email_custom" msgid="7548003991586214105">"向<xliff:g id="CUSTOM">%s</xliff:g>发送电子邮件"</string>
<string name="email" msgid="5668400997660065897">"电子邮件"</string>
<string name="map_home" msgid="1243547733423343982">"查看住宅地址"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 601583a..649f120 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -264,7 +264,6 @@
<string name="fail_reason_vcard_parse_error" msgid="1201233722762680214">"因未預期原因,無法剖析 VCard"</string>
<string name="fail_reason_vcard_not_supported_error" msgid="655208100451286027">"VCard 格式正確,但目前的實作系統不支援此格式,因此無法剖析"</string>
<string name="fail_reason_no_vcard_file" msgid="6376516175882881595">"SD 卡上沒有 vCard 檔案"</string>
- <string name="fail_reason_no_vcard_entry" msgid="4733290752474073143">"所選的檔案中沒有有效的 VCard 項目"</string>
<string name="fail_reason_failed_to_read_files" msgid="3659521123567134029">"無法匯入一或多個檔案 (%s)。"</string>
<string name="fail_reason_unknown" msgid="999034019513096768">"未知的錯誤"</string>
<string name="select_vcard_title" msgid="3968948173786172468">"選取 VCard 檔案"</string>
@@ -293,7 +292,8 @@
<string name="fail_reason_could_not_initialize_exporter" msgid="4943708332700987376">"無法初始化匯出程式:「<xliff:g id="EXACT_REASON">%s</xliff:g>」"</string>
<string name="fail_reason_error_occurred_during_export" msgid="2151165129433831202">"匯出時發生錯誤:「<xliff:g id="EXACT_REASON">%s</xliff:g>」"</string>
<string name="composer_failed_to_get_database_infomation" msgid="3723109558155169053">"無法取得資料庫資訊"</string>
- <string name="composer_has_no_exportable_contact" msgid="2239503301380653777">"沒有可匯出的聯絡人,您可能選擇了不可匯出的資料。"</string>
+ <!-- no translation found for composer_has_no_exportable_contact (754734132189369094) -->
+ <skip />
<string name="composer_not_initialized" msgid="8041534450748388843">"VCard 編輯器並未正確初始化"</string>
<string name="fail_reason_could_not_open_file" msgid="4013520943128739511">"無法開啟「<xliff:g id="FILE_NAME">%s</xliff:g>」:<xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
<string name="exporting_contact_list_progress" msgid="560522409559101193">"第 <xliff:g id="CURRENT_NUMBER">%s</xliff:g> 位聯絡人,共 <xliff:g id="TOTAL_NUMBER">%s</xliff:g> 位"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e37c118..120d996 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -797,44 +797,55 @@
<!-- Action that exports all contacts to SD Card -->
<string name="export_to_sdcard">Export to SD card</string>
- <!-- "Import one vCard file" -->
+ <!-- One of alternatives shown when the system allows a user to select how many vCard files
+ should be imported. This message shows only when the system is certain that there's more
+ than one vCard files available in the system. -->
<string name="import_one_vcard_string">Import one vCard file</string>
- <!-- "Import more than one vCard -->
+ <!-- One of alternatives shown when the system allows a user to select how many vCard files
+ should be imported. This message shows only when the system is certain that there's more
+ than one vCard files available in the system. -->
<string name="import_multiple_vcard_string">Import multiple vCard files</string>
- <!-- "Import all vCard files" -->
+ <!-- One of alternatives shown when the system allows a user to select how many vCard files
+ should be imported. This message shows only when the system is certain that there's more
+ than one vCard files available in the system. -->
<string name="import_all_vcard_string">Import all vCard files</string>
<!-- Dialog message shown when searching VCard data from SD Card -->
<string name="searching_vcard_message">Searching for vCard data on SD card</string>
- <!-- Dialog title shown when searching VCard data failed. -->
+ <!-- Dialog title shown when scanning VCard data failed. -->
<string name="scanning_sdcard_failed_title">Scanning SD card failed</string>
- <!-- Dialog message shown when searching VCard data failed. -->
+ <!-- Dialog message shown when searching VCard data failed.
+ An exact reason for the failure should -->
<string name="scanning_sdcard_failed_message">Scanning SD card failed (Reason: \"<xliff:g id="fail_reason">%s</xliff:g>\")</string>
- <!-- The failed reason: "I/O Error" -->
+ <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
+ emitted some I/O error. Exact reason will be appended by the system. -->
<string name="fail_reason_io_error">I/O Error</string>
- <!-- The failed reason: "Failed to parse VCard data" -->
+ <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
+ implementation. This might happen even when the input vCard is completely valid, though
+ we believe it is rather rare in the actual world. -->
<string name="fail_reason_vcard_parse_error">Failed to parse vCard for unexpected reason</string>
- <!-- The failed reason: "The VCard is not supported right now, but may be supported in the future" -->
+ <!-- The failed reason shown when the current vCard importer cannot parse the file since the
+ parser is incomplete (actually, there's missing part in the current vCard parser, though
+ our understanding is that the functionality missed by the current vCard parser
+ is rarely needed in the actual vCard...). -->
<string name="fail_reason_vcard_not_supported_error">Failed to parse vCard though it seems in valid format, since the current implementation does not support it</string>
- <!-- The failed reason: "There is no VCard file" -->
+ <!-- The failed reason shown when the system could not find any vCard file
+ (with extension ".vcf" in SDCard.) -->
<string name="fail_reason_no_vcard_file">No vCard file found on the SD card</string>
- <!-- The failed reason: "There is no valid VCard entry in the file(s)" -->
- <string name="fail_reason_no_vcard_entry">No valid vCard entry found for your selection</string>
-
- <!-- The failed reason: "One or more files failed to be imported. (<a list of file names>)" -->
+ <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
+ files import. It includes the case where all files were failed to be imported. -->
<string name="fail_reason_failed_to_read_files">One or more files failed to be imported (%s).</string>
- <!-- The failed reason: "Unknown error". This message should not be shown
- but it may in some buggy condition. -->
+ <!-- The failed reason which should not be shown but it may in some buggy condition. -->
<string name="fail_reason_unknown">Unknown error</string>
<!-- Dialog title shown when a user is asked to select VCard file -->
@@ -890,16 +901,22 @@
<!-- Dialog message shown when exporting Contact data failed -->
<string name="exporting_contact_failed_message">Failed to export contact data.\nReason for failure: \"<xliff:g id="fail_reason">%s</xliff:g>\"</string>
- <!-- The failed reason: "There is no exportable contact" -->
+ <!-- The failed reason shown when there's no contact which is allowed to be exported.
+ Note that user may have contacts data but all of them are probably not allowed to be
+ exported because of security/permission reasons. -->
<string name="fail_reason_no_exportable_contact">There is no exportable contact</string>
- <!-- The failed reason: "Too many vcard files on the SD Card" -->
+ <!-- The failed reason shown when vCard exporter could not create a file for the vCard since
+ there are too many files relevant to vCard. -->
<string name="fail_reason_too_many_vcard">Too many vCard files on the SD card</string>
- <!-- The failed reason: "Too long filename". This error usually does not happen. -->
+ <!-- The failed reason shown when the given file name is too long for the system.
+ The length limit of each file is different in each Android device, so we don't need to
+ mention it here. -->
<string name="fail_reason_too_long_filename">Required filename is too long (\"<xliff:g id="filename">%s</xliff:g>\")</string>
- <!-- The failed reason: "Cannot open or create the destination directory" -->
+ <!-- The reason why the contacts import/export failed, meaning a designated file or directory
+ cannot be opened/created because of some permission, security, or any other reasons. -->
<string name="fail_reason_cannot_open_destination_dir">Cannot open or create the destination directory\"<xliff:g id="dir_name">%s</xliff:g>\"</string>
<!-- Dialog title shown when the application is exporting contact data outside -->
@@ -908,22 +925,30 @@
<!-- Message shown when the application is exporting contact data outside -->
<string name="exporting_contact_list_message">Exporting contact data to \"<xliff:g id="file_name">%s</xliff:g>\"</string>
- <!-- The failed reason: "Could not initialize the exporter" -->
+ <!-- The failed reason shown when contacts exporter fails to be initialized.
+ Some exact reason must follow this. -->
<string name="fail_reason_could_not_initialize_exporter">Could not initialize the exporter: \"<xliff:g id="exact_reason">%s</xliff:g>\"</string>
- <!-- The failed reason: "Error occured during export" -->
+ <!-- The failed reason shown when some error happend during contacts export.
+ Some exact reason must follow this. -->
<string name="fail_reason_error_occurred_during_export">Error occured during export: \"<xliff:g id="exact_reason">%s</xliff:g>\"</string>
- <!-- The error reason the vCard composer emits: "Failed to get database information" -->
+ <!-- The error reason the vCard composer "may" emit when database is corrupted or
+ something is going wrong. Usually users should not see this text. -->
<string name="composer_failed_to_get_database_infomation">Failed to get database information</string>
- <!-- The error reason the vCard composer emits: "There is no exportable contact. You might choose un-exportable data" -->
- <string name="composer_has_no_exportable_contact">There is no exportable contact. You might choose un-exportable data</string>
+ <!-- This error message shown when the user actually have no contact
+ (e.g. just after data-wiping), or, data providers of the contact list prohibits their
+ contacts from being exported to outside world via vcard exporter, etc. -->
+ <string name="composer_has_no_exportable_contact">There is no exportable contact. If you have actualy have contacts on your phone, all the contacts may be prohibited from being exported to outside the phone by some data provider.</string>
- <!-- The error reason the vCard composer emits: "The vCard composer object is not correctly initialized" -->
+ <!-- The error reason the vCard composer may emit when vCard composer is not initialized
+ even when needed.
+ Users should not usually see this error message. -->
<string name="composer_not_initialized">The vCard composer is not correctly initialized</string>
- <!-- The failed reason: "Could not open a specific file" -->
+ <!-- The failed reason shown when vCard importer/exporter could not open the file
+ specified by a user. The file name should be in the message. -->
<string name="fail_reason_could_not_open_file">Could not open \"<xliff:g id="file_name">%s</xliff:g>\": <xliff:g id="exact_reason">%s</xliff:g></string>
<!-- Message in progress bar while exporting contact list to a file "(current number) of (total number) contacts" The order of "current number" and "total number" cannot be changed (like "total: (total number), current: (current number)")-->
diff --git a/src/com/android/contacts/ButtonGridLayout.java b/src/com/android/contacts/ButtonGridLayout.java
deleted file mode 100644
index 6ce3e71..0000000
--- a/src/com/android/contacts/ButtonGridLayout.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2008 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.content.Context;
-import android.util.AttributeSet;
-import android.view.View.MeasureSpec;
-import android.view.View;
-import android.view.ViewGroup;
-
-/**
- * Create a 4x3 grid of dial buttons.
- *
- * It was easier and more efficient to do it this way than use
- * standard layouts. It's perfectly fine (and actually encouraged) to
- * use custom layouts rather than piling up standard layouts.
- *
- * The horizontal and vertical spacings between buttons are controlled
- * by the amount of padding (attributes on the ButtonGridLayout element):
- * - horizontal = left + right padding and
- * - vertical = top + bottom padding.
- *
- * This class assumes that all the buttons have the same size.
- * The buttons will be bottom aligned in their view on layout.
- *
- * Invocation: onMeasure is called first by the framework to know our
- * size. Then onLayout is invoked to layout the buttons.
- */
-// TODO: Blindly layout the buttons w/o checking if we overrun the
-// bottom-right corner.
-public class ButtonGridLayout extends ViewGroup {
- private final int COLUMNS = 3;
- private final int ROWS = 4;
-
- // Width and height of a button
- private int mButtonWidth;
- private int mButtonHeight;
-
- // Width and height of a button + padding.
- private int mWidthInc;
- private int mHeightInc;
-
- // Height of the dialpad. Used to align it at the bottom of the
- // view.
- private int mHeight;
-
- public ButtonGridLayout(Context context) {
- super(context);
- }
-
- public ButtonGridLayout(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public ButtonGridLayout(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
-
- @Override
- protected void onLayout(boolean changed, int l, int t, int r, int b) {
- int i = 0;
- // The last row is bottom aligned.
- int y = (b - t) - mHeight + mPaddingTop;
- for (int row = 0; row < ROWS; row++) {
- int x = mPaddingLeft;
- for (int col = 0; col < COLUMNS; col++) {
- View child = getChildAt(i);
-
- child.layout(x, y, x + mButtonWidth, y + mButtonHeight);
-
- x += mWidthInc;
- i++;
- }
- y += mHeightInc;
- }
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- // Measure the first child and get it's size
- View child = getChildAt(0);
- child.measure(MeasureSpec.UNSPECIFIED , MeasureSpec.UNSPECIFIED);
-
- // Make sure the other children are measured as well, to initialize
- for (int i = 1; i < getChildCount(); i++) {
- getChildAt(i).measure(MeasureSpec.UNSPECIFIED , MeasureSpec.UNSPECIFIED);
- }
-
- // Store these to be reused in onLayout.
- mButtonWidth = child.getMeasuredWidth();
- mButtonHeight = child.getMeasuredHeight();
- mWidthInc = mButtonWidth + mPaddingLeft + mPaddingRight;
- mHeightInc = mButtonHeight + mPaddingTop + mPaddingBottom;
- mHeight = ROWS * mHeightInc;
-
- final int width = resolveSize(COLUMNS * mWidthInc, widthMeasureSpec);
- final int height = resolveSize(mHeight, heightMeasureSpec);
-
- setMeasuredDimension(width, height);
- }
-}
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index 24c7100..2c0aa7d 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -219,11 +219,11 @@
static final int MODE_PICK_OR_CREATE_CONTACT = 42 | MODE_MASK_PICKER | MODE_MASK_CREATE_NEW
| MODE_MASK_SHOW_PHOTOS | MODE_MASK_DISABLE_QUIKCCONTACT;
/** Show all people through the legacy provider and pick them when clicking */
- static final int MODE_LEGACY_PICK_PERSON = 43 | MODE_MASK_PICKER | MODE_MASK_SHOW_PHOTOS
+ static final int MODE_LEGACY_PICK_PERSON = 43 | MODE_MASK_PICKER
| MODE_MASK_DISABLE_QUIKCCONTACT;
/** Show all people through the legacy provider as well as the option to create a new one */
static final int MODE_LEGACY_PICK_OR_CREATE_PERSON = 44 | MODE_MASK_PICKER
- | MODE_MASK_CREATE_NEW | MODE_MASK_SHOW_PHOTOS | MODE_MASK_DISABLE_QUIKCCONTACT;
+ | MODE_MASK_CREATE_NEW | MODE_MASK_DISABLE_QUIKCCONTACT;
/** Show all contacts and pick them when clicking, and allow creating a new contact */
static final int MODE_INSERT_OR_EDIT_CONTACT = 45 | MODE_MASK_PICKER | MODE_MASK_CREATE_NEW;
/** Show all phone numbers and pick them when clicking */
@@ -416,6 +416,9 @@
getContentResolver().delete(mSelectedContactUri, null, null);
}
}
+
+ // The size of a home screen shortcut icon.
+ private int mIconSize;
@Override
protected void onCreate(Bundle icicle) {
@@ -423,6 +426,8 @@
// Resolve the intent
final Intent intent = getIntent();
+
+ mIconSize = getResources().getDimensionPixelSize(android.R.dimen.app_icon_size);
// Allow the title to be set to a custom String using an extra on the intent
String title = intent.getStringExtra(UI.TITLE_EXTRA_KEY);
@@ -1322,7 +1327,7 @@
final Bitmap icon = framePhoto(loadContactPhoto(id, null));
if (icon != null) {
- intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);
+ intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, scaleToAppIconSize(icon));
} else {
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this,
@@ -1413,10 +1418,9 @@
return null;
}
}
-
+
// Setup the drawing classes
- int iconSize = (int) r.getDimension(android.R.dimen.app_icon_size);
- Bitmap icon = Bitmap.createBitmap(iconSize, iconSize, Bitmap.Config.ARGB_8888);
+ Bitmap icon = createShortcutBitmap();
Canvas canvas = new Canvas(icon);
// Copy in the photo
@@ -1424,7 +1428,7 @@
photoPaint.setDither(true);
photoPaint.setFilterBitmap(true);
Rect src = new Rect(0,0, photo.getWidth(),photo.getHeight());
- Rect dst = new Rect(0,0, iconSize,iconSize);
+ Rect dst = new Rect(0,0, mIconSize, mIconSize);
canvas.drawBitmap(photo, src, dst, photoPaint);
// Create an overlay for the phone number type
@@ -1473,6 +1477,26 @@
return icon;
}
+
+ private Bitmap scaleToAppIconSize(Bitmap photo) {
+ // Setup the drawing classes
+ Bitmap icon = createShortcutBitmap();
+ Canvas canvas = new Canvas(icon);
+
+ // Copy in the photo
+ Paint photoPaint = new Paint();
+ photoPaint.setDither(true);
+ photoPaint.setFilterBitmap(true);
+ Rect src = new Rect(0,0, photo.getWidth(),photo.getHeight());
+ Rect dst = new Rect(0,0, mIconSize, mIconSize);
+ canvas.drawBitmap(photo, src, dst, photoPaint);
+
+ return icon;
+ }
+
+ private Bitmap createShortcutBitmap() {
+ return Bitmap.createBitmap(mIconSize, mIconSize, Bitmap.Config.ARGB_8888);
+ }
/**
* Returns the icon for the phone call action.
@@ -2384,7 +2408,7 @@
}
View v;
- if (convertView == null) {
+ if (convertView == null || convertView.getTag() == null) {
v = newView(mContext, cursor, parent);
} else {
v = convertView;
@@ -2522,8 +2546,11 @@
cache.nameView.setText(mUnknownNameText);
}
+ boolean hasPhone = cursor.getColumnCount() >= SUMMARY_HAS_PHONE_COLUMN_INDEX
+ && cursor.getInt(SUMMARY_HAS_PHONE_COLUMN_INDEX) != 0;
+
// Make the call button visible if requested.
- if (mDisplayCallButton) {
+ if (mDisplayCallButton && hasPhone) {
int pos = cursor.getPosition();
cache.callView.setVisibility(View.VISIBLE);
cache.callButton.setTag(pos);
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
index 1e3b8ad..24f683f 100644
--- a/src/com/android/contacts/ContactsUtils.java
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -37,6 +37,7 @@
import android.provider.ContactsContract.CommonDataKinds.Photo;
import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
import android.provider.Im.ProviderNames;
+import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
@@ -50,7 +51,6 @@
import java.util.ArrayList;
public class ContactsUtils {
-
private static final String TAG = "ContactsUtils";
/**
* Build the display title for the {@link Data#CONTENT_URI} entry in the
@@ -386,7 +386,6 @@
/**
* Utility for creating a standard tab indicator view.
*
- * @param context The label to display in the tab indicator. If null, not label will be displayed.
* @param parent The parent ViewGroup to attach the new view to.
* @param source The {@link ContactsSource} to build the tab view from.
* @return The tab indicator View.
@@ -401,6 +400,9 @@
/**
* Kick off an intent to initiate a call.
+ *
+ * @param phoneNumber must not be null.
+ * @throws NullPointerException when the given argument is null.
*/
public static void initiateCall(Context context, CharSequence phoneNumber) {
Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
@@ -410,6 +412,9 @@
/**
* Kick off an intent to initiate an Sms/Mms message.
+ *
+ * @param phoneNumber must not be null.
+ * @throws NullPointerException when the given argument is null.
*/
public static void initiateSms(Context context, CharSequence phoneNumber) {
Intent intent = new Intent(Intent.ACTION_SENDTO,
@@ -424,4 +429,47 @@
public static boolean isGraphic(CharSequence str) {
return !TextUtils.isEmpty(str) && TextUtils.isGraphic(str);
}
+
+ /**
+ * Returns true if two objects are considered equal. Two null references are equal here.
+ */
+ public static boolean areObjectsEqual(Object a, Object b) {
+ return a == b || (a != null && a.equals(b));
+ }
+
+ /**
+ * Returns true if two data with mimetypes which represent values in contact entries are
+ * considered equal.
+ */
+ public static final boolean areDataEqual(Context context, CharSequence mimetype1,
+ CharSequence data1, CharSequence mimetype2, CharSequence data2) {
+ if (TextUtils.equals(Phone.CONTENT_ITEM_TYPE, mimetype1)
+ && TextUtils.equals(Phone.CONTENT_ITEM_TYPE, mimetype2)) {
+ if (data1 == data2) {
+ return true;
+ }
+ if (data1 == null || data2 == null) {
+ return false;
+ }
+ return PhoneNumberUtils.compare(context, data1.toString(), data2.toString());
+ } else {
+ if (mimetype1 == mimetype2 && data1 == data2) {
+ return true;
+ }
+ return TextUtils.equals(mimetype1, mimetype2) && TextUtils.equals(data1, data2);
+ }
+ }
+
+ /**
+ * Returns true if two {@link Intent}s are both null, or have the same action.
+ */
+ public static final boolean areIntentActionEqual(Intent a, Intent b) {
+ if (a == b) {
+ return true;
+ }
+ if (a == null || b == null) {
+ return false;
+ }
+ return TextUtils.equals(a.getAction(), b.getAction());
+ }
}
diff --git a/src/com/android/contacts/ExportVCardActivity.java b/src/com/android/contacts/ExportVCardActivity.java
index baf2371..5bccc7a 100644
--- a/src/com/android/contacts/ExportVCardActivity.java
+++ b/src/com/android/contacts/ExportVCardActivity.java
@@ -36,6 +36,14 @@
import java.util.HashSet;
import java.util.Set;
+/**
+ * Class for exporting vCard.
+ *
+ * Note that this Activity assumes that the instance is a "one-shot Activity", which will be
+ * finished (with the method {@link Activity#finish()}) after the export and never reuse
+ * any Dialog in the instance. So this code is careless about the management around managed
+ * dialogs stuffs (like how onCreateDialog() is used).
+ */
public class ExportVCardActivity extends Activity {
private static final String LOG_TAG = "ExportVCardActivity";
@@ -102,7 +110,6 @@
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
mActualExportThread = new ActualExportThread(mFileName);
- mActualExportThread.start();
showDialog(R.id.dialog_exporting_vcard);
}
}
@@ -287,26 +294,23 @@
return builder.create();
}
case R.id.dialog_exporting_vcard: {
- return getExportingVCardDialog();
+ if (mProgressDialog == null) {
+ String title = getString(R.string.exporting_contact_list_title);
+ String message = getString(R.string.exporting_contact_list_message,
+ mExportingFileName);
+ mProgressDialog = new ProgressDialog(ExportVCardActivity.this);
+ mProgressDialog.setTitle(title);
+ mProgressDialog.setMessage(message);
+ mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+ mProgressDialog.setOnCancelListener(mActualExportThread);
+ mActualExportThread.start();
+ }
+ return mProgressDialog;
}
}
return super.onCreateDialog(id);
}
- private Dialog getExportingVCardDialog() {
- if (mProgressDialog == null) {
- String title = getString(R.string.exporting_contact_list_title);
- String message = getString(R.string.exporting_contact_list_message,
- mExportingFileName);
- mProgressDialog = new ProgressDialog(ExportVCardActivity.this);
- mProgressDialog.setTitle(title);
- mProgressDialog.setMessage(message);
- mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- mProgressDialog.setOnCancelListener(mActualExportThread);
- }
- return mProgressDialog;
- }
-
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
if (id == R.id.dialog_fail_to_export_with_reason) {
diff --git a/src/com/android/contacts/ImportVCardActivity.java b/src/com/android/contacts/ImportVCardActivity.java
index 8fd9c0d..b306528 100644
--- a/src/com/android/contacts/ImportVCardActivity.java
+++ b/src/com/android/contacts/ImportVCardActivity.java
@@ -30,11 +30,11 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.PowerManager;
-import android.pim.vcard.EntryCommitter;
-import android.pim.vcard.VCardBuilder;
-import android.pim.vcard.VCardBuilderCollection;
+import android.pim.vcard.VCardEntryCommitter;
+import android.pim.vcard.VCardInterpreter;
+import android.pim.vcard.VCardInterpreterCollection;
import android.pim.vcard.VCardConfig;
-import android.pim.vcard.VCardDataBuilder;
+import android.pim.vcard.VCardEntryConstructor;
import android.pim.vcard.VCardEntryCounter;
import android.pim.vcard.VCardParser_V21;
import android.pim.vcard.VCardParser_V30;
@@ -90,6 +90,11 @@
/**
* Class for importing vCard. Several user interaction will be required while reading
* (selecting a file, waiting a moment, etc.)
+ *
+ * Note that this Activity assumes that the instance is a "one-shot Activity", which will be
+ * finished (with the method {@link Activity#finish()}) after the import and never reuse
+ * any Dialog in the instance. So this code is careless about the management around managed
+ * dialogs stuffs (like how onCreateDialog() is used).
*/
public class ImportVCardActivity extends Activity {
private static final String LOG_TAG = "ImportVCardActivity";
@@ -197,7 +202,7 @@
}
VCardEntryCounter counter = new VCardEntryCounter();
VCardSourceDetector detector = new VCardSourceDetector();
- VCardBuilderCollection builderCollection = new VCardBuilderCollection(
+ VCardInterpreterCollection builderCollection = new VCardInterpreterCollection(
Arrays.asList(counter, detector));
boolean result;
@@ -290,17 +295,17 @@
String charset, boolean showEntryParseProgress,
VCardSourceDetector detector, List<String> errorFileNameList) {
final Context context = ImportVCardActivity.this;
- VCardDataBuilder builder;
+ VCardEntryConstructor builder;
final String currentLanguage = Locale.getDefault().getLanguage();
int vcardType = VCardConfig.getVCardTypeFromString(
context.getString(R.string.config_import_vcard_type));
if (charset != null) {
- builder = new VCardDataBuilder(charset, charset, false, vcardType, mAccount);
+ builder = new VCardEntryConstructor(charset, charset, false, vcardType, mAccount);
} else {
charset = VCardConfig.DEFAULT_CHARSET;
- builder = new VCardDataBuilder(null, null, false, vcardType, mAccount);
+ builder = new VCardEntryConstructor(null, null, false, vcardType, mAccount);
}
- builder.addEntryHandler(new EntryCommitter(mResolver));
+ builder.addEntryHandler(new VCardEntryCommitter(mResolver));
if (showEntryParseProgress) {
builder.addEntryHandler(new ProgressShower(mProgressDialogForReadVCard,
context.getString(R.string.reading_vcard_message),
@@ -319,7 +324,7 @@
}
private boolean readOneVCardFile(String canonicalPath, String charset,
- VCardBuilder builder, VCardSourceDetector detector,
+ VCardInterpreter builder, VCardSourceDetector detector,
boolean throwNestedException, List<String> errorFileNameList)
throws VCardNestedException {
FileInputStream is;
@@ -334,6 +339,10 @@
is.close();
} catch (IOException e) {
}
+ if (builder instanceof VCardEntryConstructor) {
+ // Let the object clean up internal temporal objects,
+ ((VCardEntryConstructor)builder).clear();
+ }
is = new FileInputStream(canonicalPath);
try {
@@ -673,20 +682,6 @@
return builder.create();
}
- private Dialog getReadingVCardDialog() {
- if (mProgressDialogForReadVCard == null) {
- String title = getString(R.string.reading_vcard_title);
- String message = getString(R.string.reading_vcard_message);
- mProgressDialogForReadVCard = new ProgressDialog(this);
- mProgressDialogForReadVCard.setTitle(title);
- mProgressDialogForReadVCard.setMessage(message);
- mProgressDialogForReadVCard.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- mProgressDialogForReadVCard.setOnCancelListener(mVCardReadThread);
- mVCardReadThread.start();
- }
- return mProgressDialogForReadVCard;
- }
-
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
@@ -748,7 +743,17 @@
return getVCardFileSelectDialog(false);
}
case R.id.dialog_reading_vcard: {
- return getReadingVCardDialog();
+ if (mProgressDialogForReadVCard == null) {
+ String title = getString(R.string.reading_vcard_title);
+ String message = getString(R.string.reading_vcard_message);
+ mProgressDialogForReadVCard = new ProgressDialog(this);
+ mProgressDialogForReadVCard.setTitle(title);
+ mProgressDialogForReadVCard.setMessage(message);
+ mProgressDialogForReadVCard.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+ mProgressDialogForReadVCard.setOnCancelListener(mVCardReadThread);
+ mVCardReadThread.start();
+ }
+ return mProgressDialogForReadVCard;
}
case R.id.dialog_io_exception: {
String message = (getString(R.string.scanning_sdcard_failed_message,
diff --git a/src/com/android/contacts/PhoneDisambigDialog.java b/src/com/android/contacts/PhoneDisambigDialog.java
index b727c77..e0295e3 100644
--- a/src/com/android/contacts/PhoneDisambigDialog.java
+++ b/src/com/android/contacts/PhoneDisambigDialog.java
@@ -136,11 +136,11 @@
private class PhoneItem implements Collapsible<PhoneItem> {
- String phoneNumber;
- long id;
+ final String phoneNumber;
+ final long id;
public PhoneItem(String newPhoneNumber, long newId) {
- phoneNumber = newPhoneNumber;
+ phoneNumber = (newPhoneNumber != null ? newPhoneNumber : "");
id = newId;
}
@@ -160,6 +160,7 @@
return false;
}
+ @Override
public String toString() {
return phoneNumber;
}
diff --git a/src/com/android/contacts/ProgressShower.java b/src/com/android/contacts/ProgressShower.java
index c1a2493..a5ad2a2 100644
--- a/src/com/android/contacts/ProgressShower.java
+++ b/src/com/android/contacts/ProgressShower.java
@@ -18,12 +18,12 @@
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Handler;
-import android.pim.vcard.ContactStruct;
-import android.pim.vcard.EntryHandler;
+import android.pim.vcard.VCardEntry;
+import android.pim.vcard.VCardEntryHandler;
import android.pim.vcard.VCardConfig;
import android.util.Log;
-public class ProgressShower implements EntryHandler {
+public class ProgressShower implements VCardEntryHandler {
public static final String LOG_TAG = "vcard.ProgressShower";
private final Context mContext;
@@ -34,9 +34,9 @@
private long mTime;
private class ShowProgressRunnable implements Runnable {
- private ContactStruct mContact;
+ private VCardEntry mContact;
- public ShowProgressRunnable(ContactStruct contact) {
+ public ShowProgressRunnable(VCardEntry contact) {
mContact = contact;
}
@@ -57,10 +57,10 @@
mProgressMessage = progressMessage;
}
- public void onParsingStart() {
+ public void onStart() {
}
- public void onEntryCreated(ContactStruct contactStruct) {
+ public void onEntryCreated(VCardEntry contactStruct) {
long start = System.currentTimeMillis();
if (!contactStruct.isIgnorable()) {
@@ -78,7 +78,7 @@
mTime += System.currentTimeMillis() - start;
}
- public void onParsingEnd() {
+ public void onEnd() {
if (VCardConfig.showPerformanceLog()) {
Log.d(LOG_TAG,
String.format("Time to progress a dialog: %d ms", mTime));
diff --git a/src/com/android/contacts/SplitAggregateView.java b/src/com/android/contacts/SplitAggregateView.java
index ed78fd9..b85a4ab 100644
--- a/src/com/android/contacts/SplitAggregateView.java
+++ b/src/com/android/contacts/SplitAggregateView.java
@@ -18,7 +18,6 @@
import com.android.contacts.model.ContactsSource;
import com.android.contacts.model.Sources;
-import com.google.common.util.text.TextUtil;
import android.content.Context;
import android.content.pm.PackageManager;
diff --git a/src/com/android/contacts/TwelveKeyDialer.java b/src/com/android/contacts/TwelveKeyDialer.java
index 2d8b4e6..cb0b06d 100644
--- a/src/com/android/contacts/TwelveKeyDialer.java
+++ b/src/com/android/contacts/TwelveKeyDialer.java
@@ -34,7 +34,6 @@
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemClock;
-import android.os.Vibrator;
import android.provider.Contacts.Intents.Insert;
import android.provider.Contacts.People;
import android.provider.Contacts.Phones;
@@ -66,6 +65,7 @@
import android.widget.TextView;
import com.android.internal.telephony.ITelephony;
+import com.android.phone.HapticFeedback;
/**
* Dialer activity that displays the typical twelve key interface.
@@ -85,9 +85,6 @@
/** Stream type used to play the DTMF tones off call, and mapped to the volume control keys */
private static final int DIAL_TONE_STREAM_TYPE = AudioManager.STREAM_MUSIC;
- /** Play the vibrate pattern only once. */
- private static final int VIBRATE_NO_REPEAT = -1;
-
private EditText mDigits;
private View mDelete;
private MenuItem mAddToContactMenuItem;
@@ -112,10 +109,7 @@
private boolean mDTMFToneEnabled;
// Vibration (haptic feedback) for dialer key presses.
- private Vibrator mVibrator;
- private boolean mVibrateOn;
- private long[] mVibratePattern;
-
+ private HapticFeedback mHaptic = new HapticFeedback();
/** Identifier for the "Add Call" intent extra. */
static final String ADD_CALL_MODE_KEY = "add_call_mode";
@@ -249,10 +243,12 @@
super.onRestoreInstanceState(icicle);
}
- // TODO: We might eventually need to make mVibrateOn come from a
- // user preference rather than a per-platform resource, in which
- // case we would need to update it in onResume() rather than here.
- initVibrationPattern(r);
+ try {
+ mHaptic.init(this, r.getBoolean(R.bool.config_enable_dialer_key_vibration));
+ } catch (Resources.NotFoundException nfe) {
+ Log.e(TAG, "Vibrate control bool missing.", nfe);
+ }
+
}
@Override
@@ -402,6 +398,9 @@
mDTMFToneEnabled = Settings.System.getInt(getContentResolver(),
Settings.System.DTMF_TONE_WHEN_DIALING, 1) == 1;
+ // Retrieve the haptic feedback setting.
+ mHaptic.checkSystemSetting();
+
// if the mToneGenerator creation fails, just continue without it. It is
// a local audio signal, and is not as important as the dtmf tone itself.
synchronized(mToneGeneratorLock) {
@@ -610,7 +609,7 @@
}
private void keyPressed(int keyCode) {
- vibrate();
+ mHaptic.vibrate();
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
mDigits.onKeyDown(keyCode, event);
}
@@ -694,13 +693,13 @@
return;
}
case R.id.dialButton: {
- vibrate(); // Vibrate here too, just like we do for the regular keys
+ mHaptic.vibrate(); // Vibrate here too, just like we do for the regular keys
placeCall();
return;
}
case R.id.voicemailButton: {
callVoicemail();
- vibrate();
+ mHaptic.vibrate();
return;
}
case R.id.digits: {
@@ -1062,18 +1061,6 @@
return phoneOffhook;
}
- /**
- * Triggers haptic feedback (if enabled) for dialer key presses.
- */
- private synchronized void vibrate() {
- if (!mVibrateOn) {
- return;
- }
- if (mVibrator == null) {
- mVibrator = new Vibrator();
- }
- mVibrator.vibrate(mVibratePattern, VIBRATE_NO_REPEAT);
- }
/**
* Returns true whenever any one of the options from the menu is selected.
@@ -1164,35 +1151,6 @@
}
/**
- * Initialize the vibration parameters.
- * @param r The Resources with the vibration parameters.
- */
- private void initVibrationPattern(Resources r) {
- int[] pattern = null;
- try {
- mVibrateOn = r.getBoolean(R.bool.config_enable_dialer_key_vibration);
- pattern = r.getIntArray(com.android.internal.R.array.config_virtualKeyVibePattern);
- if (null == pattern) {
- Log.e(TAG, "Vibrate pattern is null.");
- mVibrateOn = false;
- }
- } catch (Resources.NotFoundException nfe) {
- Log.e(TAG, "Vibrate control bool or pattern missing.", nfe);
- mVibrateOn = false;
- }
-
- if (!mVibrateOn) {
- return;
- }
-
- // int[] to long[] conversion.
- mVibratePattern = new long[pattern.length];
- for (int i = 0; i < pattern.length; i++) {
- mVibratePattern[i] = pattern[i];
- }
- }
-
- /**
* This function return true if Wait menu item can be shown
* otherwise returns false. Assumes the passed string is non-empty
* and the 0th index check is not required.
diff --git a/src/com/android/contacts/ViewContactActivity.java b/src/com/android/contacts/ViewContactActivity.java
index ca3c08a..eb5aec5 100644
--- a/src/com/android/contacts/ViewContactActivity.java
+++ b/src/com/android/contacts/ViewContactActivity.java
@@ -46,7 +46,9 @@
import android.database.ContentObserver;
import android.database.Cursor;
import android.graphics.drawable.Drawable;
+import android.net.ParseException;
import android.net.Uri;
+import android.net.WebAddress;
import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;
@@ -65,6 +67,7 @@
import android.provider.ContactsContract.CommonDataKinds.Organization;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.CommonDataKinds.Website;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.util.Log;
@@ -151,6 +154,13 @@
private ArrayList<Entity> mEntities = Lists.newArrayList();
private HashMap<Long, DataStatus> mStatuses = Maps.newHashMap();
+ /**
+ * The view shown if the detail list is empty.
+ * We set this to the list view when first bind the adapter, so that it won't be shown while
+ * we're loading data.
+ */
+ private View mEmptyView;
+
private ContentObserver mObserver = new ContentObserver(new Handler()) {
@Override
public boolean deliverSelfNotifications() {
@@ -206,7 +216,8 @@
mListView.setOnCreateContextMenuListener(this);
mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
mListView.setOnItemClickListener(this);
- mListView.setEmptyView((ScrollView) findViewById(android.R.id.empty));
+ // Don't set it to mListView yet. We do so later when we bind the adapter.
+ mEmptyView = findViewById(android.R.id.empty);
mResolver = getContentResolver();
@@ -434,6 +445,7 @@
} else {
mAdapter.setSections(mSections, SHOW_SEPARATORS);
}
+ mListView.setEmptyView(mEmptyView);
}
@Override
@@ -893,6 +905,18 @@
entry.uri = null;
entry.maxLines = 10;
mOtherEntries.add(entry);
+ } else if (Website.CONTENT_ITEM_TYPE.equals(mimeType) && hasData) {
+ // Build note entries
+ entry.uri = null;
+ entry.maxLines = 10;
+ try {
+ WebAddress webAddress = new WebAddress(entry.data);
+ entry.intent = new Intent(Intent.ACTION_VIEW,
+ Uri.parse(webAddress.toString()));
+ } catch (ParseException e) {
+ Log.e(TAG, "Couldn't parse website: " + entry.data);
+ }
+ mOtherEntries.add(entry);
} else {
// Handle showing custom rows
entry.intent = new Intent(Intent.ACTION_VIEW, entry.uri);
@@ -1040,39 +1064,19 @@
return false;
}
- if (Phone.CONTENT_ITEM_TYPE.equals(mimetype)
- && Phone.CONTENT_ITEM_TYPE.equals(entry.mimetype)) {
- if (!PhoneNumberUtils.compare(this.context, data, entry.data)) {
- return false;
- }
- } else {
- if (!equals(data, entry.data)) {
- return false;
- }
+ if (!ContactsUtils.areDataEqual(context, mimetype, data, entry.mimetype, entry.data)) {
+ return false;
}
- if (!equals(mimetype, entry.mimetype)
- || !intentCollapsible(intent, entry.intent)
- || !intentCollapsible(secondaryIntent, entry.secondaryIntent)
+ if (!TextUtils.equals(mimetype, entry.mimetype)
+ || !ContactsUtils.areIntentActionEqual(intent, entry.intent)
+ || !ContactsUtils.areIntentActionEqual(secondaryIntent, entry.secondaryIntent)
|| actionIcon != entry.actionIcon) {
return false;
}
return true;
}
-
- private boolean equals(Object a, Object b) {
- return a==b || (a != null && a.equals(b));
- }
-
- private boolean intentCollapsible(Intent a, Intent b) {
- if (a == b) {
- return true;
- } else if ((a != null && b != null) && equals(a.getAction(), b.getAction())) {
- return true;
- }
- return false;
- }
}
/** Cache of the children views of a row */
diff --git a/src/com/android/contacts/model/Editor.java b/src/com/android/contacts/model/Editor.java
index b3e8443..473f0d3 100644
--- a/src/com/android/contacts/model/Editor.java
+++ b/src/com/android/contacts/model/Editor.java
@@ -18,6 +18,7 @@
import com.android.contacts.model.ContactsSource.DataKind;
import com.android.contacts.model.EntityDelta.ValuesDelta;
+import com.android.contacts.ui.ViewIdGenerator;
import android.provider.ContactsContract.Data;
@@ -50,7 +51,8 @@
* builds any needed views. Any changes performed by the user will be
* written back to that same object.
*/
- public void setValues(DataKind kind, ValuesDelta values, EntityDelta state, boolean readOnly);
+ public void setValues(DataKind kind, ValuesDelta values, EntityDelta state, boolean readOnly,
+ ViewIdGenerator vig);
/**
* Add a specific {@link EditorListener} to this {@link Editor}.
diff --git a/src/com/android/contacts/model/EntityDelta.java b/src/com/android/contacts/model/EntityDelta.java
index ae30806..1f152e1 100644
--- a/src/com/android/contacts/model/EntityDelta.java
+++ b/src/com/android/contacts/model/EntityDelta.java
@@ -571,14 +571,6 @@
return getAsLong(mIdColumn);
}
- /**
- * Return a valid integer value suitable for {@link View#setId(int)}.
- */
- public int getViewId() {
- final Long id = this.getId();
- return (id == null) ? View.NO_ID : id.intValue();
- }
-
public void setIdColumn(String idColumn) {
mIdColumn = idColumn;
}
diff --git a/src/com/android/contacts/model/EntityModifier.java b/src/com/android/contacts/model/EntityModifier.java
index fb3eba7..2e6899e 100644
--- a/src/com/android/contacts/model/EntityModifier.java
+++ b/src/com/android/contacts/model/EntityModifier.java
@@ -33,12 +33,13 @@
import android.provider.ContactsContract.CommonDataKinds.BaseTypes;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Note;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.Photo;
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
import android.provider.ContactsContract.Intents.Insert;
-import android.provider.ContactsContract;
import android.text.TextUtils;
import android.util.Log;
import android.util.SparseIntArray;
@@ -484,6 +485,36 @@
fixupLegacyImType(extras);
parseExtras(state, kind, extras, Insert.IM_PROTOCOL, Insert.IM_HANDLE, Im.DATA);
}
+
+ // Organization
+ final boolean hasOrg = extras.containsKey(Insert.COMPANY)
+ || extras.containsKey(Insert.JOB_TITLE);
+ final DataKind kindOrg = source.getKindForMimetype(Organization.CONTENT_ITEM_TYPE);
+ if (hasOrg && EntityModifier.canInsert(state, kindOrg)) {
+ final ValuesDelta child = EntityModifier.insertChild(state, kindOrg);
+
+ final String company = extras.getString(Insert.COMPANY);
+ if (ContactsUtils.isGraphic(company)) {
+ child.put(Organization.COMPANY, company);
+ }
+
+ final String title = extras.getString(Insert.JOB_TITLE);
+ if (ContactsUtils.isGraphic(title)) {
+ child.put(Organization.TITLE, title);
+ }
+ }
+
+ // Notes
+ final boolean hasNotes = extras.containsKey(Insert.NOTES);
+ final DataKind kindNotes = source.getKindForMimetype(Note.CONTENT_ITEM_TYPE);
+ if (hasNotes && EntityModifier.canInsert(state, kindNotes)) {
+ final ValuesDelta child = EntityModifier.insertChild(state, kindNotes);
+
+ final String notes = extras.getString(Insert.NOTES);
+ if (ContactsUtils.isGraphic(notes)) {
+ child.put(Note.NOTE, notes);
+ }
+ }
}
/**
diff --git a/src/com/android/contacts/model/ExchangeSource.java b/src/com/android/contacts/model/ExchangeSource.java
index b46824c..b26bdeb 100644
--- a/src/com/android/contacts/model/ExchangeSource.java
+++ b/src/com/android/contacts/model/ExchangeSource.java
@@ -32,6 +32,8 @@
import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
import android.provider.ContactsContract.CommonDataKinds.Website;
+import java.util.Locale;
+
public class ExchangeSource extends FallbackSource {
public static final String ACCOUNT_TYPE = "com.android.exchange";
@@ -64,23 +66,40 @@
final DataKind kind = super.inflateStructuredName(ContactsSource.LEVEL_MIMETYPES);
if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) {
+ final boolean useJapaneseOrder =
+ Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage());
kind.typeOverallMax = 1;
kind.fieldList = Lists.newArrayList();
kind.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix,
FLAGS_PERSON_NAME).setOptional(true));
- kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
- FLAGS_PERSON_NAME));
- kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
- FLAGS_PERSON_NAME).setOptional(true));
- kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
- FLAGS_PERSON_NAME));
- kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
- FLAGS_PERSON_NAME).setOptional(true));
- kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
- R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true));
- kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
- R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true));
+ if (useJapaneseOrder) {
+ kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME,
+ R.string.name_family, FLAGS_PERSON_NAME));
+ kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME,
+ R.string.name_middle, FLAGS_PERSON_NAME).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME,
+ R.string.name_given, FLAGS_PERSON_NAME));
+ kind.fieldList.add(new EditField(StructuredName.SUFFIX,
+ R.string.name_suffix, FLAGS_PERSON_NAME).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+ R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+ R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true));
+ } else {
+ kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME,
+ R.string.name_given, FLAGS_PERSON_NAME));
+ kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME,
+ R.string.name_middle, FLAGS_PERSON_NAME).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME,
+ R.string.name_family, FLAGS_PERSON_NAME));
+ kind.fieldList.add(new EditField(StructuredName.SUFFIX,
+ R.string.name_suffix, FLAGS_PERSON_NAME).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+ R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+ R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true));
+ }
}
return kind;
@@ -152,6 +171,8 @@
final DataKind kind = super.inflateStructuredPostal(ContactsSource.LEVEL_MIMETYPES);
if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) {
+ final boolean useJapaneseOrder =
+ Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage());
kind.typeColumn = StructuredPostal.TYPE;
kind.typeList = Lists.newArrayList();
kind.typeList.add(buildPostalType(StructuredPostal.TYPE_WORK).setSpecificMax(1));
@@ -159,16 +180,29 @@
kind.typeList.add(buildPostalType(StructuredPostal.TYPE_OTHER).setSpecificMax(1));
kind.fieldList = Lists.newArrayList();
- kind.fieldList.add(new EditField(StructuredPostal.STREET, R.string.postal_street,
- FLAGS_POSTAL));
- kind.fieldList.add(new EditField(StructuredPostal.CITY, R.string.postal_city,
- FLAGS_POSTAL));
- kind.fieldList.add(new EditField(StructuredPostal.REGION, R.string.postal_region,
- FLAGS_POSTAL));
- kind.fieldList.add(new EditField(StructuredPostal.POSTCODE, R.string.postal_postcode,
- FLAGS_POSTAL));
- kind.fieldList.add(new EditField(StructuredPostal.COUNTRY, R.string.postal_country,
- FLAGS_POSTAL).setOptional(true));
+ if (useJapaneseOrder) {
+ kind.fieldList.add(new EditField(StructuredPostal.COUNTRY,
+ R.string.postal_country, FLAGS_POSTAL).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredPostal.POSTCODE,
+ R.string.postal_postcode, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.REGION,
+ R.string.postal_region, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.CITY,
+ R.string.postal_city,FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.STREET,
+ R.string.postal_street, FLAGS_POSTAL));
+ } else {
+ kind.fieldList.add(new EditField(StructuredPostal.STREET,
+ R.string.postal_street, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.CITY,
+ R.string.postal_city,FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.REGION,
+ R.string.postal_region, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.POSTCODE,
+ R.string.postal_postcode, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.COUNTRY,
+ R.string.postal_country, FLAGS_POSTAL).setOptional(true));
+ }
}
return kind;
diff --git a/src/com/android/contacts/model/FallbackSource.java b/src/com/android/contacts/model/FallbackSource.java
index ca405eb..8c3a9d2 100644
--- a/src/com/android/contacts/model/FallbackSource.java
+++ b/src/com/android/contacts/model/FallbackSource.java
@@ -16,9 +16,6 @@
package com.android.contacts.model;
-import com.android.contacts.R;
-import com.google.android.collect.Lists;
-
import android.content.ContentValues;
import android.content.Context;
import android.content.res.Resources;
@@ -35,9 +32,15 @@
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
import android.provider.ContactsContract.CommonDataKinds.Website;
-import android.text.TextUtils;
+import android.util.Log;
import android.view.inputmethod.EditorInfo;
+import com.google.android.collect.Lists;
+
+import com.android.contacts.R;
+
+import java.util.Locale;
+
public class FallbackSource extends ContactsSource {
protected static final int FLAGS_PHONE = EditorInfo.TYPE_CLASS_PHONE;
protected static final int FLAGS_EMAIL = EditorInfo.TYPE_CLASS_TEXT
@@ -109,23 +112,42 @@
}
if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) {
+ final boolean useJapaneseOrder =
+ Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage());
kind.fieldList = Lists.newArrayList();
kind.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix,
FLAGS_PERSON_NAME).setOptional(true));
- kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
- FLAGS_PERSON_NAME));
- kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
- FLAGS_PERSON_NAME).setOptional(true));
- kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
- FLAGS_PERSON_NAME));
- kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
- FLAGS_PERSON_NAME).setOptional(true));
- kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
- R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true));
- kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
- R.string.name_phonetic_middle, FLAGS_PHONETIC).setOptional(true));
- kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
- R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true));
+ if (useJapaneseOrder) {
+ kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+ FLAGS_PERSON_NAME));
+ kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
+ FLAGS_PERSON_NAME).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+ FLAGS_PERSON_NAME));
+ kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
+ FLAGS_PERSON_NAME).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+ R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
+ R.string.name_phonetic_middle, FLAGS_PHONETIC).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+ R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true));
+ } else {
+ kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+ FLAGS_PERSON_NAME));
+ kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
+ FLAGS_PERSON_NAME).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+ FLAGS_PERSON_NAME));
+ kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
+ FLAGS_PERSON_NAME).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+ R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
+ R.string.name_phonetic_middle, FLAGS_PHONETIC).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+ R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true));
+ }
}
return kind;
@@ -234,6 +256,8 @@
}
if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) {
+ final boolean useJapaneseOrder =
+ Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage());
kind.typeColumn = StructuredPostal.TYPE;
kind.typeList = Lists.newArrayList();
kind.typeList.add(buildPostalType(StructuredPostal.TYPE_HOME));
@@ -243,20 +267,38 @@
.setCustomColumn(StructuredPostal.LABEL));
kind.fieldList = Lists.newArrayList();
- kind.fieldList.add(new EditField(StructuredPostal.STREET, R.string.postal_street,
- FLAGS_POSTAL));
- kind.fieldList.add(new EditField(StructuredPostal.POBOX, R.string.postal_pobox,
- FLAGS_POSTAL).setOptional(true));
- kind.fieldList.add(new EditField(StructuredPostal.NEIGHBORHOOD,
- R.string.postal_neighborhood, FLAGS_POSTAL).setOptional(true));
- kind.fieldList.add(new EditField(StructuredPostal.CITY, R.string.postal_city,
- FLAGS_POSTAL));
- kind.fieldList.add(new EditField(StructuredPostal.REGION, R.string.postal_region,
- FLAGS_POSTAL));
- kind.fieldList.add(new EditField(StructuredPostal.POSTCODE, R.string.postal_postcode,
- FLAGS_POSTAL));
- kind.fieldList.add(new EditField(StructuredPostal.COUNTRY, R.string.postal_country,
- FLAGS_POSTAL).setOptional(true));
+
+ if (useJapaneseOrder) {
+ kind.fieldList.add(new EditField(StructuredPostal.COUNTRY,
+ R.string.postal_country, FLAGS_POSTAL).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredPostal.POSTCODE,
+ R.string.postal_postcode, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.REGION,
+ R.string.postal_region, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.CITY,
+ R.string.postal_city, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.NEIGHBORHOOD,
+ R.string.postal_neighborhood, FLAGS_POSTAL).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredPostal.STREET,
+ R.string.postal_street, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.POBOX,
+ R.string.postal_pobox, FLAGS_POSTAL).setOptional(true));
+ } else {
+ kind.fieldList.add(new EditField(StructuredPostal.STREET,
+ R.string.postal_street, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.POBOX,
+ R.string.postal_pobox, FLAGS_POSTAL).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredPostal.NEIGHBORHOOD,
+ R.string.postal_neighborhood, FLAGS_POSTAL).setOptional(true));
+ kind.fieldList.add(new EditField(StructuredPostal.CITY,
+ R.string.postal_city, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.REGION,
+ R.string.postal_region, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.POSTCODE,
+ R.string.postal_postcode, FLAGS_POSTAL));
+ kind.fieldList.add(new EditField(StructuredPostal.COUNTRY,
+ R.string.postal_country, FLAGS_POSTAL).setOptional(true));
+ }
}
return kind;
@@ -267,6 +309,7 @@
if (kind == null) {
kind = addKind(new DataKind(Im.CONTENT_ITEM_TYPE, R.string.imLabelsGroup,
android.R.drawable.sym_action_chat, 20, true));
+ kind.secondary = true;
kind.actionHeader = new ImActionInflater();
kind.actionBody = new SimpleInflater(Im.DATA);
}
diff --git a/src/com/android/contacts/model/Sources.java b/src/com/android/contacts/model/Sources.java
index f664fb1..b6422fb 100644
--- a/src/com/android/contacts/model/Sources.java
+++ b/src/com/android/contacts/model/Sources.java
@@ -42,6 +42,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Locale;
/**
* Singleton holder for all parsed {@link ContactsSource} available on the
@@ -87,12 +88,17 @@
queryAccounts();
// Request updates when packages or accounts change
- final IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
+ IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
filter.addDataScheme("package");
-
mApplicationContext.registerReceiver(this, filter);
+
+ // Request updates when locale is changed so that the order of each field will
+ // be able to be changed on the locale change.
+ filter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED);
+ mApplicationContext.registerReceiver(this, filter);
+
mAccountManager.addOnAccountsUpdatedListener(this, null, false);
}
@@ -112,11 +118,11 @@
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
- final String packageName = intent.getData().getSchemeSpecificPart();
if (Intent.ACTION_PACKAGE_REMOVED.equals(action)
|| Intent.ACTION_PACKAGE_ADDED.equals(action)
|| Intent.ACTION_PACKAGE_CHANGED.equals(action)) {
+ final String packageName = intent.getData().getSchemeSpecificPart();
final boolean knownPackage = mKnownPackages.contains(packageName);
if (knownPackage) {
// Invalidate cache of existing source
@@ -125,6 +131,8 @@
// Unknown source, so reload from scratch
queryAccounts();
}
+ } else if (Intent.ACTION_LOCALE_CHANGED.equals(action)) {
+ invalidateAllCache();
}
}
@@ -137,6 +145,13 @@
}
}
+ protected void invalidateAllCache() {
+ mFallbackSource.invalidateCache();
+ for (ContactsSource source : mSources.values()) {
+ source.invalidateCache();
+ }
+ }
+
/** {@inheritDoc} */
public void onAccountsUpdated(Account[] accounts) {
// Refresh to catch any changed accounts
@@ -233,6 +248,8 @@
* Find the best {@link DataKind} matching the requested
* {@link ContactsSource#accountType} and {@link DataKind#mimeType}. If no
* direct match found, we try searching {@link #mFallbackSource}.
+ * When fourceRefresh is set to true, cache is refreshed and inflation of each
+ * EditField will occur.
*/
public DataKind getKindOrFallback(String accountType, String mimeType, Context context,
int inflateLevel) {
diff --git a/src/com/android/contacts/ui/DisplayGroupsActivity.java b/src/com/android/contacts/ui/DisplayGroupsActivity.java
index ce68dcb..9ac46ce 100644
--- a/src/com/android/contacts/ui/DisplayGroupsActivity.java
+++ b/src/com/android/contacts/ui/DisplayGroupsActivity.java
@@ -334,7 +334,15 @@
*/
private static Comparator<GroupDelta> sIdComparator = new Comparator<GroupDelta>() {
public int compare(GroupDelta object1, GroupDelta object2) {
- return object1.getViewId() - object2.getViewId();
+ final long id1 = object1.getId();
+ final long id2 = object2.getId();
+ if (id1 < id2) {
+ return -1;
+ } else if (id1 > id2) {
+ return 1;
+ } else {
+ return 0;
+ }
}
};
diff --git a/src/com/android/contacts/ui/EditContactActivity.java b/src/com/android/contacts/ui/EditContactActivity.java
index 8368714..269e63b 100644
--- a/src/com/android/contacts/ui/EditContactActivity.java
+++ b/src/com/android/contacts/ui/EditContactActivity.java
@@ -30,6 +30,7 @@
import com.android.contacts.model.Editor.EditorListener;
import com.android.contacts.model.EntityDelta.ValuesDelta;
import com.android.contacts.ui.widget.BaseContactEditorView;
+import com.android.contacts.ui.widget.ContactEditorView;
import com.android.contacts.ui.widget.PhotoEditorView;
import com.android.contacts.util.EmptyService;
import com.android.contacts.util.WeakAsyncTask;
@@ -99,6 +100,7 @@
private static final String KEY_EDIT_STATE = "state";
private static final String KEY_RAW_CONTACT_ID_REQUESTING_PHOTO = "photorequester";
+ private static final String KEY_VIEW_ID_GENERATOR = "viewidgenerator";
/** The result code when view activity should close after edit returns */
public static final int RESULT_CLOSE_VIEW_ACTIVITY = 777;
@@ -124,6 +126,8 @@
private ArrayList<Dialog> mManagedDialogs = Lists.newArrayList();
+ private ViewIdGenerator mViewIdGenerator;
+
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -143,12 +147,19 @@
final boolean hasIncomingState = icicle != null && icicle.containsKey(KEY_EDIT_STATE);
if (Intent.ACTION_EDIT.equals(action) && !hasIncomingState) {
+ setTitle(R.string.editContact_title_edit);
// Read initial state from database
new QueryEntitiesTask(this).execute(intent);
} else if (Intent.ACTION_INSERT.equals(action) && !hasIncomingState) {
+ setTitle(R.string.editContact_title_insert);
// Trigger dialog to pick account type
doAddAction();
}
+
+ if (icicle == null) {
+ // If icicle is non-null, onRestoreInstanceState() will restore the generator.
+ mViewIdGenerator = new ViewIdGenerator();
+ }
}
private static class QueryEntitiesTask extends
@@ -223,6 +234,7 @@
}
outState.putLong(KEY_RAW_CONTACT_ID_REQUESTING_PHOTO, mRawContactIdRequestingPhoto);
+ outState.putParcelable(KEY_VIEW_ID_GENERATOR, mViewIdGenerator);
super.onSaveInstanceState(outState);
}
@@ -232,6 +244,7 @@
mState = savedInstanceState.<EntitySet> getParcelable(KEY_EDIT_STATE);
mRawContactIdRequestingPhoto = savedInstanceState.getLong(
KEY_RAW_CONTACT_ID_REQUESTING_PHOTO);
+ mViewIdGenerator = savedInstanceState.getParcelable(KEY_VIEW_ID_GENERATOR);
bindEditors();
super.onRestoreInstanceState(savedInstanceState);
@@ -357,7 +370,7 @@
photoEditor));
mContent.addView(editor);
- editor.setState(entity, source);
+ editor.setState(entity, source, mViewIdGenerator);
}
// Show editor now that we've loaded state
diff --git a/src/com/android/contacts/ui/QuickContactWindow.java b/src/com/android/contacts/ui/QuickContactWindow.java
index 132b18c..e1ff0e3 100644
--- a/src/com/android/contacts/ui/QuickContactWindow.java
+++ b/src/com/android/contacts/ui/QuickContactWindow.java
@@ -16,6 +16,7 @@
package com.android.contacts.ui;
+import com.android.contacts.Collapser;
import com.android.contacts.ContactsUtils;
import com.android.contacts.R;
import com.android.contacts.model.ContactsSource;
@@ -85,6 +86,7 @@
import android.widget.Toast;
import java.lang.ref.SoftReference;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
@@ -650,7 +652,7 @@
* Abstract definition of an action that could be performed, along with
* string description and icon.
*/
- private interface Action {
+ private interface Action extends Collapser.Collapsible<Action> {
public CharSequence getHeader();
public CharSequence getBody();
@@ -836,6 +838,39 @@
public Intent getIntent() {
return mIntent;
}
+
+ /** {@inheritDoc} */
+ public boolean collapseWith(Action other) {
+ if (!shouldCollapseWith(other)) {
+ return false;
+ }
+ return true;
+ }
+
+ /** {@inheritDoc} */
+ public boolean shouldCollapseWith(Action t) {
+ if (t == null) {
+ return false;
+ }
+ if (!(t instanceof DataAction)) {
+ Log.e(TAG, "t must be DataAction");
+ return false;
+ }
+ DataAction other = (DataAction)t;
+ if (!ContactsUtils.areObjectsEqual(mKind, other.mKind)) {
+ return false;
+ }
+ if (!ContactsUtils.areDataEqual(mContext, mMimeType, mBody, other.mMimeType,
+ other.mBody)) {
+ return false;
+ }
+ if (!TextUtils.equals(mMimeType, other.mMimeType)
+ || !ContactsUtils.areIntentActionEqual(mIntent, other.mIntent)
+ ) {
+ return false;
+ }
+ return true;
+ }
}
/**
@@ -887,6 +922,15 @@
return null;
}
+ /** {@inheritDoc} */
+ public boolean collapseWith(Action t) {
+ return false; // Never dup.
+ }
+
+ /** {@inheritDoc} */
+ public boolean shouldCollapseWith(Action t) {
+ return false; // Never dup.
+ }
}
/**
@@ -1029,7 +1073,7 @@
* Provide a strongly-typed {@link LinkedList} that holds a list of
* {@link Action} objects.
*/
- private class ActionList extends LinkedList<Action> {
+ private class ActionList extends ArrayList<Action> {
}
/**
@@ -1208,8 +1252,8 @@
}
/**
- * Inflate the in-track view for the action of the given MIME-type. Will use
- * the icon provided by the {@link DataKind}.
+ * Inflate the in-track view for the action of the given MIME-type, collapsing duplicate values.
+ * Will use the icon provided by the {@link DataKind}.
*/
private View inflateAction(String mimeType) {
final CheckableImageView view = (CheckableImageView)obtainView();
@@ -1217,6 +1261,9 @@
// Add direct intent if single child, otherwise flag for multiple
ActionList children = mActions.get(mimeType);
+ if (children.size() > 1) {
+ Collapser.collapseList(children);
+ }
Action firstInfo = children.get(0);
if (children.size() == 1) {
view.setTag(firstInfo);
diff --git a/src/com/android/contacts/ui/ViewIdGenerator.java b/src/com/android/contacts/ui/ViewIdGenerator.java
new file mode 100644
index 0000000..f7281d4
--- /dev/null
+++ b/src/com/android/contacts/ui/ViewIdGenerator.java
@@ -0,0 +1,133 @@
+/*
+ * 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.ui;
+
+import com.android.contacts.model.EntityDelta;
+import com.android.contacts.model.ContactsSource.DataKind;
+import com.android.contacts.model.EntityDelta.ValuesDelta;
+import com.android.contacts.ui.widget.GenericEditorView;
+import com.android.contacts.ui.widget.KindSectionView;
+
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * A class that provides unique view ids for {@link ContentEditorView}, {@link KindSectionView},
+ * {@link GenericEditorView} and {@link EditView} on {@link EditContactActivity}.
+ * It is used to assign a unique but consistent id to each view across {@link EditContactActivity}'s
+ * lifecycle, so that we can re-construct view state (e.g. focused view) when the screen rotates.
+ *
+ * <p>This class is not thread safe.
+ */
+public final class ViewIdGenerator implements Parcelable {
+ private static final int INVALID_VIEW_ID = 0;
+ private static final int INITIAL_VIEW_ID = 1;
+
+ public static final int NO_VIEW_INDEX = -1;
+
+ private int mNextId;
+
+ /**
+ * Used as a map from the "key" of the views to actual ids. {@link #getId()} generates keys for
+ * the views.
+ */
+ private Bundle mIdMap = new Bundle();
+
+ private static final char KEY_SEPARATOR = '*';
+
+ private final static StringBuilder sWorkStringBuilder = new StringBuilder();
+
+ public ViewIdGenerator() {
+ mNextId = INITIAL_VIEW_ID;
+ }
+
+ /** {@inheritDoc} */
+ public int describeContents() {
+ return 0;
+ }
+
+ /**
+ * Returns an id for a view associated with specified contact field.
+ *
+ * @param entity {@link EntityDelta} associated with the view
+ * @param kind {@link DataKind} associated with the view, or null if none exists.
+ * @param values {@link ValuesDelta} associated with the view, or null if none exists.
+ * @param viewIndex index of the view in the parent {@link Editor}, if it's a leave view.
+ * Otherwise, pass {@link #NO_VIEW_INDEX}.
+ */
+ public int getId(EntityDelta entity, DataKind kind, ValuesDelta values,
+ int viewIndex) {
+ final String k = getMapKey(entity, kind, values, viewIndex);
+
+ int id = mIdMap.getInt(k, INVALID_VIEW_ID);
+ if (id == INVALID_VIEW_ID) {
+ // Make sure the new id won't conflict with auto-generated ids by masking with 0xffff.
+ id = (mNextId++) & 0xFFFF;
+ mIdMap.putInt(k, id);
+ }
+ return id;
+ }
+
+ private static String getMapKey(EntityDelta entity, DataKind kind, ValuesDelta values,
+ int viewIndex) {
+ sWorkStringBuilder.setLength(0);
+ if (entity != null) {
+ sWorkStringBuilder.append(entity.getValues().getId());
+
+ if (kind != null) {
+ sWorkStringBuilder.append(KEY_SEPARATOR);
+ sWorkStringBuilder.append(kind.mimeType);
+
+ if (values != null) {
+ sWorkStringBuilder.append(KEY_SEPARATOR);
+ sWorkStringBuilder.append(values.getId());
+
+ if (viewIndex != NO_VIEW_INDEX) {
+ sWorkStringBuilder.append(KEY_SEPARATOR);
+ sWorkStringBuilder.append(viewIndex);
+ }
+ }
+ }
+ }
+ return sWorkStringBuilder.toString();
+ }
+
+ /** {@Override} */
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeInt(mNextId);
+ dest.writeBundle(mIdMap);
+ }
+
+ private void readFromParcel(Parcel src) {
+ mNextId = src.readInt();
+ mIdMap = src.readBundle();
+ }
+
+ public static final Parcelable.Creator<ViewIdGenerator> CREATOR =
+ new Parcelable.Creator<ViewIdGenerator>() {
+ public ViewIdGenerator createFromParcel(Parcel in) {
+ final ViewIdGenerator vig = new ViewIdGenerator();
+ vig.readFromParcel(in);
+ return vig;
+ }
+
+ public ViewIdGenerator[] newArray(int size) {
+ return new ViewIdGenerator[size];
+ }
+ };
+}
diff --git a/src/com/android/contacts/ui/widget/BaseContactEditorView.java b/src/com/android/contacts/ui/widget/BaseContactEditorView.java
index 189e2d5..c2f9136 100644
--- a/src/com/android/contacts/ui/widget/BaseContactEditorView.java
+++ b/src/com/android/contacts/ui/widget/BaseContactEditorView.java
@@ -22,6 +22,7 @@
import com.android.contacts.model.ContactsSource.EditType;
import com.android.contacts.model.Editor.EditorListener;
import com.android.contacts.model.EntityDelta.ValuesDelta;
+import com.android.contacts.ui.ViewIdGenerator;
import android.content.Context;
import android.content.Entity;
@@ -95,7 +96,7 @@
* {@link EntityDelta} state and the {@link ContactsSource} that
* apply to that state.
*/
- public abstract void setState(EntityDelta state, ContactsSource source);
+ public abstract void setState(EntityDelta state, ContactsSource source, ViewIdGenerator vig);
/**
* Sets the {@link EditorListener} on the name field
diff --git a/src/com/android/contacts/ui/widget/ContactEditorView.java b/src/com/android/contacts/ui/widget/ContactEditorView.java
index 1720822..69ec344 100644
--- a/src/com/android/contacts/ui/widget/ContactEditorView.java
+++ b/src/com/android/contacts/ui/widget/ContactEditorView.java
@@ -24,11 +24,14 @@
import com.android.contacts.model.ContactsSource.EditType;
import com.android.contacts.model.Editor.EditorListener;
import com.android.contacts.model.EntityDelta.ValuesDelta;
+import com.android.contacts.ui.ViewIdGenerator;
import android.content.Context;
import android.content.Entity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
+import android.os.Parcel;
+import android.os.Parcelable;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
@@ -61,6 +64,7 @@
private View mPhotoStub;
private GenericEditorView mName;
+ private boolean mIsSourceReadOnly;
private ViewGroup mGeneral;
private ViewGroup mSecondary;
private boolean mSecondaryVisible;
@@ -135,12 +139,22 @@
/**
* Set the visibility of secondary sections, along with header icon.
+ *
+ * <p>If the source is read-only and there's no secondary fields, the entire secondary section
+ * will be hidden.
*/
private void setSecondaryVisible(boolean makeVisible) {
- mSecondary.setVisibility(makeVisible ? View.VISIBLE : View.GONE);
- mSecondaryHeader.setCompoundDrawablesWithIntrinsicBounds(makeVisible ? mSecondaryOpen
- : mSecondaryClosed, null, null, null);
mSecondaryVisible = makeVisible;
+
+ if (!mIsSourceReadOnly && mSecondary.getChildCount() > 0) {
+ mSecondary.setVisibility(makeVisible ? View.VISIBLE : View.GONE);
+ mSecondaryHeader.setCompoundDrawablesWithIntrinsicBounds(
+ makeVisible ? mSecondaryOpen : mSecondaryClosed, null, null, null);
+ } else {
+ mSecondaryHeader.setVisibility(View.GONE);
+ mSecondary.setVisibility(View.GONE);
+
+ }
}
/**
@@ -149,7 +163,7 @@
* apply to that state.
*/
@Override
- public void setState(EntityDelta state, ContactsSource source) {
+ public void setState(EntityDelta state, ContactsSource source, ViewIdGenerator vig) {
// Remove any existing sections
mGeneral.removeAllViews();
mSecondary.removeAllViews();
@@ -157,6 +171,10 @@
// Bail if invalid state or source
if (state == null || source == null) return;
+ setId(vig.getId(state, null, null, ViewIdGenerator.NO_VIEW_INDEX));
+
+ mIsSourceReadOnly = source.readOnly;
+
// Make sure we have StructuredName
EntityModifier.ensureKindExists(state, source, StructuredName.CONTENT_ITEM_TYPE);
@@ -180,12 +198,11 @@
EntityModifier.ensureKindExists(state, source, Photo.CONTENT_ITEM_TYPE);
mHasPhotoEditor = (source.getKindForMimetype(Photo.CONTENT_ITEM_TYPE) != null);
mPhoto.setVisibility(mHasPhotoEditor ? View.VISIBLE : View.GONE);
- mPhoto.setEnabled(!source.readOnly);
- mName.setEnabled(!source.readOnly);
+ mPhoto.setEnabled(!mIsSourceReadOnly);
+ mName.setEnabled(!mIsSourceReadOnly);
- boolean readOnly = source.readOnly;
// Show and hide the appropriate views
- if (readOnly) {
+ if (mIsSourceReadOnly) {
mGeneral.setVisibility(View.GONE);
mName.setVisibility(View.GONE);
mReadOnly.setVisibility(View.VISIBLE);
@@ -207,8 +224,8 @@
if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
// Handle special case editor for structured name
final ValuesDelta primary = state.getPrimaryEntry(mimeType);
- if (!readOnly) {
- mName.setValues(kind, primary, state, source.readOnly);
+ if (!mIsSourceReadOnly) {
+ mName.setValues(kind, primary, state, mIsSourceReadOnly, vig);
} else {
String displayName = primary.getAsString(StructuredName.DISPLAY_NAME);
mReadOnlyName.setText(displayName);
@@ -216,37 +233,24 @@
} else if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) {
// Handle special case editor for photos
final ValuesDelta primary = state.getPrimaryEntry(mimeType);
- mPhoto.setValues(kind, primary, state, source.readOnly);
- if (readOnly && !mPhoto.hasSetPhoto()) {
+ mPhoto.setValues(kind, primary, state, mIsSourceReadOnly, vig);
+ if (mIsSourceReadOnly && !mPhoto.hasSetPhoto()) {
mPhotoStub.setVisibility(View.GONE);
} else {
mPhotoStub.setVisibility(View.VISIBLE);
}
- } else if (!readOnly) {
+ } else if (!mIsSourceReadOnly) {
// Otherwise use generic section-based editors
if (kind.fieldList == null) continue;
final ViewGroup parent = kind.secondary ? mSecondary : mGeneral;
final KindSectionView section = (KindSectionView)mInflater.inflate(
R.layout.item_kind_section, parent, false);
- section.setState(kind, state, source.readOnly);
- section.setId(kind.weight);
+ section.setState(kind, state, mIsSourceReadOnly, vig);
parent.addView(section);
}
}
- if (!readOnly && mSecondary.getChildCount() > 0) {
- // There exist secondary elements, show the header and honor mSecondaryVisible
- mSecondaryHeader.setVisibility(View.VISIBLE);
- if (mSecondaryVisible) {
- mSecondary.setVisibility(View.VISIBLE);
- } else {
- mSecondary.setVisibility(View.GONE);
- }
- } else {
- // There are no secondary elements, hide the whole thing
- mSecondaryHeader.setVisibility(View.GONE);
- mSecondary.setVisibility(View.GONE);
- }
+ setSecondaryVisible(mSecondaryVisible);
}
/**
@@ -261,4 +265,57 @@
public long getRawContactId() {
return mRawContactId;
}
+
+ private static class SavedState extends BaseSavedState {
+ public boolean mSecondaryVisible;
+
+ SavedState(Parcelable superState) {
+ super(superState);
+ }
+
+ private SavedState(Parcel in) {
+ super(in);
+ mSecondaryVisible = (in.readInt() == 0 ? false : true);
+ }
+
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ super.writeToParcel(out, flags);
+ out.writeInt(mSecondaryVisible ? 1 : 0);
+ }
+
+ public static final Parcelable.Creator<SavedState> CREATOR
+ = new Parcelable.Creator<SavedState>() {
+ public SavedState createFromParcel(Parcel in) {
+ return new SavedState(in);
+ }
+
+ public SavedState[] newArray(int size) {
+ return new SavedState[size];
+ }
+ };
+ }
+
+ /**
+ * Saves the visibility of the secondary field.
+ */
+ @Override
+ protected Parcelable onSaveInstanceState() {
+ Parcelable superState = super.onSaveInstanceState();
+ SavedState ss = new SavedState(superState);
+
+ ss.mSecondaryVisible = mSecondaryVisible;
+ return ss;
+ }
+
+ /**
+ * Restores the visibility of the secondary field.
+ */
+ @Override
+ protected void onRestoreInstanceState(Parcelable state) {
+ SavedState ss = (SavedState) state;
+ super.onRestoreInstanceState(ss.getSuperState());
+
+ setSecondaryVisible(ss.mSecondaryVisible);
+ }
}
diff --git a/src/com/android/contacts/ui/widget/GenericEditorView.java b/src/com/android/contacts/ui/widget/GenericEditorView.java
index e1fdd71..97183e2 100644
--- a/src/com/android/contacts/ui/widget/GenericEditorView.java
+++ b/src/com/android/contacts/ui/widget/GenericEditorView.java
@@ -25,12 +25,15 @@
import com.android.contacts.model.ContactsSource.EditField;
import com.android.contacts.model.ContactsSource.EditType;
import com.android.contacts.model.EntityDelta.ValuesDelta;
+import com.android.contacts.ui.ViewIdGenerator;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Entity;
+import android.os.Parcel;
+import android.os.Parcelable;
import android.telephony.PhoneNumberFormattingTextWatcher;
import android.text.Editable;
import android.text.InputType;
@@ -79,6 +82,8 @@
// Used only when a user tries to use custom label.
private EditType mPendingType;
+ private ViewIdGenerator mViewIdGenerator;
+
public GenericEditorView(Context context) {
super(context);
}
@@ -160,18 +165,21 @@
}
private void rebuildValues() {
- setValues(mKind, mEntry, mState, mReadOnly);
+ setValues(mKind, mEntry, mState, mReadOnly, mViewIdGenerator);
}
/**
* Prepare this editor using the given {@link DataKind} for defining
* structure and {@link ValuesDelta} describing the content to edit.
*/
- public void setValues(DataKind kind, ValuesDelta entry, EntityDelta state, boolean readOnly) {
+ public void setValues(DataKind kind, ValuesDelta entry, EntityDelta state, boolean readOnly,
+ ViewIdGenerator vig) {
mKind = kind;
mEntry = entry;
mState = state;
mReadOnly = readOnly;
+ mViewIdGenerator = vig;
+ setId(vig.getId(state, kind, entry, ViewIdGenerator.NO_VIEW_INDEX));
final boolean enabled = !readOnly;
@@ -195,9 +203,11 @@
// Build out set of fields
mFields.removeAllViews();
boolean hidePossible = false;
+ int n = 0;
for (EditField field : kind.fieldList) {
// Inflate field from definition
EditText fieldView = (EditText)mInflater.inflate(RES_FIELD, mFields, false);
+ fieldView.setId(vig.getId(state, kind, entry, n++));
if (field.titleRes > 0) {
fieldView.setHint(field.titleRes);
}
@@ -362,4 +372,72 @@
}
}
}
+
+ private static class SavedState extends BaseSavedState {
+ public boolean mHideOptional;
+ public int[] mVisibilities;
+
+ SavedState(Parcelable superState) {
+ super(superState);
+ }
+
+ private SavedState(Parcel in) {
+ super(in);
+ mVisibilities = new int[in.readInt()];
+ in.readIntArray(mVisibilities);
+ }
+
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ super.writeToParcel(out, flags);
+ out.writeInt(mVisibilities.length);
+ out.writeIntArray(mVisibilities);
+ }
+
+ public static final Parcelable.Creator<SavedState> CREATOR
+ = new Parcelable.Creator<SavedState>() {
+ public SavedState createFromParcel(Parcel in) {
+ return new SavedState(in);
+ }
+
+ public SavedState[] newArray(int size) {
+ return new SavedState[size];
+ }
+ };
+ }
+
+ /**
+ * Saves the visibility of the child EditTexts, and mHideOptional.
+ */
+ @Override
+ protected Parcelable onSaveInstanceState() {
+ Parcelable superState = super.onSaveInstanceState();
+ SavedState ss = new SavedState(superState);
+
+ ss.mHideOptional = mHideOptional;
+
+ final int numChildren = mFields.getChildCount();
+ ss.mVisibilities = new int[numChildren];
+ for (int i = 0; i < numChildren; i++) {
+ ss.mVisibilities[i] = mFields.getChildAt(i).getVisibility();
+ }
+
+ return ss;
+ }
+
+ /**
+ * Restores the visibility of the child EditTexts, and mHideOptional.
+ */
+ @Override
+ protected void onRestoreInstanceState(Parcelable state) {
+ SavedState ss = (SavedState) state;
+ super.onRestoreInstanceState(ss.getSuperState());
+
+ mHideOptional = ss.mHideOptional;
+
+ int numChildren = Math.min(mFields.getChildCount(), ss.mVisibilities.length);
+ for (int i = 0; i < numChildren; i++) {
+ mFields.getChildAt(i).setVisibility(ss.mVisibilities[i]);
+ }
+ }
}
diff --git a/src/com/android/contacts/ui/widget/KindSectionView.java b/src/com/android/contacts/ui/widget/KindSectionView.java
index b52cfd0..e379b69 100644
--- a/src/com/android/contacts/ui/widget/KindSectionView.java
+++ b/src/com/android/contacts/ui/widget/KindSectionView.java
@@ -23,6 +23,7 @@
import com.android.contacts.model.ContactsSource.DataKind;
import com.android.contacts.model.Editor.EditorListener;
import com.android.contacts.model.EntityDelta.ValuesDelta;
+import com.android.contacts.ui.ViewIdGenerator;
import android.content.Context;
import android.provider.ContactsContract.Data;
@@ -52,6 +53,8 @@
private EntityDelta mState;
private boolean mReadOnly;
+ private ViewIdGenerator mViewIdGenerator;
+
public KindSectionView(Context context) {
super(context);
}
@@ -88,10 +91,13 @@
// Ignore requests
}
- public void setState(DataKind kind, EntityDelta state, boolean readOnly) {
+ public void setState(DataKind kind, EntityDelta state, boolean readOnly, ViewIdGenerator vig) {
mKind = kind;
mState = state;
mReadOnly = readOnly;
+ mViewIdGenerator = vig;
+
+ setId(mViewIdGenerator.getId(state, kind, null, ViewIdGenerator.NO_VIEW_INDEX));
// TODO: handle resources from remote packages
mTitle.setText(kind.titleRes);
@@ -116,9 +122,8 @@
final GenericEditorView editor = (GenericEditorView)mInflater.inflate(
R.layout.item_generic_editor, mEditors, false);
- editor.setValues(mKind, entry, mState, mReadOnly);
+ editor.setValues(mKind, entry, mState, mReadOnly, mViewIdGenerator);
editor.setEditorListener(this);
- editor.setId(entry.getViewId());
mEditors.addView(editor);
}
}
@@ -138,9 +143,16 @@
/** {@inheritDoc} */
public void onClick(View v) {
// Insert a new child and rebuild
- EntityModifier.insertChild(mState, mKind);
+ final ValuesDelta newValues = EntityModifier.insertChild(mState, mKind);
this.rebuildFromState();
this.updateAddEnabled();
this.updateEditorsVisible();
+
+ // Find the newly added EditView and set focus.
+ final int newFieldId = mViewIdGenerator.getId(mState, mKind, newValues, 0);
+ final View newField = findViewById(newFieldId);
+ if (newField != null) {
+ newField.requestFocus();
+ }
}
}
diff --git a/src/com/android/contacts/ui/widget/PhotoEditorView.java b/src/com/android/contacts/ui/widget/PhotoEditorView.java
index f117091..eff39d0 100644
--- a/src/com/android/contacts/ui/widget/PhotoEditorView.java
+++ b/src/com/android/contacts/ui/widget/PhotoEditorView.java
@@ -21,6 +21,7 @@
import com.android.contacts.model.ContactsSource.DataKind;
import com.android.contacts.model.EntityDelta.ValuesDelta;
import com.android.contacts.model.Editor;
+import com.android.contacts.ui.ViewIdGenerator;
import android.content.Context;
import android.graphics.Bitmap;
@@ -75,9 +76,13 @@
}
/** {@inheritDoc} */
- public void setValues(DataKind kind, ValuesDelta values, EntityDelta state, boolean readOnly) {
+ public void setValues(DataKind kind, ValuesDelta values, EntityDelta state, boolean readOnly,
+ ViewIdGenerator vig) {
mEntry = values;
mReadOnly = readOnly;
+
+ setId(vig.getId(state, kind, values, 0));
+
if (values != null) {
// Try decoding photo if actual entry
final byte[] photoBytes = values.getAsByteArray(Photo.PHOTO);
diff --git a/src/com/android/contacts/ui/widget/ReadOnlyContactEditorView.java b/src/com/android/contacts/ui/widget/ReadOnlyContactEditorView.java
index a5f8eb6..4635f6a 100644
--- a/src/com/android/contacts/ui/widget/ReadOnlyContactEditorView.java
+++ b/src/com/android/contacts/ui/widget/ReadOnlyContactEditorView.java
@@ -24,6 +24,7 @@
import com.android.contacts.model.ContactsSource.EditType;
import com.android.contacts.model.Editor.EditorListener;
import com.android.contacts.model.EntityDelta.ValuesDelta;
+import com.android.contacts.ui.ViewIdGenerator;
import android.content.Context;
import android.content.Entity;
@@ -101,7 +102,7 @@
* TODO: make this more generic using data from the source
*/
@Override
- public void setState(EntityDelta state, ContactsSource source) {
+ public void setState(EntityDelta state, ContactsSource source, ViewIdGenerator vig) {
// Remove any existing sections
mGeneral.removeAllViews();
@@ -135,7 +136,7 @@
EntityModifier.ensureKindExists(state, source, Photo.CONTENT_ITEM_TYPE);
mHasPhotoEditor = (source.getKindForMimetype(Photo.CONTENT_ITEM_TYPE) != null);
primary = state.getPrimaryEntry(Photo.CONTENT_ITEM_TYPE);
- mPhoto.setValues(kind, primary, state, source.readOnly);
+ mPhoto.setValues(kind, primary, state, source.readOnly, vig);
if (!mHasPhotoEditor || !mPhoto.hasSetPhoto()) {
mPhotoStub.setVisibility(View.GONE);
} else {
diff --git a/tests/src/com/android/contacts/ContactsUtilsTests.java b/tests/src/com/android/contacts/ContactsUtilsTests.java
index 01a1ef4..d4d4e5b 100644
--- a/tests/src/com/android/contacts/ContactsUtilsTests.java
+++ b/tests/src/com/android/contacts/ContactsUtilsTests.java
@@ -21,6 +21,7 @@
import android.net.Uri;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.LargeTest;
@@ -98,4 +99,61 @@
public void testIsGraphicPunctuation() throws Exception {
assertTrue(ContactsUtils.isGraphic("."));
}
+
+ public void testAreObjectsEqual() throws Exception {
+ assertTrue("null:null", ContactsUtils.areObjectsEqual(null, null));
+ assertTrue("1:1", ContactsUtils.areObjectsEqual(1, 1));
+
+ assertFalse("null:1", ContactsUtils.areObjectsEqual(null, 1));
+ assertFalse("1:null", ContactsUtils.areObjectsEqual(1, null));
+ assertFalse("1:2", ContactsUtils.areObjectsEqual(1, 2));
+ }
+
+ public void testAreDataEqual() throws Exception {
+ checkAreDataEqual("1", true, null, null, null, null);
+ checkAreDataEqual("2", true, "a", "b", "a", "b");
+
+ checkAreDataEqual("11", false, "a", null, null, null);
+ checkAreDataEqual("12", false, null, "a", null, null);
+ checkAreDataEqual("13", false, null, null, "a", null);
+ checkAreDataEqual("14", false, null, null, null, "a");
+
+ checkAreDataEqual("21", false, "a", "b", null, null);
+ checkAreDataEqual("22", false, "a", "b", "a", null);
+ checkAreDataEqual("23", false, "a", "b", null, "b");
+ checkAreDataEqual("24", false, "a", "b", "a", "x");
+ checkAreDataEqual("25", false, "a", "b", "x", "b");
+
+ checkAreDataEqual("31", false, null, null, "a", "b");
+ checkAreDataEqual("32", false, "a", null, "a", "b");
+ checkAreDataEqual("33", false, null, "b", "a", "b");
+ checkAreDataEqual("34", false, "a", "x", "a", "b");
+ checkAreDataEqual("35", false, "x", "b", "a", "b");
+
+ checkAreDataEqual("41", true, Phone.CONTENT_ITEM_TYPE, null, Phone.CONTENT_ITEM_TYPE,
+ null);
+ checkAreDataEqual("42", true, Phone.CONTENT_ITEM_TYPE, "1", Phone.CONTENT_ITEM_TYPE, "1");
+
+ checkAreDataEqual("51", false, Phone.CONTENT_ITEM_TYPE, "1", Phone.CONTENT_ITEM_TYPE, "2");
+ checkAreDataEqual("52", false, Phone.CONTENT_ITEM_TYPE, "1", Phone.CONTENT_ITEM_TYPE, null);
+ checkAreDataEqual("53", false, Phone.CONTENT_ITEM_TYPE, null, Phone.CONTENT_ITEM_TYPE, "2");
+ }
+
+ private void checkAreDataEqual(String message, boolean expected, CharSequence mimetype1,
+ CharSequence data1, CharSequence mimetype2, CharSequence data2) {
+ assertEquals(message, expected,
+ ContactsUtils.areDataEqual(mContext, mimetype1, data1, mimetype2, data2));
+ }
+
+ public void testAreIntentActionEqual() throws Exception {
+ assertTrue("1", ContactsUtils.areIntentActionEqual(null, null));
+ assertTrue("1", ContactsUtils.areIntentActionEqual(new Intent("a"), new Intent("a")));
+
+ assertFalse("11", ContactsUtils.areIntentActionEqual(new Intent("a"), null));
+ assertFalse("12", ContactsUtils.areIntentActionEqual(null, new Intent("a")));
+
+ assertFalse("21", ContactsUtils.areIntentActionEqual(new Intent("a"), new Intent()));
+ assertFalse("22", ContactsUtils.areIntentActionEqual(new Intent(), new Intent("b")));
+ assertFalse("23", ContactsUtils.areIntentActionEqual(new Intent("a"), new Intent("b")));
+ }
}
diff --git a/tests/src/com/android/contacts/EntityModifierTests.java b/tests/src/com/android/contacts/EntityModifierTests.java
index 489bf04..4bc4622 100644
--- a/tests/src/com/android/contacts/EntityModifierTests.java
+++ b/tests/src/com/android/contacts/EntityModifierTests.java
@@ -34,10 +34,16 @@
import android.content.ContentValues;
import android.content.Context;
import android.content.Entity;
+import android.os.Bundle;
+import android.provider.ContactsContract.Intents.Insert;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.LargeTest;
@@ -56,6 +62,10 @@
private static final long TEST_ID = 4;
private static final String TEST_PHONE = "218-555-1212";
+ private static final String TEST_NAME = "Adam Young";
+ private static final String TEST_NAME2 = "Breanne Duren";
+ private static final String TEST_IM = "example@example.com";
+ private static final String TEST_POSTAL = "1600 Amphitheatre Parkway";
private static final String TEST_ACCOUNT_NAME = "unittest@example.com";
private static final String TEST_ACCOUNT_TYPE = "com.example.unittest";
@@ -95,12 +105,24 @@
// Email is unlimited
kind = new DataKind(Email.CONTENT_ITEM_TYPE, -1, -1, 10, true);
-
kind.typeOverallMax = -1;
-
kind.fieldList = Lists.newArrayList();
kind.fieldList.add(new EditField(Email.DATA, -1, -1));
+ addKind(kind);
+ // IM is only one
+ kind = new DataKind(Im.CONTENT_ITEM_TYPE, -1, -1, 10, true);
+ kind.typeOverallMax = 1;
+ kind.fieldList = Lists.newArrayList();
+ kind.fieldList.add(new EditField(Im.DATA, -1, -1));
+ addKind(kind);
+
+ // Organization is only one
+ kind = new DataKind(Organization.CONTENT_ITEM_TYPE, -1, -1, 10, true);
+ kind.typeOverallMax = 1;
+ kind.fieldList = Lists.newArrayList();
+ kind.fieldList.add(new EditField(Organization.COMPANY, -1, -1));
+ kind.fieldList.add(new EditField(Organization.TITLE, -1, -1));
addKind(kind);
}
@@ -662,4 +684,73 @@
assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
}
}
+
+ public void testParseExtrasExistingName() {
+ final ContactsSource source = getSource();
+ final DataKind kindName = source.getKindForMimetype(StructuredName.CONTENT_ITEM_TYPE);
+
+ // Build "before" name
+ final ContentValues first = new ContentValues();
+ first.put(Data._ID, TEST_ID);
+ first.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
+ first.put(StructuredName.GIVEN_NAME, TEST_NAME);
+
+ // Parse extras, making sure we keep single name
+ final EntityDelta state = getEntity(TEST_ID, first);
+ final Bundle extras = new Bundle();
+ extras.putString(Insert.NAME, TEST_NAME2);
+ EntityModifier.parseExtras(mContext, source, state, extras);
+
+ final int nameCount = state.getMimeEntriesCount(StructuredName.CONTENT_ITEM_TYPE, true);
+ assertEquals("Unexpected names", 1, nameCount);
+ }
+
+ public void testParseExtrasIgnoreLimit() {
+ final ContactsSource source = getSource();
+ final DataKind kindIm = source.getKindForMimetype(Im.CONTENT_ITEM_TYPE);
+
+ // Build "before" IM
+ final ContentValues first = new ContentValues();
+ first.put(Data._ID, TEST_ID);
+ first.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+ first.put(Im.DATA, TEST_IM);
+
+ final EntityDelta state = getEntity(TEST_ID, first);
+ final int beforeCount = state.getMimeEntries(Im.CONTENT_ITEM_TYPE).size();
+
+ // We should ignore data that doesn't fit source rules, since source
+ // only allows single Im
+ final Bundle extras = new Bundle();
+ extras.putInt(Insert.IM_PROTOCOL, Im.PROTOCOL_GOOGLE_TALK);
+ extras.putString(Insert.IM_HANDLE, TEST_IM);
+ EntityModifier.parseExtras(mContext, source, state, extras);
+
+ final int afterCount = state.getMimeEntries(Im.CONTENT_ITEM_TYPE).size();
+ assertEquals("Broke source rules", beforeCount, afterCount);
+ }
+
+ public void testParseExtrasIgnoreUnhandled() {
+ final ContactsSource source = getSource();
+ final EntityDelta state = getEntity(TEST_ID);
+
+ // We should silently ignore types unsupported by source
+ final Bundle extras = new Bundle();
+ extras.putString(Insert.POSTAL, TEST_POSTAL);
+ EntityModifier.parseExtras(mContext, source, state, extras);
+
+ assertNull("Broke source rules", state.getMimeEntries(StructuredPostal.CONTENT_ITEM_TYPE));
+ }
+
+ public void testParseExtrasJobTitle() {
+ final ContactsSource source = getSource();
+ final EntityDelta state = getEntity(TEST_ID);
+
+ // Make sure that we create partial Organizations
+ final Bundle extras = new Bundle();
+ extras.putString(Insert.JOB_TITLE, TEST_NAME);
+ EntityModifier.parseExtras(mContext, source, state, extras);
+
+ final int count = state.getMimeEntries(Organization.CONTENT_ITEM_TYPE).size();
+ assertEquals("Expected to create organization", 1, count);
+ }
}
diff --git a/tests/src/com/android/contacts/RecentCallsListActivityTests.java b/tests/src/com/android/contacts/RecentCallsListActivityTests.java
index 2cdd8d7..afa1a7a 100644
--- a/tests/src/com/android/contacts/RecentCallsListActivityTests.java
+++ b/tests/src/com/android/contacts/RecentCallsListActivityTests.java
@@ -276,7 +276,7 @@
duration = mRnd.nextInt(10 * 60); // 0 - 10 minutes random.
}
row.add(duration); // duration
- if (mVoicemail.equals(number)) {
+ if (mVoicemail != null && mVoicemail.equals(number)) {
assertEquals(Calls.OUTGOING_TYPE, type);
}
row.add(type); // type
@@ -309,7 +309,10 @@
* @param duration In seconds of the call. Use RAND_DURATION to pick a random one.
*/
private void insertVoicemail(long date, int duration) {
- insert(mVoicemail, date, duration, Calls.OUTGOING_TYPE);
+ // mVoicemail may be null
+ if (mVoicemail != null) {
+ insert(mVoicemail, date, duration, Calls.OUTGOING_TYPE);
+ }
}
/**