A contact picker is an identity interface. The language around it can be translated, but the people inside it must remain the same people. Reordering name parts, normalizing away accents, merging duplicate-looking contacts, translating organization names casually or applying one global alphabetic order can make users choose the wrong person even when every button label is fluent.
Searches for contact picker localization, address book localization, people search localization, contact name internationalization, multilingual contacts, contact sorting locale and contact selection privacy describe a product surface where identity, locale and privacy meet. Modern platform contact pickers can also reduce broad address-book access by returning only contacts the user explicitly selects.
This guide explains how to localize contact pickers, assignee selectors, recipient choosers, address books and people search without changing identity. It covers personal names, native scripts, display order, search aliases, locale-aware collation, phone and email labels, organization names, duplicate contacts, avatars, same-name disambiguation, permission scope, privacy-preserving system pickers, selection state, multi-select limits and final QA.
This article sits inside eduKateSG’s Master Art of Translation architecture. It extends the professional localization layer without taking ownership from broader software, terminology, quality, identity or accessibility owners.
Quick answer
Keep stable contact IDs and raw contact data separate from localized presentation. Display names according to platform/user conventions, preserve native spelling, use locale-aware search and sorting, expose enough secondary information to disambiguate same-name people, and minimize contact access by using system pickers or scoped permissions where appropriate. The translation layer should help users recognize people, not reinterpret them.
- Stable contact IDs remain invariant.
- Show names under locale/user conventions.
- Support script, aliases and normalized matching without rewriting identity.
- Disambiguate same-name people.
- Request only data needed for the task.
- Keep single/multi-select behavior exact.
- Verify chosen backend identity.
1. Keep stable identity separate from display name
A display name is not a database identity. Two people can share a name and one person can have multiple representations.
Professional method. Use stable contact/person IDs for selection. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. The system matches recipients by localized display name. Two Alex Lee records remain distinct through IDs.
Operational implication. This matters beyond one string because a display name is not a database identity. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Rename display text and confirm identity is unchanged. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
2. Preserve native name spelling
Names are identity data. Transliteration or accent removal can reduce recognition.
Professional method. Display stored authoritative/native form and keep aliases separate. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Every non-Latin name is automatically romanized. Native script can appear first with a romanized alias second.
Operational implication. This matters beyond one string because names are identity data. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Compare display with contact source. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
3. Do not impose universal name order
Name order varies by culture and preference. Fixed Given + Family can be unfamiliar.
Professional method. Use platform/user conventions and international name handling. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Every contact is reconstructed First Last. Family-first may be normal for some contacts.
Operational implication. This matters beyond one string because name order varies by culture and preference. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Test multiple naming traditions. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
4. Respect user-configured display preferences
Platforms can provide display-name formatting. App reconstruction may override user expectations.
Professional method. Use platform displayName or equivalent where suitable. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. The app manually concatenates first and last names. System formatting may reflect locale and user settings.
Operational implication. This matters beyond one string because platforms can provide display-name formatting. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Change platform preferences and compare. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
5. Use locale-aware sorting
Alphabetic order varies by locale. Raw Unicode or ASCII order is not linguistically universal.
Professional method. Use locale collation or platform contact sort conventions. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Accented names fall after Z. Local collation groups letters as users expect.
Operational implication. This matters beyond one string because alphabetic order varies by locale. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Run a multilingual golden list. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
6. Keep search normalization separate from display
Search can fold case/accents without rewriting the shown name. Convenient matching should not damage identity.
Professional method. Index normalized forms separately and rank exact/native matches strongly. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. The UI displays an accent-stripped search key. Jose can find José while José remains visible.
Operational implication. This matters beyond one string because search can fold case/accents without rewriting the shown name. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Compare search result with stored name. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
7. Support multiple scripts where useful
A person can be known in several scripts. Users may search by either form.
Professional method. Index official aliases/transliterations without merging unrelated people. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Machine transliteration becomes the primary name automatically. A bilingual contact can be found by local-script or English name.
Operational implication. This matters beyond one string because a person can be known in several scripts. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Test both queries against one ID. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
8. Disambiguate same-name contacts
Name alone is often insufficient. Wrong-recipient selection is costly.
Professional method. Show secondary context such as organization, email domain or avatar under privacy policy. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Five identical Mohamed Ali rows appear. Mohamed Ali — Finance — example.com can distinguish.
Operational implication. This matters beyond one string because name alone is often insufficient. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Users reliably select the intended person. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
9. Localize phone and email labels, not values
Work/home/mobile are language; phone/email values are data. Changing the value can make it unreachable.
Professional method. Translate labels while preserving contact values and approved formatting. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. A translator rewrites a number without country context. Work localizes while the number remains the same.
Operational implication. This matters beyond one string because work/home/mobile are language; phone/email values are data. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Use the selected value successfully. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
10. Handle organization names carefully
Organizations may have official localized forms. Literal translation can invent an entity.
Professional method. Use official names when available; otherwise preserve stored data. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. A legal company name is translated word for word. Official bilingual corporate names can be used under policy.
Operational implication. This matters beyond one string because organizations may have official localized forms. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Compare with authoritative records. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
11. Do not merge duplicates by localized appearance
Contacts can look identical after normalization. Two real people can share names or organizations.
Professional method. Use product-approved deduplication signals and cautious merge workflows. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Accent folding causes silent merging. Duplicate detection can propose instead of auto-merge.
Operational implication. This matters beyond one string because contacts can look identical after normalization. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Test same-name/different-ID records. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
12. Treat contact picker access as a privacy boundary
A user may want to share one contact without granting the whole address book. Apple and newer Android pickers can support scoped selection behavior.
Professional method. Prefer system pickers or least-privilege access when suitable. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. The app asks for full address-book access merely to choose one person. The system can return only the user’s selection.
Operational implication. This matters beyond one string because a user may want to share one contact without granting the whole address book. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Inspect permissions before and after. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
13. Request only needed contact fields
Phone, email and address data have different privacy value. Over-requesting expands scope.
Professional method. Request only fields needed for the task. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Share-by-email requests phone and postal address too. Modern pickers can request specific field types.
Operational implication. This matters beyond one string because phone, email and address data have different privacy value. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Compare returned fields with product need. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
14. Localize single and multi-select states
Selection limits are product behavior. Language should match count capability.
Professional method. Use singular/plural instructions and count feedback. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Choose people appears in single-select mode. 3 of 10 selected can use locale plural rules.
Operational implication. This matters beyond one string because selection limits are product behavior. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Test zero, one, max and over-limit. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
15. Preserve selection across search and sort
Users search while building multi-select sets. Selection should not depend on display string order.
Professional method. Persist selection by stable IDs. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Changing sort clears or remaps selections. Selected contact stays selected after searching.
Operational implication. This matters beyond one string because users search while building multi-select sets. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Search, sort and return to the full list. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
16. Make avatars secondary evidence
Photos help recognition but can be absent or stale. They should not replace textual identity.
Professional method. Provide accessible fallback initials/avatars with name/context. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Two same-name contacts show only photos. Fallback initials can be generated safely while the full name remains text.
Operational implication. This matters beyond one string because photos help recognition but can be absent or stale. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Test missing photos and duplicate names. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
17. Make people search accessible
Pickers combine search fields, lists, checkboxes and avatars. Assistive users need identity and selection state.
Professional method. Localize accessible names and announce selected state/count. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. Screen reader says checkbox 3. José García, Work email, selected.
Operational implication. This matters beyond one string because pickers combine search fields, lists, checkboxes and avatars. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Complete selection using keyboard/screen reader. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
18. Regression-test identity through selection
The final invariant is who the app acts on. Localization can alter presentation without changing the correct backend ID.
Professional method. Select a target-language contact and assert resulting recipient ID using regression testing. The rule should be explicit enough that another translator, reviewer, designer or engineer can apply it consistently later.
Failure mode. A reordered row points to the wrong object. Selecting 佐藤 美咲 resolves to the same internal contact across locale changes.
Operational implication. This matters beyond one string because the final invariant is who the app acts on. A team that resolves the issue only in prose can still leave the underlying product behavior inconsistent across locales, devices or releases. The stronger approach is to connect the language decision to the actual data, state or platform rule that governs the feature.
Transfer test. Apply the same principle to a second locale and to one changed condition—such as a longer value, different device, alternate permission state, another file type, different contact, or stale cached state. If the rule still produces the same product truth, it is more likely to be durable rather than a one-off fix.
Verification. Assert backend identity after selection. If the test fails, fix the upstream rule, data model, component or source copy rather than hiding the problem in translation.
A repeatable operating sequence
A safe people-picker workflow starts from stable identity, then layers locale-aware names, search and presentation around it.
- Define stable IDs and permitted fields.
- Use platform-native display names where appropriate.
- Preserve native spelling and aliases.
- Apply locale-aware sorting/search.
- Add secondary context for disambiguation.
- Translate type labels while preserving values.
- Use scoped contact access where possible.
- Localize selection counts and limits.
- Test search/sort without losing selection.
- Test accessibility.
- Complete target action and verify backend identity.
- Regression-test locale changes.
Treat the sequence as a loop. If a late defect appears, trace it to the earliest useful cause—source wording, state model, platform constraint, locale data, component behavior or asset pipeline—and repair that source where possible.
A useful way to run the loop is to keep a small release ledger for each locale: what changed, what remained invariant, which edge cases were exercised, who approved the result and which production signal would reveal a regression. That makes localization maintenance cumulative rather than rediscovering the same boundary on every release.
Worked scenarios
1. Two contacts named Alex Chen
Both appear under the same localized display name. The hidden risk is wrong-person selection.
Show secondary organization/email context while keeping IDs separate. Then test the result in the actual user journey rather than judging it only inside a translation editor.
A second check should ask whether the same state would still be understandable after a locale change, a value change, a retry, a different device size or another user account. This prevents the team from approving a translation that is correct only under the demonstration data.
2. Chinese name reordered incorrectly
The app manually builds Given + Family. The hidden risk is unfamiliar or wrong display.
Use platform/locale name formatting. Then test the result in the actual user journey rather than judging it only inside a translation editor.
A second check should ask whether the same state would still be understandable after a locale change, a value change, a retry, a different device size or another user account. This prevents the team from approving a translation that is correct only under the demonstration data.
3. Search strips accents
Jose finds José. The hidden risk is normalization leaking into identity display.
Keep normalized search keys separate from visible name. Then test the result in the actual user journey rather than judging it only inside a translation editor.
A second check should ask whether the same state would still be understandable after a locale change, a value change, a retry, a different device size or another user account. This prevents the team from approving a translation that is correct only under the demonstration data.
4. App requests full contacts permission
The user only needs one recipient. The hidden risk is unnecessary privacy scope.
Use a system picker or least-privilege selection path. Then test the result in the actual user journey rather than judging it only inside a translation editor.
A second check should ask whether the same state would still be understandable after a locale change, a value change, a retry, a different device size or another user account. This prevents the team from approving a translation that is correct only under the demonstration data.
5. Multi-select loses choices after search
Rows rebuild by localized strings. The hidden risk is selection keyed by presentation.
Persist by stable contact IDs. Then test the result in the actual user journey rather than judging it only inside a translation editor.
A second check should ask whether the same state would still be understandable after a locale change, a value change, a retry, a different device size or another user account. This prevents the team from approving a translation that is correct only under the demonstration data.
6. Company name translated literally
The organization is a legal brand name. The hidden risk is false identity.
Use official localized form if available, otherwise preserve source record. Then test the result in the actual user journey rather than judging it only inside a translation editor.
A second check should ask whether the same state would still be understandable after a locale change, a value change, a retry, a different device size or another user account. This prevents the team from approving a translation that is correct only under the demonstration data.
Contact picker and people-search localization: twenty professional practice cases
For each case, identify the invariant behavior, what may localize, the evidence you need and the acceptance test.
1. Contact has one name only
Display it without manufacturing surname. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
2. Arabic name plus Latin alias
Index both and keep preferred display clear. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
3. Two contacts share a phone number
Do not merge solely on one field. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
4. Source label Cell
Translate the type concept, not the number. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
5. Phone stored internationally
Render under policy without changing identity. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
6. Query omits accents
Use search normalization, preserve display spelling. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
7. User changes locale
Resort/reformat without changing IDs. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
8. Photo missing
Provide text and accessible fallback. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
9. Company has official bilingual name
Use the official target form. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
10. Picker allows five contacts
Localize counts and enforce same limit. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
11. One contact has several emails
Label types and allow correct property selection. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
12. App needs email only
Request email data rather than full record where possible. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
13. Search by organization
Index it only if product intentionally supports it. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
14. Nickname differs from legal name
Use contact data/user context rather than one universal canonical assumption. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
15. Swedish locale changes sort order
Use locale collation. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
16. Records become identical after folding
Keep separate IDs. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
17. Screen reader reaches selected contact
Announce name, secondary property and selected state. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
18. Deep link opens contact
Bind to stable identity. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
19. Admin directory shows role names
Localize role labels, preserve person identity. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
20. Permission revoked after selection
Follow access policy without implying person ceased to exist. State why this is the correct owner-level decision and one condition that would make you revisit it.
Then apply the same rule to another locale, platform, state or device so the principle is genuinely transferable. Record the expected result before testing; that turns the exercise into a repeatable quality check instead of an informal impression.
Release checklist
- Selection uses stable identity.
- Native names are preserved.
- Name order follows locale/user conventions.
- Search normalization does not rewrite display.
- Sorting is locale-aware.
- Same-name contacts are disambiguated.
- Phone/email values remain exact.
- Organization names use authoritative forms.
- Duplicate detection does not merge on appearance alone.
- Access is least-privilege.
- Selection limits are correct.
- Accessibility exposes identity and state.
Frequently asked questions
Should contact names be translated?
Normally no. Preserve the person’s name as identity data; transliteration/aliases are separate features. Keep the invariant product behavior separate from the language layer, and document which layer owns the decision.
Should names be reordered?
Use locale-aware or platform-provided formatting rather than one global rule. Keep the invariant product behavior separate from the language layer, and document which layer owns the decision.
Can search ignore accents?
Yes for matching while still displaying the authoritative accented name. Keep the invariant product behavior separate from the language layer, and document which layer owns the decision.
Why use system contact pickers?
They can provide consistent privacy-preserving selection and reduce broad address-book access. Keep the invariant product behavior separate from the language layer, and document which layer owns the decision.
How handle duplicate names?
Show secondary context and preserve distinct IDs. Keep the invariant product behavior separate from the language layer, and document which layer owns the decision.
Can phone/email labels be translated?
Yes; labels localize while values remain exact. Keep the invariant product behavior separate from the language layer, and document which layer owns the decision.
What about multi-select?
Localize counts/instructions while preserving actual limit and IDs. Keep the invariant product behavior separate from the language layer, and document which layer owns the decision.
What proves correctness?
The user recognizes the intended person and the backend receives the same stable identity regardless of locale. Keep the invariant product behavior separate from the language layer, and document which layer owns the decision.
Selected references and next routes
- Apple Developer: Contact Picker
- Android Developers: Contact picker
- eduKateSG: International Forms and Validation
Conclusion
People search is a localization problem only at the presentation layer; identity itself is not a translation variable.
When native names, locale-aware search, scoped access and stable IDs stay separate, users can find people naturally without localization changing who those people are.
