feat: enhance contact management and vCard support
- Added support for parsing and generating additional vCard properties including GENDER, LOGO, SOUND, LABEL, CALURI, CALADRURI, FBURL, and SOURCE. - Extended ContactCard interface to include new fields such as gender, media, anniversaries, online services, and personal info. - Implemented logic to handle multi-part TLDs for domain extraction in avatars. - Improved avatar component to prioritize contact photos and handle inline images in emails. - Updated localization files to include new fields and labels for contact details. - Refactored contact store to expose a method for retrieving contact photos. - Enhanced unit tests to cover new vCard properties and ensure correct parsing and generation.
This commit is contained in:
+96
-1
@@ -161,6 +161,7 @@
|
||||
"load_external_content": "Load images",
|
||||
"trust_sender": "Always trust this sender",
|
||||
"back_to_list": "Back to list",
|
||||
"view_contact": "View contact",
|
||||
"message_details": "Message Details",
|
||||
"more_reply_options": "More reply options",
|
||||
"set_color": "Set tag",
|
||||
@@ -1233,28 +1234,122 @@
|
||||
"organizations": "Organizations",
|
||||
"addresses": "Addresses",
|
||||
"notes": "Notes",
|
||||
"titles": "Titles & Roles",
|
||||
"online_services": "Online Services",
|
||||
"anniversaries": "Anniversaries",
|
||||
"personal_info": "Personal Info",
|
||||
"languages": "Languages",
|
||||
"categories": "Categories",
|
||||
"related_contacts": "Related Contacts",
|
||||
"crypto_keys": "Crypto Keys",
|
||||
"no_contact_selected": "Select a contact to view details",
|
||||
"compose_email": "Compose email",
|
||||
"copy_email": "Copy email",
|
||||
"copy_phone": "Copy phone number",
|
||||
"copy_url": "Copy URL",
|
||||
"copied": "Copied to clipboard",
|
||||
"copy_failed": "Failed to copy to clipboard",
|
||||
"created": "Created",
|
||||
"updated": "Last updated"
|
||||
"updated": "Last updated",
|
||||
"timezone": "Timezone",
|
||||
"anniversary_birth": "Birthday",
|
||||
"anniversary_death": "Passed away",
|
||||
"anniversary_wedding": "Anniversary",
|
||||
"anniversary_other": "Other",
|
||||
"personal_expertise": "Expertise",
|
||||
"personal_hobby": "Hobby",
|
||||
"personal_interest": "Interest",
|
||||
"personal_other": "Other",
|
||||
"gender": "Gender",
|
||||
"gender_M": "Male",
|
||||
"gender_F": "Female",
|
||||
"gender_O": "Other",
|
||||
"gender_N": "Not applicable",
|
||||
"gender_U": "Unknown",
|
||||
"calendar": "Calendar",
|
||||
"calendar_uri": "Calendar URL",
|
||||
"scheduling_uri": "Scheduling URL",
|
||||
"freebusy_uri": "Free/Busy URL"
|
||||
},
|
||||
"form": {
|
||||
"create_title": "New Contact",
|
||||
"edit_title": "Edit Contact",
|
||||
"section_identity": "Name & Identity",
|
||||
"section_work": "Work & Organization",
|
||||
"prefix": "Prefix",
|
||||
"prefix_placeholder": "Dr., Mr., Mrs.",
|
||||
"given_name": "First name",
|
||||
"middle_name": "Middle name",
|
||||
"surname": "Last name",
|
||||
"suffix": "Suffix",
|
||||
"suffix_placeholder": "Jr., Sr., III",
|
||||
"nickname": "Nickname",
|
||||
"nickname_placeholder": "Nickname",
|
||||
"email": "Email",
|
||||
"email_placeholder": "email@example.com",
|
||||
"phone": "Phone",
|
||||
"phone_placeholder": "+1 234 567 890",
|
||||
"phone_type": "Type",
|
||||
"phone_voice": "Voice",
|
||||
"phone_cell": "Mobile",
|
||||
"phone_fax": "Fax",
|
||||
"phone_pager": "Pager",
|
||||
"phone_video": "Video",
|
||||
"phone_text": "Text",
|
||||
"organization": "Organization",
|
||||
"organization_placeholder": "Company name",
|
||||
"department": "Department",
|
||||
"department_placeholder": "Department",
|
||||
"job_title": "Job title",
|
||||
"job_title_placeholder": "e.g., Software Engineer",
|
||||
"role": "Role",
|
||||
"role_placeholder": "e.g., Team Lead",
|
||||
"addresses": "Addresses",
|
||||
"add_address": "Add address",
|
||||
"street": "Street",
|
||||
"city": "City",
|
||||
"region": "State / Region",
|
||||
"postcode": "Postal code",
|
||||
"country": "Country",
|
||||
"online_services": "Online Services",
|
||||
"add_online_service": "Add online service",
|
||||
"url_placeholder": "https://...",
|
||||
"service_placeholder": "Service",
|
||||
"anniversaries": "Anniversaries",
|
||||
"add_anniversary": "Add date",
|
||||
"anniversary_birth": "Birthday",
|
||||
"anniversary_wedding": "Anniversary",
|
||||
"anniversary_death": "Memorial",
|
||||
"anniversary_other": "Other",
|
||||
"personal_info": "Personal Info",
|
||||
"add_personal_info": "Add entry",
|
||||
"personal_info_placeholder": "e.g., Photography",
|
||||
"personal_expertise": "Expertise",
|
||||
"personal_hobby": "Hobby",
|
||||
"personal_interest": "Interest",
|
||||
"personal_other": "Other",
|
||||
"level": "Level",
|
||||
"level_high": "High",
|
||||
"level_medium": "Medium",
|
||||
"level_low": "Low",
|
||||
"categories": "Categories",
|
||||
"categories_placeholder": "e.g., Family, Friends, Colleagues",
|
||||
"categories_hint": "Separate with commas",
|
||||
"note": "Notes",
|
||||
"note_placeholder": "Add a note...",
|
||||
"gender": "Gender",
|
||||
"gender_sex": "Sex",
|
||||
"gender_male": "Male",
|
||||
"gender_female": "Female",
|
||||
"gender_other": "Other",
|
||||
"gender_none": "Not applicable",
|
||||
"gender_unknown": "Unknown",
|
||||
"gender_identity": "Gender identity",
|
||||
"gender_identity_placeholder": "Gender identity...",
|
||||
"calendar": "Calendar",
|
||||
"calendar_uri": "Calendar URL",
|
||||
"scheduling_uri": "Scheduling URL",
|
||||
"freebusy_uri": "Free/Busy URL",
|
||||
"context_work": "Work",
|
||||
"context_private": "Private",
|
||||
"add_email": "Add email",
|
||||
|
||||
Reference in New Issue
Block a user